Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exemple 2 : propriétaire d'un compartiment accordant à ses utilisateurs des autorisations entre comptes sur un compartiment
Important
Il est préférable d'accorder des autorisations à IAM des rôles plutôt que d'accorder des autorisations à des utilisateurs individuels. Pour savoir comment procéder, veuillez consulter Comprendre les autorisations entre comptes et utiliser les rôles IAM.
Rubriques
Un compte Compte AWS A, par exemple, peut accorder à un autre Compte AWS, le compte B, l'autorisation d'accéder à ses ressources, telles que des seaux et des objets. Le compte B peut ensuite déléguer ces autorisations aux utilisateurs du compte. Dans ce scénario fictif, le propriétaire d'un compartiment accorde une autorisation entre comptes à un autre compte pour lui permettre d'effectuer des opérations spécifiques sur un compartiment.
Note
Le compte A peut également accorder directement des autorisations à un utilisateur du compte B, par le biais d'une stratégie de compartiment. Cependant, l'utilisateur aura toujours besoin de l'autorisation du compte parent, le compte B, auquel il appartient, même si le compte B n'a pas les autorisations du compte A. Tant que l'utilisateur dispose de l'autorisation du propriétaire de la ressource et du compte parent, il pourra accéder à la ressource.
Les étapes suivantes résument la procédure à suivre :
-
L'utilisateur administrateur du compte A attache une stratégie de compartiment en accordant au compte B des autorisations inter-comptes pour lui permettre d'effectuer des opérations spécifiques sur un compartiment.
Notez que l'utilisateur administrateur du compte B hérite automatiquement des autorisations.
-
L'utilisateur administrateur du compte B attache une stratégie d'utilisateur à l'utilisateur en déléguant les autorisations qu'il a reçues du compte A.
-
L'utilisateur du compte B vérifie ensuite les autorisations en accédant à un objet dans le compartiment appartenant au compte A.
Pour cet exemple, vous avez besoin de deux comptes. Le tableau ci-dessous montre comment nous faisons référence à ces comptes et à leurs utilisateurs administrateurs. Conformément aux IAM directives (voirUtilisation d'un utilisateur administrateur pour créer des ressources et accorder des autorisations), nous n'utilisons pas les informations d'identification de l'utilisateur root dans cette procédure pas à pas. A la place, vous créez un utilisateur administrateur dans chaque compte et utilisez ces autorisations pour créer des ressources et leur accorder des autorisations.
Compte AWS ID | Compte désigné comme | Utilisateur administrateur du compte |
---|---|---|
|
Compte A |
AccountAadmin |
|
Compte B |
AccountBadmin |
Toutes les tâches de création d'utilisateurs et d'octroi d'autorisations sont effectuées dans la AWS Management Console. Pour vérifier les autorisations, la procédure pas à pas utilise les outils de ligne de commande AWS Command Line Interface (CLI) et AWS Tools for Windows PowerShell vous n'avez donc pas besoin d'écrire de code.
Préparation de la procédure détaillée
-
Assurez-vous que vous en avez deux Comptes AWS et que chaque compte possède un utilisateur administrateur, comme indiqué dans le tableau de la section précédente.
-
Inscrivez-vous pour un Compte AWS, si nécessaire.
-
À l'aide des informations d'identification du compte A, connectez-vous à la IAMconsole
pour créer l'utilisateur administrateur : -
Créez un utilisateur
AccountAadmin
et notez les informations d'identification de sécurité. Pour obtenir des instructions, reportez-vous à la section Création IAM d'un utilisateur Compte AWS dans le guide de IAM l'utilisateur. -
Accordez des privilèges d'administrateur à AccountAadminen joignant une politique utilisateur donnant un accès complet. Pour obtenir des instructions, reportez-vous à la section Utilisation des politiques dans le guide de IAM l'utilisateur.
-
-
Lorsque vous êtes dans la IAM console, notez la connexion de l'IAMutilisateur URL sur le tableau de bord. Tous les utilisateurs du compte doivent l'utiliser URL lorsqu'ils se connectent au AWS Management Console.
Pour plus d'informations, consultez la section Comment les utilisateurs se connectent à votre compte dans le Guide de IAM l'utilisateur.
-
Répétez l'étape précédente en utilisant les informations d'identification du compte B et créez un utilisateur administrateur
AccountBadmin
.
-
-
Configurez le AWS Command Line Interface (AWS CLI) ou le AWS Tools for Windows PowerShell. Assurez-vous d'enregistrer les informations d'identification de l'utilisateur administrateur comme suit :
-
Si vous utilisez le AWS CLI, créez deux profils,
AccountAadmin
etAccountBadmin
, dans le fichier de configuration. -
Si vous utilisez le AWS Tools for Windows PowerShell, assurez-vous de stocker les informations d'identification de la session sous forme
AccountAadmin
etAccountBadmin
.
Pour obtenir des instructions, consultez Configuration des outils pour les visites guidées.
-
-
Enregistrez les autorisations de l'utilisateur administrateur, également appelées « profils ». Vous pouvez utiliser le nom de profil au lieu de spécifier des autorisations pour chaque commande saisie. Pour de plus amples informations, veuillez consulter Configuration des outils pour les visites guidées.
-
Ajoutez des profils dans le fichier AWS CLI d'informations d'identification pour chacun des utilisateurs administrateurs
AccountAadmin
etAccountBadmin
dans les deux comptes.[AccountAadmin] aws_access_key_id =
access-key-ID
aws_secret_access_key =secret-access-key
region = us-east-1 [AccountBadmin] aws_access_key_id =access-key-ID
aws_secret_access_key =secret-access-key
region = us-east-1 -
Si vous utilisez le AWS Tools for Windows PowerShell, exécutez la commande suivante.
set-awscredentials –AccessKey
AcctA-access-key-ID
–SecretKeyAcctA-secret-access-key
–storeas AccountAadmin set-awscredentials –AccessKeyAcctB-access-key-ID
–SecretKeyAcctB-secret-access-key
–storeas AccountBadmin
-
Étape 1 : Tâches du compte A
Étape 1.1 : Connectez-vous au AWS Management Console
À l'aide de la connexion IAM utilisateur URL pour le compte A, connectez-vous d'abord au compte en AWS Management Console tant qu'AccountAadminutilisateur. Cet utilisateur créera un compartiment et y attachera une stratégie.
Étape 1.2 : Créer un compartiment
-
Dans la console Amazon S3, créez un compartiment. Cet exercice suppose que le bucket a été créé dans l'est des États-Unis (Virginie du Nord) Région AWS et qu'il porte un nom
.amzn-s3-demo-bucket
Pour obtenir des instructions, consultez Créer un compartiment.
-
Chargez un exemple d'objet dans le compartiment.
Pour plus d'informations, consultez Étape 2 : Charger un objet dans votre compartiment.
Étape 1.3 : attacher une stratégie de compartiment afin d'accorder des autorisations entre comptes au compte B
La politique du compartiment accorde les s3:ListBucket
autorisations s3:GetLifecycleConfiguration
et au compte B. On suppose que vous êtes toujours connecté à la console à l'aide des informations AccountAadmind'identification utilisateur.
-
Attachez la stratégie de compartiment suivante à
. Cette stratégie accorde au compte B une autorisation pour les actionsamzn-s3-demo-bucket
s3:GetLifecycleConfiguration
ets3:ListBucket
.Pour obtenir des instructions, consultez Ajout d'une stratégie de compartiment à l'aide de la console Amazon S3.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Example permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
AccountB-ID
:root" }, "Action": [ "s3:GetLifecycleConfiguration", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket
" ] } ] } -
Vérifiez que le compte B (et donc son utilisateur administrateur) peut effectuer les opérations.
-
Vérifiez à l'aide du AWS CLI
aws s3 ls s3://
amzn-s3-demo-bucket
--profile AccountBadmin aws s3api get-bucket-lifecycle-configuration --bucketamzn-s3-demo-bucket
--profile AccountBadmin -
Vérifiez à l'aide du AWS Tools for Windows PowerShell
get-s3object -BucketName
amzn-s3-demo-bucket
-StoredCredentials AccountBadmin get-s3bucketlifecycleconfiguration -BucketNameamzn-s3-demo-bucket
-StoredCredentials AccountBadmin
-
Étape 2 : Tâches du compte B
L'administrateur du compte B va maintenant créer un utilisateur, Dave, et lui déléguer les autorisations reçues du compte A.
Étape 2.1 : Connectez-vous au AWS Management Console
À l'aide de la connexion IAM utilisateur URL pour le compte B, connectez-vous d'abord au compte en AWS Management Console tant qu'AccountBadminutilisateur.
Étape 2.2 : créer l'utilisateur Dave dans le compte B
Dans la IAMconsoleDave
.
Pour obtenir des instructions, consultez la section Création d'IAMutilisateurs (console) dans le guide de IAM l'utilisateur.
Étape 2.3 : déléguer les autorisations à l'utilisateur Dave
Créez une stratégie intégrée pour l'utilisateur Dave à l'aide de la stratégie suivante. Vous devrez mettre à jour la stratégie en fournissant le nom du compartiment.
Il est supposé que vous êtes connecté à la console à l'aide des informations AccountBadmind'identification utilisateur.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Example", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket
" ] } ] }
Pour obtenir des instructions, reportez-vous à la section Gestion des IAM politiques dans le guide de IAM l'utilisateur.
Étape 2.4 : Testez les autorisations
Dans le compte B, Dave peut maintenant répertorier le contenu du compartiment
appartenant au compte A. Vous pouvez vérifier les autorisations via l'une des procédures suivantes. amzn-s3-demo-bucket
Testez les autorisations à l'aide du AWS CLI
-
Ajoutez le
UserDave
profil au fichier de AWS CLI configuration. Pour plus d'informations sur le fichier de configuration, consultez Configuration des outils pour les visites guidées.[profile UserDave] aws_access_key_id =
access-key
aws_secret_access_key =secret-access-key
region =us-east-1
-
À l'invite de commande, entrez la AWS CLI commande suivante pour vérifier que Dave peut désormais obtenir une liste d'objets à partir du compte
appartenant au compte A. Notez que la commande spécifie leamzn-s3-demo-bucket
UserDave
profil.aws s3 ls s3://
--profile UserDaveamzn-s3-demo-bucket
Dave n'a aucune autre autorisation. Ainsi, s'il tente une autre opération, par exemple la
get-bucket-lifecycle
configuration suivante, Amazon S3 renvoie l'autorisation refusée.aws s3api get-bucket-lifecycle-configuration --bucket
amzn-s3-demo-bucket
--profile UserDave
Tester les autorisations en utilisant AWS Tools for Windows PowerShell
-
Conservez les informations d'identification de Dave sous le nom
AccountBDave
.set-awscredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas AccountBDave
-
Essayez la commande permettant de répertorier les compartiments.
get-s3object -BucketName
amzn-s3-demo-bucket
-StoredCredentials AccountBDaveDave n'a aucune autre autorisation. Ainsi, s'il tente une autre opération, par exemple la suivante,
get-s3bucketlifecycleconfiguration
Amazon S3 renvoie l'autorisation refusée.get-s3bucketlifecycleconfiguration -BucketName
amzn-s3-demo-bucket
-StoredCredentials AccountBDave
Étape 3 : (Facultatif) essayer le refus explicite
Vous pouvez obtenir des autorisations à l'aide d'une liste de contrôle d'accès (ACL), d'une politique de compartiment ou d'une politique utilisateur. Mais si un refus explicite est défini par une politique de compartiment ou une politique utilisateur, le refus explicite a priorité sur toute autre autorisation. À des fins de test, mettez à jour la politique du compartiment et refusez explicitement l's3:ListBucket
autorisation au compte B. La politique accorde également une s3:ListBucket
autorisation. Toutefois, le refus explicite a priorité, et le compte B ou les utilisateurs du compte B ne pourront pas y répertorier les
objets.amzn-s3-demo-bucket
-
À l'aide des informations d'identification de l'utilisateur
AccountAadmin
dans le compte A, remplacez la politique de compartiment par la suivante.{ "Version": "2012-10-17", "Statement": [ { "Sid": "Example permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
AccountB-ID
:root" }, "Action": [ "s3:GetLifecycleConfiguration", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket
" ] }, { "Sid": "Deny permission", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::AccountB-ID
:root" }, "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket
" ] } ] } -
Désormais, si vous essayez d'obtenir une liste de choses à faire à l'aide
AccountBadmin
d'informations d'identification, l'accès est refusé.-
À l'aide de AWS CLI, exécutez la commande suivante :
aws s3 ls s3://
amzn-s3-demo-bucket
--profile AccountBadmin -
À l'aide de AWS Tools for Windows PowerShell, exécutez la commande suivante :
get-s3object -BucketName
amzn-s3-demo-bucket
-StoredCredentials AccountBDave
-
Étape 4 : Nettoyer
-
Une fois les tests terminés, vous pouvez effectuer les opérations suivantes pour effectuer le nettoyage :
-
Connectez-vous au AWS Management Console (AWS Management Console
) à l'aide des informations d'identification du compte A, puis procédez comme suit : -
Dans la console Amazon S3, supprimez la stratégie de compartiment attachée à examplebucket. Dans la page Properties du compartiment, supprimez la stratégie dans la section Permissions.
-
Si le compartiment a été créé pour cet exercice, supprimez les objets, puis le compartiment, dans la console Amazon S3.
-
Dans la IAMconsole
, supprimez l' AccountAadmin
utilisateur.
-
-
-
Connectez-vous à la IAMconsole
à l'aide des informations d'identification du compte B. Supprimer l'utilisateur AccountBadmin
. Pour step-by-step obtenir des instructions, reportez-vous à la section Suppression IAM d'un utilisateur dans le guide de IAM l'utilisateur.