Comment utiliser AWS Iam Passrole Permission

Comment utiliser AWS Iam Passrole Permission
Dans AWS, un rôle IAM est une identité AWS comme un utilisateur IAM. Le service AWS IAM est un service très complexe qui, s'il n'est pas configuré judicieusement, peut entraîner des problèmes de sécurité potentiels. Ils sont attachés avec des politiques qui décident de ce que cette identité est autorisée à faire et n'est pas autorisée à faire. Il n'est pas attaché à une seule personne, mais peut être supposé par quiconque. Au lieu des informations d'identification à long terme (mot de passe ou clés d'accès) comme un utilisateur IAM, un rôle IAM a des informations d'identification de sécurité temporaires. Lorsqu'un utilisateur, une application ou un service a besoin d'accès aux ressources AWS pour lesquelles il ne tient pas d'autorisations, il utilise / assume un rôle spécifique à cet effet. Les informations d'identification de sécurité temporaires sont ensuite utilisées pour cette tâche.

Que couvrirons-nous?

Dans ce guide, nous verrons comment utiliser l'autorisation «IAM Passrole». À titre d'exemple spécifique, nous verrons comment connecter une instance EC2 avec le seau S3 en utilisant l'autorisation passante.

Termes et concepts importants

Rôle de service AWS: C'est un rôle assumé par un service afin qu'il puisse effectuer les tâches au nom de l'utilisateur ou du titulaire du compte.

Rôle de service AWS pour une instance EC2: C'est un rôle assumé par une application exécutée sur une instance Amazon EC2 pour effectuer les tâches du compte d'utilisateur qui sont autorisées par ce rôle.

Rôle lié au service AWS: C'est un rôle qui est prédéfini et directement attaché à un service AWS, comme le rôle lié à service RDS pour le lancement d'une DB RDS.

Utilisation de l'autorisation passante pour connecter une instance EC2 avec S3

De nombreux services AWS ont besoin d'un rôle pour la configuration et ce rôle leur est passé / administré par l'utilisateur. De cette façon, les services assument / assument le rôle et effectuent les tâches au nom de l'utilisateur. Pour la plupart des services, le rôle doit être passé une fois lors de la configuration de ce service. Un utilisateur a besoin d'autorisations pour passer un rôle à un service AWS. C'est une bonne chose d'un point de vue de sécurité car les administrateurs peuvent contrôler quels utilisateurs peuvent passer un rôle à un service. L'autorisation «Passrole» est accordée par un utilisateur à son utilisateur, son rôle ou son groupe pour avoir transmis un rôle à un service AWS.

Pour élaborer le concept précédent, considérez un cas lorsqu'une application exécutée sur une instance EC2 nécessite un accès au seau S3. Pour cela, nous pouvons attacher un rôle IAM avec cette instance afin que cette application obtienne l'autorisation S3 définie dans le rôle. Cette demande aura besoin des informations d'identification temporaires à des fins d'authentification et d'autorisation. EC2 obtient des informations d'identification de sécurité temporaire lorsqu'un rôle s'associe à l'instance exécutant notre application. Ces informations d'identification sont ensuite mises à la disposition de notre candidature pour accéder à S3.

Pour accorder à un utilisateur IAM la capacité de passer un rôle au service EC2 au moment du lancement d'une instance, nous avons besoin de trois choses:

  1. Une politique d'autorisations IAM pour le rôle qui décide de la portée du rôle.
  2. Une politique de confiance attachée au rôle qui permet à l'EC2 d'assumer le rôle et d'utiliser les autorisations définies à l'intérieur du rôle.
  3. Une politique d'autorisation IAM pour l'utilisateur IAM qui répertorie les rôles qu'il peut passer.

Faisons-le d'une manière plus pragmatique. Nous avons un utilisateur IAM avec une autorisation limitée. Nous joignons ensuite une politique en ligne pour lancer les instances EC2 et la permission de passer un rôle IAM à un service. Ensuite, nous créons un rôle pour l'accès S3; Appelons ça "S3ACCESS". Et y attacher une politique IAM. Dans ce rôle, nous permettons uniquement la lecture des données S3 à l'aide de la politique gérée par AWS «Amazons3ReadonlyAccess».

Étapes pour créer le rôle

Étape 1. Depuis la console IAM de l'administrateur (racine), cliquez sur «Rôle», puis sélectionnez «Créer un rôle».

Étape 2. Dans la page «Sélectionner une entité de confiance», sélectionnez «Service AWS» sous le «type d'entité de confiance».

Étape 3. Dans le cadre du «cas d'utilisation», sélectionnez le bouton radio correspondant à «EC2» pour les «cas d'utilisation pour les autres services AWS»:

Étape 4. À la page suivante, attribuez une stratégie «Amazons3ReadonlyAccess»:

Étape 5. Donnez un nom à votre rôle («S3ACCESS» dans notre cas). Ajouter une description de ce rôle. La politique de confiance suivante est automatiquement créée avec ce rôle:


"Version": "2012-10-17",
"Déclaration": [

"Effet": "Autoriser",
"Action": [
"STS: Asumerole"
]],
"Principal":
"Service": [
"EC2.Amazonaws.com "
]]


]]

Étape 6. Cliquez sur «Créer un rôle» pour créer le rôle:

Politique IAM pour l'utilisateur

Cette politique donne à l'utilisateur IAM des autorisations EC2 complètes et l'autorisation d'associer le rôle «S3Access» à l'instance.

Étape 1. Depuis la console IAM, cliquez sur les politiques puis sur «Créer des politiques».

Étape 2. Sur la nouvelle page, sélectionnez l'onglet JSON et collez le code suivant:


"Version": "2012-10-17",
"Déclaration": [
"Effet": "Autoriser",
"Action": ["EC2: *"],
"Ressource":"*"
,

"Effet": "Autoriser",
"Action": "Iam: Passrole",
"Ressource": "ARN: AWS: IAM :: Account_id: Role / S3ACCESS"
]

Remplacez le texte en gras «Identifiant de compte"Avec l'ID de compte utilisateur.

Étape 3. (Facultatif) Donnez des balises pour votre politique.

Étape 4. Mettez un nom approprié pour la politique («iam-user-politique» dans notre cas) et cliquez sur le bouton «Créer la stratégie» et attachez cette politique à votre utilisateur IAM.

Attacher le rôle «S3ACCESS» à l'instance EC2

Maintenant, nous allons attacher ce rôle à notre instance. Sélectionnez votre instance dans la console EC2 et accédez à "Action> Sécurité> Modifier le rôle IAM". Sur la nouvelle page, sélectionnez le rôle «S3Access» dans le menu déroulant et enregistrez-le.

Vérification de la configuration

Maintenant, nous vérifierons si notre instance EC2 est en mesure d'accéder à notre seau S3 créé par l'administrateur. Connectez-vous dans l'instance EC2 et installez l'application AWS CLI. Maintenant, exécutez la commande suivante sur cette instance EC2:

$ aws s3 ls

Encore une fois, exécutez la commande précédente à partir du compte IAM configuré sur votre machine locale. Vous remarquerez que la commande est exécutée avec succès sur l'instance EC2, mais nous avons obtenu une erreur «accès refusé» sur la machine locale:

L'erreur est évidente car nous n'avons accordé l'autorisation d'accès S3 que pour l'instance EC2 mais pas à l'utilisateur IAM et à tout autre service AWS. Une autre chose importante à noter est que nous n'avons pas rendu le seau et ses objets accessibles publiquement.

Conclusion

Dans ce guide, nous avons démontré comment utiliser l'autorisation passante dans AWS. Nous avons réussi à connecter l'EC2 à S3. C'est un concept très important si vous vous souciez d'accorder le moins de privilèges à vos utilisateurs IAM.