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 3 : propriétaire d’un compartiment accordant des autorisations sur des objets qu’il ne possède pas
Important
Il est préférable d’accorder des autorisations à des rôles IAM plutôt qu’à des utilisateurs individuels. Pour savoir comment procéder, consultez Fonctionnement des autorisations intercomptes et utilisation des rôles IAM.
Rubriques
Le scénario de cet exemple met en scène un propriétaire de compartiment qui souhaite accorder l’autorisation d’accès à des objets, alors que tous les objets du compartiment ne lui appartiennent pas. Pour cet exemple, le propriétaire du compartiment essaie d’accorder une autorisation à des utilisateurs de son propre compte.
Le propriétaire d'un bucket peut autoriser d'autres Comptes AWS personnes à télécharger des objets. Par défaut, le propriétaire du compartiment ne possède pas d’objet écrit dans un compartiment par un autre Compte AWS. Les objets sont la propriété des comptes qui les écrivent dans un compartiment S3. Si le propriétaire du compartiment ne possède pas des objets dans le compartiment, le propriétaire des objets concernés doit d’abord accorder l’autorisation requise au propriétaire du compartiment à l’aide d’une liste de contrôle d’accès (ACL) d’objets. Le propriétaire du compartiment pourra ensuite accorder des autorisations à un objet dont il n’est pas propriétaire. Pour de plus amples informations, veuillez consulter Propriété du compartiment et de l’objet Amazon S3.
Si le propriétaire du compartiment applique le paramètre appliqué par le propriétaire du compartiment pour la propriété de l’objet S3 pour le compartiment, le propriétaire du compartiment possèdera tous les objets du compartiment, y compris les objets écrits par un autre Compte AWS. Cette approche résoudra le problème selon lequel les objets n’appartiennent pas au propriétaire du compartiment. Vous pouvez ensuite déléguer des autorisations à des utilisateurs de votre propre compte ou à d’autres Comptes AWS.
Note
La propriété des objets S3 est un paramètre au niveau du compartiment Amazon S3 que vous pouvez utiliser à la fois pour contrôler la propriété des objets chargés dans votre compartiment et pour les désactiver ou les activer. ACLs Par défaut, Object Ownership est défini sur le paramètre imposé par le propriétaire du bucket, et tous ACLs sont désactivés. Lorsqu'ils ACLs sont désactivés, le propriétaire du compartiment possède tous les objets du compartiment et gère l'accès à ceux-ci exclusivement à l'aide de politiques de gestion des accès.
La majorité des cas d'utilisation modernes d'Amazon S3 ne nécessitent plus l'utilisation de ACLs. Nous vous recommandons de rester ACLs désactivé, sauf dans des circonstances exceptionnelles où vous devez contrôler l'accès à chaque objet individuellement. Lorsque cette ACLs option est désactivée, vous pouvez utiliser des politiques pour contrôler l'accès à tous les objets de votre compartiment, quelle que soit la personne qui les a chargés dans votre compartiment. Pour de plus amples informations, veuillez consulter Contrôle de la propriété des objets et désactivation ACLs pour votre compartiment.
Dans cet exemple, nous supposons que le propriétaire du compartiment n’a pas appliqué le paramètre appliqué par le propriétaire du compartiment pour la propriété de l’objet. Le propriétaire du compartiment délègue l’autorisation aux utilisateurs figurant dans son propre compte. Les étapes suivantes résument la procédure à suivre :

-
L’utilisateur administrateur du compte A attache une politique de compartiment contenant deux instructions.
-
Accorder une autorisation entre comptes au compte B pour charger des objets.
-
Autoriser un utilisateur dans son propre compte à accéder aux objets figurant dans le compartiment.
-
-
L’utilisateur administrateur du compte B charge des objets dans le compartiment appartenant au compte A.
-
L’administrateur du compte B met à jour la liste ACL d’objets en ajoutant une affectation qui donne au propriétaire du compartiment l’autorisation de contrôle total sur l’objet.
-
L’utilisateur figurant dans le compte A vérifie cela en accédant aux objets du compartiment, quel que soit leur propriétaire.
Pour cet exemple, vous avez besoin de deux comptes. Le tableau ci-dessous montre comment nous faisons référence à ces comptes et aux utilisateurs administrateurs dans ces comptes. Dans cette démonstration, vous n’utiliserez pas les autorisations d’utilisateur root du compte, conformément aux directives IAM recommandées. Pour plus d’informations, consultez Utilisation d’un utilisateur administrateur pour créer des ressources et accorder des autorisations. À la place, vous allez créer un administrateur dans chaque compte et utiliser ces autorisations pour créer des ressources et leur accorder des autorisations.
Compte AWS ID | Compte désigné comme | 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 (AWS CLI) et AWS Tools for Windows PowerShell vous n'avez donc pas besoin d'écrire de code.
Étape 0 : vous préparer à suivre la procédure
-
Assurez-vous d'en avoir deux Comptes AWS et d'avoir un administrateur pour chaque compte, comme indiqué dans le tableau de la section précédente.
-
Inscrivez-vous pour un Compte AWS, si nécessaire.
-
Utilisez les informations d’identification du compte A pour vous connecter à la console IAM
et procédez comme suit pour créer un utilisateur administrateur : -
Créez l’utilisateur
AccountAadmin
et notez ses informations d’identification de sécurité. Pour plus d’informations sur l’ajout d’utilisateurs, consultez Création d’un utilisateur IAM dans votre Compte AWS dans le Guide de l’utilisateur IAM. -
Accordez des autorisations d'administrateur à AccountAadminen joignant une politique utilisateur qui donne un accès complet. Pour obtenir des instructions, consultez Gestion des politiques IAM dans le Guide de l’utilisateur IAM.
-
Dans le tableau de bord de la console IAM
, notez l’URL de connexion d’utilisateur IAM. Les utilisateurs figurant dans ce compte doivent utiliser cette URL pour se connecter à la AWS Management Console. Pour plus d’informations, consultez Comment les utilisateurs se connectent à votre compte dans le Guide de l’utilisateur IAM.
-
-
Répétez l’étape précédente en utilisant les informations d’identification du compte B et créez l’utilisateur administrateur
AccountBadmin
.
-
-
Configurez le AWS CLI ou les outils pour Windows PowerShell. Veillez à enregistrer les autorisations de l’administrateur comme suit :
-
Si vous utilisez le AWS CLI, créez deux profils,
AccountAadmin
etAccountBadmin
, dans le fichier de configuration. -
Si vous utilisez les Outils pour 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 procédures détaillées.
-
Étape 1 : Tâches du compte A
Effectuez les opérations suivantes pour le compte A :
Étape 1.1 : vous connecter à la console
À l'aide de l'URL de connexion de l'utilisateur IAM pour le compte A, connectez-vous au compte en AWS Management Console tant qu'AccountAadmin
utilisateur. Cet utilisateur créera un compartiment et y attachera une stratégie.
Étape 1.2 : créer un compartiment et un utilisateur, puis ajouter une politique de compartiment accordant des autorisations à l’utilisateur
-
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 que son nom est
.amzn-s3-demo-bucket1
Pour obtenir des instructions, consultez Créer un compartiment.
-
Dans la console IAM
, créez l’utilisateur Dave
.Pour step-by-step obtenir des instructions, consultez la section Création d'utilisateurs IAM (console) dans le guide de l'utilisateur IAM.
-
Notez les informations d’identification de l’utilisateur Dave.
-
Dans la console Amazon S3, attachez la politique de compartiment suivante au compartiment
. Pour obtenir des instructions, consultez Ajout d’une politique de compartiment à l’aide de la console Amazon S3. Suivez les étapes pour ajouter une politique de compartiment. Pour plus d'informations sur la recherche d'un compte IDs, consultez la section Trouver votre Compte AWS identifiant.amzn-s3-demo-bucket1
Cette stratégie accorde au compte B les autorisations
s3:PutObject
ets3:ListBucket
. Cette politique accorde également à l’utilisateurDave
l’autorisations3:GetObject
.{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
AccountB-ID
:root" }, "Action": [ "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1
/*", "arn:aws:s3:::amzn-s3-demo-bucket1
" ] }, { "Sid": "Statement3", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountA-ID
:user/Dave" }, "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1
/*" ] } ] }
Étape 2 : réaliser les tâches du compte B
Maintenant que le compte B est autorisé à effectuer des opérations sur le compartiment du compte A, l’administrateur du compte B procède comme suit :
-
Charge un objet dans le compartiment du compte A
-
Il ajoute une autorisation dans la liste ACL d’objets pour accorder le contrôle total au propriétaire du compartiment du compte A.
En utilisant le AWS CLI
-
À l’aide de la commande
put-object
AWS CLI , chargez un objet. Le paramètre--body
de la commande identifie le fichier source à charger. Par exemple, si le fichier se trouve sur leC:
lecteur d'un Windows machine, spécifiezc:\HappyFace.jpg
. Le paramètre--key
fournit le nom de clé de l’objet.aws s3api put-object --bucket
amzn-s3-demo-bucket1
--key HappyFace.jpg --body HappyFace.jpg --profile AccountBadmin -
Ajoutez une affectation dans la liste ACL d’objets pour accorder au propriétaire du compartiment le contrôle total de l’objet. Pour découvrir comment trouver un ID d’utilisateur canonique, consultez Recherche de l’ID d’utilisateur canonique de votre Compte AWS dans le Guide de référence sur la gestion des comptes AWS .
aws s3api put-object-acl --bucket
amzn-s3-demo-bucket1
--key HappyFace.jpg --grant-full-control id="AccountA-CanonicalUserID" --profile AccountBadmin
Utilisation des outils pour Windows PowerShell
-
À l’aide de la commande
Write-S3Object
, chargez un objet.Write-S3Object -BucketName
amzn-s3-demo-bucket1
-key HappyFace.jpg -file HappyFace.jpg -StoredCredentials AccountBadmin -
Ajoutez une affectation dans la liste ACL d’objets pour accorder au propriétaire du compartiment le contrôle total de l’objet.
Set-S3ACL -BucketName
amzn-s3-demo-bucket1
-Key HappyFace.jpg -CannedACLName "bucket-owner-full-control" -StoredCreden
Étape 3 : tester les autorisations
À présent, vérifiez que l’utilisateur Dave du compte A peut accéder à l’objet appartenant au compte B.
En utilisant le AWS CLI
-
Ajoutez les informations d'identification de l'utilisateur Dave au fichier de AWS CLI configuration et créez un nouveau profil,
UserDaveAccountA
. Pour de plus amples informations, veuillez consulter Configuration des outils pour les procédures détaillées.[profile UserDaveAccountA] aws_access_key_id =
access-key
aws_secret_access_key =secret-access-key
region =us-east-1
-
Exécutez la commande CLI
get-object
pour téléchargerHappyFace.jpg
, puis enregistrez le fichier localement. Vous attribuez à l’utilisateur Dave des informations d’identification en ajoutant le paramètre--profile
.aws s3api get-object --bucket
amzn-s3-demo-bucket1
--key HappyFace.jpgOutputfile.jpg
--profile UserDaveAccountA
Utilisation des outils pour Windows PowerShell
-
Stockez les AWS informations d'identification de l'utilisateur Dave
UserDaveAccountA
, comme dans le magasin permanent.Set-AWSCredentials -AccessKey
UserDave-AccessKey
-SecretKeyUserDave-SecretAccessKey
-storeas UserDaveAccountA -
Exécutez la commande
Read-S3Object
pour téléchargerHappyFace.jpg
, puis enregistrez le fichier localement. Vous attribuez à l’utilisateur Dave des informations d’identification en ajoutant le paramètre-StoredCredentials
.Read-S3Object -BucketName
amzn-s3-demo-bucket1
-Key HappyFace.jpg -file HappyFace.jpg -StoredCredentials UserDaveAccountA
Étape 4 : nettoyer
-
Une fois le test terminé, vous pouvez procéder comme suit pour le nettoyage :
-
Connectez-vous à la AWS Management Console
en utilisant les informations d’identification du compte A, et procédez comme suit : -
Dans la console Amazon S3, supprimez la politique de compartiment attachée à
amzn-s3-demo-bucket1
. 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 console IAM
, supprimez l’utilisateur AccountAadmin. Pour step-by-step obtenir des instructions, reportez-vous à la section Suppression d'un utilisateur IAM dans le guide de l'utilisateur IAM.
-
-
-
Connectez-vous à la AWS Management Console
en utilisant les autorisations du compte B. Dans la console IAM , supprimez l'utilisateur AccountBadmin.