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 endosse pour effectuer des actions en votre nom s'appelle un rôle de service. Lorsqu’un rôle de service remplit un objectif spécial pour un service, il est défini comme 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.
Lors de la définition de l’autorisation PassRole
, vous devez vous assurer qu’un utilisateur ne transfère pas un rôle ayant plus d’autorisations que ce que vous souhaitez pour l’utilisateur. Par exemple, Alice n’est peut-être pas autorisée à effectuer des actions Amazon S3. Si Alice pouvait transmettre un rôle à un service autorisant les actions Amazon S3, le service pourrait effectuer des actions Amazon S3 pour le compte d’Alice lors de l’exécution de la tâche.
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 fonction 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 principal de service indiqué dans les politiques suivantes comme
. N'essayez pas de deviner le principal de service, car il est sensible à la casse et le format peut varier entre les services AWS. Pour afficher le principal de service d'un service, consultez la documentation de son rôle lié à un service.SERVICE-NAME
.amazonaws.com
Pour permettre à une entité IAM de créer un rôle spécifique lié à un service
Ajoutez la politique suivante à l'entité IAM qui doit créer le rôle lié à un service. Cette politique vous permet de créer un rôle lié au service spécifié et avec un nom spécifique. Vous pouvez ensuite attacher des politiques 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
AWS recommande de n'autoriser que les utilisateurs administratifs à créer n'importe quelle fonction du service. Une personne disposant des autorisations nécessaires pour créer un rôle et attacher n'importe quelle politique peut augmenter ses propres autorisations. Au lieu de cela, créez une politique qui l’autorise à créer uniquement les rôles dont elle a besoin ou de demander à un administrateur de créer la fonction du service en son nom.
Pour attacher une politique qui permet à un administrateur d'accéder à l'intégralité de votre interface Compte AWS, utilisez la politique gérée AWS AdministratorAccess
Pour permettre à une entité IAM de modifier un rôle lié à un service
Ajoutez la politique 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 politique 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 un rôle de service
AWS recommande de n'autoriser que les utilisateurs administratifs à supprimer n'importe quelle fonction du service. Au lieu de cela, créez une politique qui leur permet de supprimer uniquement les rôles dont ils ont besoin ou de demander à un administrateur de supprimer le rôle de service en leur nom.
Pour attacher une politique qui permet à un administrateur d'accéder à l'intégralité de votre Compte AWS, utilisez la politique gérée AWS AdministratorAccess
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 politiques d'approbation et d'autorisation nécessaires au rôle, afin que le service puisse endosser 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 IAM)
Connectez-vous à l’outil AWS Management Console, puis ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/
. -
Dans le volet de navigation de la console IAM, sélectionnez Roles (Rôles), puis Create role (Créer un rôle).
-
Pour Trusted entity (Entité de confiance), choisissez Service AWS.
-
Pour Service ou cas d’utilisation, choisissez un service, puis choisissez le cas d’utilisation. Les cas d'utilisation sont définis par le service pour inclure la politique d'approbation nécessaire au service.
-
Choisissez Suivant.
-
Pour Politiques d’autorisations, les options dépendent du cas d’utilisation que vous avez sélectionné :
-
Si le service définit les autorisations pour le rôle, il n’est pas possible de sélectionner les politiques d’autorisation.
-
Choisissez parmi un ensemble limité de politiques d’autorisation.
-
Choisissez parmi toutes les politiques d’autorisation.
-
Ne sélectionnez aucune politique d’autorisation, créez les politiques une fois le rôle créé, puis attachez-les au rôle.
-
-
(Facultatif) Définissez une limite d'autorisations. Il s’agit d’une fonctionnalité avancée disponible pour les fonctions de service, mais pas pour les rôles liés à un service.
-
Ouvrez la section Définir une limite des autorisations et choisissez Utiliser une limite des autorisations pour contrôler le nombre maximum d’autorisations de rôle.
IAM inclut une liste des politiques gérées par AWS et des politiques gérées par le client dans votre compte.
Sélectionnez la politique à utiliser comme limite d'autorisations.
-
-
Choisissez Suivant.
-
Pour Nom du rôle, les options dépendent du service :
-
Si le service définit le nom du rôle, vous ne pouvez pas modifier le nom du rôle.
-
Si le service définit un préfixe pour le nom du rôle, vous pouvez saisir un suffixe facultatif.
-
Si le service ne définit pas le nom du rôle, vous pouvez le nommer.
Important
Lorsque vous nommez un rôle, notez ce qui suit :
-
Les noms de rôle doivent être uniques au sein de votre Compte AWS, et ne peuvent pas être rendus uniques par la casse.
Par exemple, ne créez pas deux rôles nommés
PRODROLE
etprodrole
. Lorsqu’un nom de rôle est utilisé dans une politique ou dans le cadre d’un ARN, le nom de rôle est sensible à la casse. Cependant, lorsqu’un nom de rôle apparaît aux clients dans la console, par exemple lors de la procédure d’ouverture de session, le nom de rôle est insensible à la casse. -
Vous ne pouvez pas modifier le nom du rôle après sa création, car d’autres entités pourraient y faire référence.
-
-
-
(Facultatif) Pour Description, saisissez la description du rôle.
-
(Facultatif) Pour modifier les cas d’utilisation et les autorisations du rôle, dans les sections Étape 1 : sélectionner les entités de confiance ou Étape 2 : ajouter des autorisations, sélectionnez Modifier.
-
(Facultatif) Pour identifier, organiser ou rechercher le rôle, ajoutez des identifications sous forme de paires clé-valeur. Pour plus d’informations sur l’utilisation des balises dans IAM, consultez Balisage des ressources AWS Identity and Access Management dans le Guide de l’utilisateur IAM.
-
Passez en revue les informations du rôle, puis choisissez Create role (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 la 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 politique 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
-
La commande
create-role
suivante crée un rôle nommé Rôle test et lui attache une politique de confiance :aws iam create-role --role-name Test-Role --assume-role-policy-document file://Test-Role-Trust-Policy.json
-
Attachez une politique d'autorisations gérée au rôle : aws iam attach-role-policy.
Par exemple, la commande
attach-role-policy
suivante attache la politique gérée par AWS, nomméeReadOnlyAccess
, au rôle IAM nomméReadOnlyRole
:aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess --role-name ReadOnlyRole
or
Créez une politique d'autorisations en ligne pour le rôle : aws iam put-role-policy
Pour ajouter une politique d'autorisations en ligne, reportez-vous à l'exemple suivant :
aws iam put-role-policy --role-name Test-Role --policy-name ExamplePolicy --policy-document file://AdminPolicy.json
-
(Facultatif) Ajoutez des attributs personnalisés au rôle en associant des balises : aws iam tag-role
Pour plus d’informations, veuillez consulter Gestion des balises sur les rôles IAM (AWS CLI ou API AWS).
-
(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 des profils d’instance. Pour de plus amples 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 Guide de l’utilisateur Amazon EC2.
Pour créer un profil d'instance et y stocker le rôle (AWS CLI)
-
Créez un profil d'instance : aws iam create-instance-profile
-
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 politique de confiance permet au service Amazon EC2 d'endosser 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 plus d’informations, consultez Configuration de l’interface de ligne de commande AWS.
Dans cet exemple, incluez la politique de confiance suivante dans la première commande lors de la création du rôle. Cette politique de confiance permet au service Amazon EC2 d'endosser 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 politique d'autorisations au rôle. L'exemple de politique 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 politique de confiance précédente avec le nom trustpolicyforec2.json
et la politique 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 politique, 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 politique 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)
-
Créez un rôle : CreateRole
Vous pouvez spécifier un emplacement de fichier pour la politique d'approbation du rôle.
-
Attacher une politique d'autorisations gérée au rôle : AttachRolePolicy
or
Créez une politique d'autorisations en ligne pour le rôle : PutRolePolicy
-
(Facultatif) Ajoutez des attributs personnalisés à l'utilisateur en associant des balises : TagRole
Pour plus d’informations, veuillez consulter Gestion des balises sur les utilisateurs IAM (AWS CLI ou API AWS).
-
(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 des profils d’instance. Pour de plus amples 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 Guide de l’utilisateur Amazon EC2.
Pour créer un profil d'instance et y stocker le rôle (API AWS)
-
Créez un profil d'instance : CreateInstanceProfile
-
Ajoutez le rôle au profil d'instance : AddRoleToInstanceProfile