Exemple 1 : propriétaire d’un compartiment accordant à ses utilisateurs des autorisations sur un compartiment
Important
Il est préférable d’accorder des autorisations à des rôles IAM plutôt qu’à des utilisateurs individuels. Pour plus d’informations sur l’octroi d’autorisations à des rôles IAM, consultez Fonctionnement des autorisations intercomptes et utilisation des rôles IAM.
Rubriques
Dans cette procédure détaillée, un Compte AWS possède un compartiment, et le compte inclut un utilisateur IAM. Par défaut, cet utilisateur n’a aucune autorisation. Le compte parent doit accorder des autorisations à l’utilisateur pour que celui-ci puisse exécuter des tâches. Le propriétaire du compartiment et le compte parent sont identiques. Par conséquent, pour accorder les autorisations utilisateur sur le compartiment, le Compte AWS peut utiliser une stratégie de compartiment, une stratégie utilisateur ou les deux. Le propriétaire du compte accorde certaines autorisations grâce à une stratégie de compartiment et d’autres autorisations grâce à une stratégie d’utilisateur.
Les étapes suivantes résument la procédure :
-
L’administrateur du compte crée une stratégie de compartiment qui accorde un ensemble d’autorisations à l’utilisateur.
-
L’administrateur du compte attache une stratégie d’utilisateur à l’utilisateur en accordant des autorisations supplémentaires.
-
L’utilisateur essaie ensuite les autorisations accordées via la stratégie de compartiment et utilisateur.
Pour cet exemple, vous aurez besoin d’un Compte AWS. Au lieu d’utiliser les informations d’identification d’utilisateur root du compte, vous créez un utilisateur administrateur (consultez Utilisation d’un utilisateur administrateur pour créer des ressources et accorder des autorisations). Nous faisons référence au Compte AWS et à l’utilisateur administrateur comme l’illustre le tableau suivant :
| ID de compte | Compte désigné comme | Utilisateur administrateur du compte |
|---|---|---|
|
|
Compte A |
AccountAadmin |
Note
L’utilisateur administrateur dans cet exemple est AccountAadmin, qui fait référence au compte A, et non AccountAdmin.
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 utilise les outils de ligne de commande, AWS Command Line Interface (AWS CLI) et AWS Tools for Windows PowerShell, pour que vous n’ayez pas à écrire de code.
Préparation de la procédure détaillée
-
Assurez-vous de disposer d’un Compte AWS avec un utilisateur doté de privilèges d’administrateur.
-
Connectez-vous à un Compte AWS, le cas échéant. Nous appelons ce compte : Compte A.
-
Accédez à https://aws.amazon.com/s3/
, puis choisissez Créer un compte AWS. -
Suivez les instructions à l’écran.
AWS vous informera par e-mail dès que votre compte sera activé et prêt à l’emploi.
-
-
Dans le compte A, créez un utilisateur administrateur,
AccountAadmin. En utilisant les informations d’identification du Compte A, connectez-vous à la console IAMet procédez comme suit : -
Créez l’utilisateur
AccountAadminet notez ses informations d’identification de sécurité.Pour obtenir des instructions, consultez Création d’un utilisateur IAM dans votre Compte AWS dans le Guide de l’utilisateur IAM.
-
Accordez des privilèges d’administrateur à AccountAadmin en y associant une politique utilisateur donnant l’accès total.
Pour obtenir des instructions, consultez Gestion des politiques IAM dans le Guide de l’utilisateur IAM.
-
Notez l’URL de connexion d’utilisateur IAM pour AccountAadmin. Vous devez utiliser cette URL pour vous connecter sur la AWS Management Console. Pour plus d’informations sur la localisation de l’URL de connexion, consultez Connexion à la AWS Management Console en tant qu’utilisateur IAM dans le Guide de l’utilisateur IAM. Notez l’URL pour chacun des comptes.
-
-
-
Configurez l’AWS CLI ou AWS Tools for Windows PowerShell. Assurez-vous d’enregistrer les autorisations de l’utilisateur administrateur comme suit :
-
Si vous utilisez l’AWS CLI, créez un profil,
AccountAadmin, dans le fichier de configuration. -
Si vous utilisez AWS Tools for Windows PowerShell, veillez à stocker les informations d’identification pour la session sous
AccountAadmin.
Pour obtenir des instructions, veuillez consulter Configuration des outils pour les procédures détaillées.
-
Étape 1 : créer des ressources dans le compte A et accorder des autorisations
À l’aide des informations d’identification de l’utilisateur AccountAadmin du compte A, ainsi que l’URL de connexion d’utilisateur IAM, connectez-vous à la AWS Management Console et procédez comme suit :
-
Création des ressources d’un compartiment et d’un utilisateur IAM
-
Dans la console Amazon S3, créez un compartiment. Notez la Région AWS dans laquelle vous avez créé le compartiment. Pour obtenir des instructions, veuillez consulter Création d’un compartiment à usage général.
-
Dans la console IAM
, procédez comme suit : -
Créez un utilisateur nommé Dave.
Pour obtenir des instructions détaillées, consultez Création d’utilisateurs IAM (console) dans le Guide de l’utilisateur IAM.
-
Notez les informations d’identification de
UserDave. -
Notez l’Amazon Resource Name (ARN) de l’utilisateur Dave. Dans la console IAM
, sélectionnez l’utilisateur. L’onglet Récapitulatif fournit l’ARN utilisateur.
-
-
-
Octroyez les autorisations.
Étant donné que le propriétaire du compartiment et le compte parent auquel appartient l’utilisateur sont identiques, le Compte AWS peut accorder des autorisations à l’utilisateur grâce à une stratégie de compartiment, une stratégie d’utilisateur ou les deux. Dans cet exemple, vous faites les deux. Si l’objet est également détenu par le même compte, le propriétaire du compartiment peut accorder des autorisations d’objet dans la stratégie de compartiment (ou une politique IAM).
-
Dans la console Amazon S3, attachez la stratégie de compartiment suivante au compartiment
awsexamplebucket1.La stratégie possède deux énoncés.
-
Le premier énoncé accorde à Dave les autorisations d’opération sur le compartiment
s3:GetBucketLocationets3:ListBucket. -
Le second énoncé accorde l’autorisation
s3:GetObject. Etant donné que le Compte A détient l’objet, l’administrateur du compte peut accorder l’autorisations3:GetObject.
Dans l’énoncé
Principal, Dave est identifié par son ARN utilisateur. Pour en savoir plus sur les éléments de la stratégie, consultez Politiques, stratégies et autorisations dans Amazon S3. -
-
Créez une stratégie intégrée pour l’utilisateur Dave à l’aide de la stratégie suivante. La stratégie accorde à Dave l’autorisation
s3:PutObject. Vous devez mettre à jour la stratégie en fournissant le nom du compartiment.Pour obtenir des instructions, consultez Gestion des politiques IAM dans le Guide de l’utilisateur IAM. Notez que vous devez vous connecter sur la console grâce aux autorisations du Compte A.
-
Étape 2 : tester les autorisations
À l’aide des autorisations de Dave, vérifiez que les autorisations fonctionnent. Vous pouvez utiliser l’une des deux procédures suivantes.
Test des autorisations à l’aide de l’AWS CLI
-
Mettez à jour le fichier de configuration AWS CLI en ajoutant le profil
UserDaveAccountAsuivant. Pour plus d’informations, consultez Configuration des outils pour les procédures détaillées.[profile UserDaveAccountA] aws_access_key_id =access-keyaws_secret_access_key =secret-access-keyregion =us-east-1 -
Vérifiez que Dave peut exécuter les opérations telles qu’elles sont accordées dans la stratégie d’utilisateur. Chargez un exemple d’objet à l’aide de la commande AWS CLI
put-objectsuivante.Le paramètre
--bodyde la commande identifie le fichier source à charger. Par exemple, si le fichier est à la racine du disque C: sur une machine Windows, vous spécifiezc:\HappyFace.jpg. Le paramètre--keyfournit le nom de clé de l’objet.aws s3api put-object --bucketawsexamplebucket1--keyHappyFace.jpg--bodyHappyFace.jpg--profile UserDaveAccountAExécutez la commande AWS CLI suivante pour obtenir l’objet.
aws s3api get-object --bucket awsexamplebucket1 --keyHappyFace.jpgOutputFile.jpg--profile UserDaveAccountA
Test des autorisations à l’aide de l’AWS Tools for Windows PowerShell
-
Stockez les informations d’identification de Dave sous le nom
AccountADave. Vous utilisez ensuite ces informations d’identification pour faire une demandePUTetGETsur un objet.set-awscredentials -AccessKeyAccessKeyID-SecretKeySecretAccessKey-storeas AccountADave -
Chargez un exemple d’objet à l’aide de la commande AWS Tools for Windows PowerShell
Write-S3Objecten utilisant les informations d’identification stockées de l’utilisateur Dave.Write-S3Object -bucketnameawsexamplebucket1-keyHappyFace.jpg-fileHappyFace.jpg-StoredCredentials AccountADaveTéléchargez l’objet précédemment chargé.
Read-S3Object -bucketnameawsexamplebucket1-keyHappyFace.jpg-fileOutput.jpg-StoredCredentials AccountADave