Création d'un rôle pour la délégation d'autorisations à un service AWS - AWS Identity and Access Management

Création d'un rôle pour la délégation d'autorisations à un service AWS

De nombreux services AWS exigent que vous utilisiez des rôles pour autoriser le service à accéder en votre nom aux ressources d'autres services. Un rôle qu'un service assume pour effectuer des actions en votre nom s'appelle un rôle de service. Lorsqu'un rôle remplit un objectif spécial pour un service, il est défini comme un rôle de service pour les instances EC2 (par exemple) ou un rôle lié à un service. Pour savoir quels services prennent en charge par les rôles de service liés à un service ou déterminer si un service prend en charge une forme d'informations d'identification temporaires, consultez Services AWS qui fonctionnent avec IAM. Pour découvrir comment un service individuel utilise des rôles, choisissez son nom dans le tableau pour afficher la documentation de ce service.

Pour plus d'informations sur la façon dont les rôles aident à déléguer des autorisations, consultez Termes et concepts relatifs aux rôles.

Autorisations de rôle de service

Vous devez configurer les autorisations de manière à permettre à une entité IAM (comme un utilisateur ou un rôle) de créer ou modifier un rôle lié à un service.

Note

L'ARN d'un rôle lié à un service comprend un mandataire de service indiqué dans les stratégies ci-dessous comme SERVICE-NAME.amazonaws.com. N'essayez pas de deviner le mandataire de service, car il est sensible à la casse et le format peut varier entre les services AWS. Pour afficher le mandataire de service d'un service, consultez la documentation de son rôle lié à un service.

Pour permettre à une entité IAM de créer un rôle spécifique lié à un service

Ajoutez la stratégie suivante à l'entité IAM qui doit créer le rôle lié à un service. Cette stratégie vous permet de créer un rôle lié au service spécifié et avec un nom spécifique. Vous pouvez ensuite attacher des stratégies en ligne ou gérées à ce rôle.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:CreateRole", "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::*:role/SERVICE-ROLE-NAME" } ] }

Pour permettre à une entité IAM de créer n"importe quel rôle lié à un service

Ajoutez l'instruction suivante à la stratégie d'autorisations de l'entité IAM qui doit créer un rôle lié à un service. Cette instruction vous permet de créer un rôle lié à n'importe quel service, puis d'attacher des stratégies en ligne ou gérées à ce rôle.

{ "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:CreateRole", "iam:PutRolePolicy" ], "Resource": "*" }

Pour permettre à une entité IAM de modifier un rôle lié à un service

Ajoutez la stratégie suivante à l'entité IAM qui doit modifier le rôle lié à un service.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EditSpecificServiceRole", "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:UpdateRole", "iam:UpdateRoleDescription" ], "Resource": "arn:aws:iam::*:role/SERVICE-ROLE-NAME" }, { "Sid": "ViewRolesAndPolicies", "Effect": "Allow", "Action": [ "iam:GetPolicy", "iam:ListRoles" ], "Resource": "" } ] }

Pour permettre à une entité IAM de supprimer un rôle spécifique lié à un service

Ajoutez l'instruction suivante à la stratégie d'autorisations de l'entité IAM qui doit supprimer le rôle lié à un service spécifié.

{ "Effect": "Allow", "Action": "iam:DeleteRole", "Resource": "arn:aws:iam::*:role/SERVICE-ROLE-NAME" }

Pour permettre à une entité IAM de supprimer n'importe quel rôle lié à un service

Ajoutez l'instruction suivante à la stratégie d'autorisations de l'entité IAM qui doit supprimer un rôle lié à un service.

{ "Effect": "Allow", "Action": "iam:DeleteRole", "Resource": "*" }

Création d'un rôle pour un service AWS (console)

Vous pouvez utiliser la AWS Management Console pour créer un rôle pour un service. Puisque certains services prennent en charge plus d'un rôle de service, consultez la documentation AWS de votre service pour savoir quel cas d'utilisation choisir. Vous pouvez apprendre à attribuer les stratégies d'approbation et d'autorisation nécessaires au rôle, afin que le service puisse assumer le rôle à votre place. Les étapes que vous pouvez utiliser pour contrôler les autorisations de votre rôle peuvent varier, selon la façon dont le service définit les cas d'utilisation et si vous créez un rôle lié à un service.

Pour créer un rôle pour un service AWS (console)

  1. Connectez-vous à la AWS Management Console et ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation de la console IAM, choisissez Rôles, puis Créer un rôle.

  3. Pour Select type of trusted entity (Sélectionner le type d'entité de confiance), choisissez Service AWS.

  4. Choisissez le service que vous voulez autoriser à endosser ce rôle.

  5. Choisissez le cas d'utilisation de votre service. Si le service spécifié n'a qu'un cas d'utilisation, il est sélectionné par défaut. Les cas d'utilisation sont définis par le service pour inclure la stratégie d'approbation nécessaire au service. Puis choisissez Next: Permissions.

  6. Si possible, sélectionnez la stratégie à utiliser pour la stratégie d'autorisations ou choisissez Créer une stratégie pour ouvrir un nouvel onglet de navigateur et créer une nouvelle stratégie de bout en bout. Pour plus d'informations, consultez l'étape 4 de la procédure Création de stratégies IAM. Une fois la stratégie créée, fermez cet onglet et revenez à l'onglet initial. Cochez la case en regard des stratégies d'autorisations que vous souhaitez octroyer au service.

    En fonction du cas d'utilisation sélectionné, le service peut vous permettre d'effectuer l'une des actions suivantes :

    • Rien, car le service définit les autorisations pour le rôle.

    • Vous permet de choisir parmi un ensemble limité d'autorisations

    • Vous permet de choisir parmi toutes les autorisations

    • Vous permet de choisir de ne sélectionner aucune stratégie pour le moment, mais de créer les stratégies plus tard et de les attacher au rôle

  7. (Facultatif) Définissez une limite d'autorisations. Il s'agit d'une fonctionnalité avancée disponible pour les rôles de service, mais pas les rôles liés à un service.

    Ouvrez la section Set permissions boundary (Définir une limite d'autorisations) et choisissez Use a permissions boundary to control the maximum role permissions (Utiliser une limite d'autorisations pour contrôler le nombre maximum d'autorisations de rôle). IAM inclut une liste des stratégies gérées par AWS et par le client dans votre compte. Sélectionnez la stratégie à utiliser pour la limite d'autorisations ou choisissez Créer une stratégie pour ouvrir un nouvel onglet de navigateur et créer une nouvelle stratégie de bout en bout. Pour plus d'informations, consultez l'étape 4 de la procédure Création de stratégies IAM. Une fois la stratégie créée, fermez cet onglet et revenez à l'onglet initial pour sélectionner la stratégie à utiliser pour la limite d'autorisations.

  8. Choisissez Next: Tags (Suivant : Balises).

  9. (Facultatif) Ajoutez des métadonnées au rôle en associant les balises sous forme de paires clé–valeur. Pour plus d'informations sur l'utilisation des balises dans IAM, consultez Balisage de ressources IAM.

  10. Choisissez Next: Review.

  11. Pour Nom du rôle, le degré de la personnalisation du nom du rôle est défini par le service. Si le service définit le nom du rôle, cette option n'est pas modifiable. Dans d'autres cas, le service peut définir un préfixe pour le rôle ou vous permettre de saisir un suffixe facultatif. Certains services vous permettent de spécifier le nom complet de votre rôle.

    Si possible, saisissez un nom de rôle ou un suffixe de nom de rôle. Les noms de rôle de votre compte AWS doivent être uniques. Ils ne sont pas sensibles à la casse. Par exemple, vous ne pouvez pas créer deux rôles nommés PRODROLE et prodrole. Vous ne pouvez pas modifier le nom du rôle après sa création, car d'autres ressources AWS pourraient le référencer.

  12. (Facultatif) Dans le champ Description du rôle, saisissez la description du nouveau rôle.

  13. Passez en revue les informations du rôle, puis choisissez Créer un rôle.

Création d'un rôle pour un service (AWS CLI)

La création d'un rôle à partir de l'AWS CLI comporte plusieurs étapes. Lorsque vous créez un rôle à partir de la console, la plupart des étapes sont exécutées automatiquement pour vous. En revanche, lors de l'utilisation de l'AWS CLI, vous devez exécuter explicitement chaque étape vous-même. Vous devez créer le rôle et lui attribuer une stratégie d'autorisations. Si le service concerné est Amazon EC2 vous devez également créer un profil d'instance et lui ajouter le rôle. Vous pouvez également définir la limite d'autorisations pour votre rôle.

Pour créer un rôle pour un service AWS à partir de l'AWS CLI

  1. Créez un rôle : aws iam create-role

  2. Attachez une stratégie d'autorisations gérée au rôle : aws iam attach-role-policy

    ou

    Créez une stratégie d'autorisations en ligne pour le rôle : aws iam put-role-policy

  3. (Facultatif) Ajoutez des attributs personnalisés au rôle en associant des balises : aws iam tag-role

    Pour de plus amples informations, consultez la section Gestion des balises sur les rôles IAM (API AWS CLI ou AWS).

  4. (Facultatif) Définissez la limite d'autorisations pour le rôle : aws iam put-role-permissions-boundary

    Une limite d'autorisations contrôle les autorisations maximum dont un rôle peut disposer. Les limites d'autorisations constituent une fonctionnalité AWS avancée.

Si vous envisagez d'utiliser le rôle avec Amazon EC2 ou un autre service AWS qui utilise Amazon EC2, vous devez stocker le rôle dans un profil d'instance. Un profil d'instance est un conteneur pour un rôle que vous pouvez attacher à une instance Amazon EC2 lorsqu'elle est lancée. Un profil d'instance peut contenir un rôle uniquement et cette limite ne peut pas être augmentée. Si vous créez le rôle avec AWS Management Console, le profil d'instance est créé pour vous et il a même nom que le rôle. Pour plus d'informations sur les profils d'instance, consultez Utilisation de profils d'instance. Pour plus d'informations sur le lancement d'une instance EC2 avec un rôle, consultez Contrôle de l'accès aux ressources Amazon EC2 dans le Amazon EC2 Guide de l'utilisateur pour les instances Linux.

Pour créer un profil d'instance et y stocker le rôle (AWS CLI)

  1. Créez un profil d'instance : aws iam create-instance-profile

  2. Ajoutez le rôle au profil d'instance : aws iam add-role-to-instance-profile

L'exemple d'ensemble de commande AWS CLI suivant illustre les deux premières étapes de la création d'un rôle et de l'attachement des autorisations. Il présente également les deux étapes de la création d'un profil d'instance et de l'ajout du rôle au profil. Cet exemple de stratégie de confiance permet au service Amazon EC2 d'assumer le rôle et d'afficher le compartiment Amazon S3 example_bucket. L'exemple suppose également que vous utilisiez un ordinateur client exécutant Windows et que vous ayez déjà configuré votre interface de ligne de commande avec vos informations d'identification et votre région. Pour de plus amples informations, veuillez consulter Configuration de l'interface de ligne de commande AWS.

Dans cet exemple, incluez la stratégie de confiance suivante dans la première commande lors de la création du rôle. Cette stratégie de confiance permet au service Amazon EC2 d'assumer le rôle.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"Service": "ec2.amazonaws.com"}, "Action": "sts:AssumeRole" } }

Lorsque vous utilisez la deuxième commande, vous devez attacher une stratégie d'autorisations au rôle. L'exemple de stratégie d'autorisations suivant permet au rôle d'exécuter uniquement l'action ListBucket sur le compartiment Amazon S3 example_bucket.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::example_bucket" } }

Pour créer ce rôle Test-Role-for-EC2, vous devez d'abord enregistrer la stratégie de confiance précédente avec le nom trustpolicyforec2.json et la stratégie d'autorisations précédente avec le nom permissionspolicyforec2.json dans le répertoire policies de votre disque local C:. Vous pouvez ensuite utiliser les commandes suivantes pour créer le rôle, attacher la stratégie, créer le profil d'instance et ajouter le rôle au profil d'instance.

# Create the role and attach the trust policy that allows EC2 to assume this role. $ aws iam create-role --role-name Test-Role-for-EC2 --assume-role-policy-document file://C:\policies\trustpolicyforec2.json # Embed the permissions policy (in this example an inline policy) to the role to specify what it is allowed to do. $ aws iam put-role-policy --role-name Test-Role-for-EC2 --policy-name Permissions-Policy-For-Ec2 --policy-document file://C:\policies\permissionspolicyforec2.json # Create the instance profile required by EC2 to contain the role $ aws iam create-instance-profile --instance-profile-name EC2-ListBucket-S3 # Finally, add the role to the instance profile $ aws iam add-role-to-instance-profile --instance-profile-name EC2-ListBucket-S3 --role-name Test-Role-for-EC2

Lorsque vous lancez l'instance EC2, spécifiez le nom de profil d'instance dans la page Configurer les détails de l'instance si vous utilisez la console AWS. Si vous utilisez la commande CLI aws ec2 run-instances, précisez le paramètre --iam-instance-profile.

Création d'un rôle pour un service (API AWS)

La création d'un rôle à partir de l'API AWS comporte plusieurs étapes. Lorsque vous utilisez la console pour créer un rôle, la plupart des étapes sont exécutées automatiquement pour vous, mais avec l'API vous devez exécuter explicitement chaque étape vous-même. Vous devez créer le rôle et lui attribuer une stratégie d'autorisations. Si le service concerné est Amazon EC2 vous devez également créer un profil d'instance et lui ajouter le rôle. Vous pouvez également définir la limite d'autorisations pour votre rôle.

Pour créer un rôle pour service AWS (API AWS)

  1. Créez un rôle : CreateRole

    Vous pouvez spécifier un emplacement de fichier pour la stratégie d'approbation du rôle.

  2. Attacher une stratégie d'autorisations gérée au rôle : AttachRolePolicy

    ou

    Créez une stratégie d'autorisations en ligne pour le rôle : PutRolePolicy

  3. (Facultatif) Ajoutez des attributs personnalisés à l'utilisateur en associant des balises : TagRole

    Pour de plus amples informations, consultez la section Gestion des balises sur les utilisateurs IAM (API AWS CLI ou AWS).

  4. (Facultatif) Définissez la limite d'autorisations pour le rôle : PutRolePermissionsBoundary

    Une limite d'autorisations contrôle les autorisations maximum dont un rôle peut disposer. Les limites d'autorisations constituent une fonctionnalité AWS avancée.

Si vous envisagez d'utiliser le rôle avec Amazon EC2 ou un autre service AWS qui utilise Amazon EC2, vous devez stocker le rôle dans un profil d'instance. Un profil d'instance est un conteneur pour un rôle. Chaque profil d'instance peut contenir un rôle uniquement et cette limite ne peut pas être augmentée. Si vous créez le rôle dans AWS Management Console, le profil d'instance est créé pour vous et il a le même nom que le rôle. Pour plus d'informations sur les profils d'instance, consultez Utilisation de profils d'instance. Pour plus d'informations sur le lancement d'une instance Amazon EC2 avec un rôle, consultez Contrôle de l'accès aux ressources Amazon EC2 dans le Amazon EC2 Guide de l'utilisateur pour les instances Linux.

Pour créer un profil d'instance et y stocker le rôle (API AWS)

  1. Créez un profil d'instance : CreateInstanceProfile

  2. Ajoutez le rôle au profil d'instance : AddRoleToInstanceProfile