Exemple 1 : propriétaire d'un compartiment accordant à ses utilisateurs des autorisations sur un compartiment - Amazon Simple Storage Service

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 savoir comment procéder, veuillez consulter Informations générales : autorisations entre comptes et utilisation de rôles IAM.

Dans cet exercice, un Compte AWS détient un compartiment et possède un utilisateur IAM dans le compte. Par défaut, un utilisateur ne dispose d'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 :

  1. L'administrateur du compte crée une stratégie de compartiment qui accorde un ensemble d'autorisations à l'utilisateur.

  2. L'administrateur du compte attache une stratégie d'utilisateur à l'utilisateur en accordant des autorisations supplémentaires.

  3. 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 suit :

ID de compte Compte désigné comme Utilisateur administrateur du compte

1111-1111-1111

Compte A

AccountAadmin

Note

L'utilisateur administrateur dans cet exemple est AccountAdmin, 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 (interface de ligne de commande) et AWS Tools for Windows PowerShell pour que vous n'ayez pas à écrire de code.

Étape 0 : Préparez-vous à suivre la procédure

  1. Assurez-vous de disposer d'un Compte AWS avec un utilisateur doté de privilèges d'administrateur.

    1. Connectez-vous sur un compte , le cas échéant. Nous appelons ce compte : Compte A.

      1. Veuillez consulter https://aws.amazon.com/s3 et cliquez sur S'inscrire.

      2. Suivez les instructions à l'écran.

        AWS vous informera par e-mail dès que votre compte sera activé et prêt à l'emploi.

    2. Dans le Compte A, créez un utilisateur administrateur AccountAadmin. En utilisant les autorisations du Compte A, connectez-vous à la console IAM et procédez comme suit :

      1. Créez l'utilisateur AccountAadmin et notez les autorisations de l'utilisateur.

        Pour obtenir des instructions, veuillez consulter la section Création d'un utilisateur IAM dans votre Compte AWS du Guide de l'utilisateur IAM.

      2. Accordez des privilèges d'administrateur AccountAadmin en attachant une stratégie d'utilisateur donnant l'accès total.

        Pour obtenir des instructions, veuillez consulter Utilisation de stratégies dans le Guide de l'utilisateur IAM.

      3. Notez l'IAM User Sign-In URL (URL de connexion de l'utilisateur IAM) pour AccountAadmin. Vous devez utiliser cette URL pour vous connecter sur la AWS Management Console. Pour savoir où la trouver, veuillez consulter Comment les utilisateurs se connectent à votre compte dans le Guide de l'utilisateur IAM. Notez l'URL pour chacun des comptes.

  2. Configurez la AWS Command Line Interface (CLI) ou AWS Tools for Windows PowerShell. Assurez-vous d'enregistrer les autorisations de l'utilisateur administrateur comme suit :

    • Si vous utilisez 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 dans AccountAadmin.

    Pour obtenir des instructions, consultez Installation des outils pour les procédures d'exemples.

Étape 1 : créez des ressources (un compartiment et un utilisateur IAM) dans un Compte A et accordez des autorisations

Grâce aux informations d'identification de l'utilisateur AccountAadmin dans le Compte A, et l'URL de connexion d'utilisateur IAM, connectez-vous sur la AWS Management Console et procédez comme suit :

  1. Créez des ressources (un compartiment et un utilisateur IAM)

    1. Dans la console Amazon S3, créez un compartiment. Notez la Région AWS dans laquelle vous l'avez créé. Pour obtenir des instructions, consultez Créer un compartiment.

    2. Dans la console IAM, procédez comme suit :

      1. Créez un utilisateur, Dave.

        Pour obtenir des instructions, veuillez consulter la section Création d'utilisateurs IAM (AWS Management Console) du Guide de l'utilisateur IAM.

      2. Notez les autorisations de l'utilisateur Dave.

      3. Notez l'Amazon Resource Name (ARN) pour l'utilisateur Dave. Dans la console IAM, sélectionnez l'utilisateur, et l'onglet Summary fournit l'ARN utilisateur.

  2. Accordez des 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 stratégie IAM).

    1. 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:GetBucketLocation et s3: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'autorisation s3: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 Stratégies de compartiment et stratégies d'utilisateur.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountA-ID:user/Dave" }, "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1" ] }, { "Sid": "statement2", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountA-ID:user/Dave" }, "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1/*" ] } ] }
    2. 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.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "PermissionForObjectOperations", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1/*" ] } ] }

      Pour obtenir des instructions, veuillez consulter Utilisation de stratégies en ligne 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 : testez les autorisations

À l'aide des autorisations de Dave, vérifiez que les autorisations fonctionnent. Vous pouvez utiliser l'une des deux procédures suivantes.

Tester à l'aide d'AWS CLI
  1. Mettez à jour le fichier de configuration AWS CLI en ajoutant le profil UserDaveAccountA suivant. Pour de plus amples informations, veuillez consulter Installation des outils pour les procédures d'exemples.

    [profile UserDaveAccountA] aws_access_key_id = access-key aws_secret_access_key = secret-access-key region = us-east-1
  2. 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-object suivante.

    Le paramètre --body de la commande identifie le fichier source à charger. Par exemple, si le fichier est à la racine du disque C: sur une machine Windows, vous spécifiez c:\HappyFace.jpg. Le paramètre --key fournit le nom de clé de l'objet.

    aws s3api put-object --bucket awsexamplebucket1 --key HappyFace.jpg --body HappyFace.jpg --profile UserDaveAccountA

    Exécutez la commande AWS CLI suivante pour obtenir l'objet.

    aws s3api get-object --bucket awsexamplebucket1 --key HappyFace.jpg OutputFile.jpg --profile UserDaveAccountA
Tester à l'aide d'AWS Tools for Windows PowerShell
  1. Stockez les autorisations de Dave sous AccountADave. Vous utilisez ensuite ces autorisations pour faire une demande PUT et GET sur un objet.

    set-awscredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas AccountADave
  2. Chargez un exemple d'objet à l'aide de la commande AWS Tools for Windows PowerShell Write-S3Object en utilisant les informations d'identification stockées de l'utilisateur Dave.

    Write-S3Object -bucketname awsexamplebucket1 -key HappyFace.jpg -file HappyFace.jpg -StoredCredentials AccountADave

    Téléchargez l'objet précédemment chargé.

    Read-S3Object -bucketname awsexamplebucket1 -key HappyFace.jpg -file Output.jpg -StoredCredentials AccountADave