

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
<a name="example-walkthroughs-managing-access-example2"></a>

**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](example-walkthroughs-managing-access-example4.md#access-policies-walkthrough-example4-overview).

**Topics**
+ [Préparation de la procédure détaillée](#cross-acct-access-step0)
+ [Étape 1 : réaliser les tâches du compte A](#access-policies-walkthrough-cross-account-permissions-acctA-tasks)
+ [Étape 2 : réaliser les tâches du compte B](#access-policies-walkthrough-cross-account-permissions-acctB-tasks)
+ [Étape 3 : (Facultatif) essayer le refus explicite](#access-policies-walkthrough-example2-explicit-deny)
+ [Étape 4 : nettoyer](#access-policies-walkthrough-example2-cleanup-step)

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. Toutefois, l’utilisateur aura toujours besoin de l’autorisation du compte parent (le compte B) auquel il appartient, même si ce compte n’a pas reçu d’autorisation du compte A. Tant que l’utilisateur dispose d’une autorisation accordée par le propriétaire de la ressource et par le compte parent, il pourra accéder à la ressource.

Les étapes suivantes résument la procédure à suivre :

![\[Compte AWS L'octroi d'une autre Compte AWS autorisation pour accéder à ses ressources.\]](http://docs.aws.amazon.com/fr_fr/AmazonS3/latest/userguide/images/access-policy-ex2.png)


1. L’utilisateur administrateur du compte A attache une stratégie de compartiment en accordant au compte B des autorisations intercomptes 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.

1. 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.

1. 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 directives IAM (voir [Utilisation d’un utilisateur administrateur pour créer des ressources et accorder des autorisations](example-walkthroughs-managing-access.md#about-using-root-credentials)), nous n’utilisons pas les informations d’identification de l’utilisateur racine dans cette procédure détaillée. 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  | 
| --- | --- | --- | 
|  *1111-1111-1111*  |  Compte A  |  AccountAadmin  | 
|  *2222-2222-2222*  |  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
<a name="cross-acct-access-step0"></a>

1. 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.

   1. Inscrivez-vous pour un Compte AWS, si nécessaire. 

   1. Utilisez les informations d’identification du compte A pour vous connecter à la [console IAM](https://console.aws.amazon.com/iam/home?#home) afin de créer l’utilisateur administrateur :

      1. Créez l’utilisateur **AccountAadmin** et notez les informations d’identification. Pour obtenir des instructions, consultez [Création d’un utilisateur IAM dans votre Compte AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) dans le *Guide de l’utilisateur IAM*. 

      1. Accordez des privilèges d'administrateur à **AccountAadmin**en joignant une politique utilisateur donnant un accès complet. Pour obtenir des instructions, consultez [Utilisation de stratégies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) dans le *Guide de l’utilisateur IAM*. 

   1. Lorsque vous êtes dans la console IAM, notez l’**URL de connexion de l’utilisateur IAM** sur le **tableau de bord**. Tous les utilisateurs du compte doivent utiliser cette URL pour se connecter à la AWS Management Console.

      Pour plus d’informations, consultez [Comment les utilisateurs se connectent à votre compte](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_how-users-sign-in.html) dans le *Guide de l’utilisateur IAM*. 

   1. Répétez l’étape précédente en utilisant les informations d’identification du compte B et créez l’utilisateur administrateur **AccountBadmin**.

1. Configurez le AWS Command Line Interface (AWS CLI) ou le AWS Tools for Windows PowerShell. Assurez-vous d’enregistrer les autorisations de l’utilisateur administrateur comme suit :
   + Si vous utilisez le AWS CLI, créez deux profils, `AccountAadmin` et`AccountBadmin`, 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` et`AccountBadmin`.

   Pour obtenir des instructions, veuillez consulter [Configuration des outils pour les procédures détaillées](policy-eval-walkthrough-download-awscli.md). 

1. 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 procédures détaillées](policy-eval-walkthrough-download-awscli.md). 

   1. Ajoutez des profils dans le fichier AWS CLI d'informations d'identification pour chacun des utilisateurs administrateurs `AccountAadmin` et `AccountBadmin` 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
      ```

   1. Si vous utilisez AWS Tools for Windows PowerShell, exécutez la commande suivante.

      ```
      set-awscredentials –AccessKey AcctA-access-key-ID –SecretKey AcctA-secret-access-key –storeas AccountAadmin
      set-awscredentials –AccessKey AcctB-access-key-ID –SecretKey AcctB-secret-access-key –storeas AccountBadmin
      ```

## Étape 1 : réaliser les tâches du compte A
<a name="access-policies-walkthrough-cross-account-permissions-acctA-tasks"></a>

### Étape 1.1 : Connectez-vous au AWS Management Console
<a name="access-policies-walkthrough-cross-account-permissions-acctA-tasks-sign-in"></a>

À l'aide de l'URL de connexion utilisateur IAM pour le compte A, connectez-vous d'abord 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
<a name="access-policies-walkthrough-example2a-create-bucket"></a>

1. 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, veuillez consulter [Création d’un compartiment à usage général](create-bucket-overview.md). 

1. Chargez un exemple d’objet dans le compartiment.

   Pour plus d’informations, consultez [Étape 2 : charger un objet dans votre compartiment](GetStartedWithS3.md#uploading-an-object-bucket). 

### Étape 1.3 : attacher une stratégie de compartiment afin d’accorder des autorisations entre comptes au compte B
<a name="access-policies-walkthrough-example2a"></a>

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 **AccountAadmin**d'identification utilisateur.

1. Attachez la stratégie de compartiment suivante à `amzn-s3-demo-bucket`. Cette stratégie accorde au compte B une autorisation pour les actions `s3:GetLifecycleConfiguration` et `s3:ListBucket`.

   Pour obtenir des instructions, veuillez consulter [Ajout d’une stratégie de compartiment à l’aide de la console Amazon S3](add-bucket-policy.md). 

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
         {
            "Sid": "Example permissions",
            "Effect": "Allow",
            "Principal": {
               "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
               "s3:GetLifecycleConfiguration",
               "s3:ListBucket"
            ],
            "Resource": [
               "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
         }
      ]
   }
   ```

------

1. 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 --bucket amzn-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 -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBadmin
     ```

## Étape 2 : réaliser les tâches du compte B
<a name="access-policies-walkthrough-cross-account-permissions-acctB-tasks"></a>

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
<a name="access-policies-walkthrough-cross-account-permissions-acctB-tasks-sign-in"></a>

À l'aide de l'URL de connexion utilisateur IAM pour le compte B, connectez-vous d'abord au compte en AWS Management Console tant qu'**AccountBadmin**utilisateur. 

### Étape 2.2 : créer l’utilisateur Dave dans le compte B
<a name="access-policies-walkthrough-example2b-create-user"></a>

Dans la [console IAM](https://console.aws.amazon.com/iam/), créez un utilisateur, **Dave**. 

Pour obtenir des instructions, consultez [Création d’utilisateurs IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) dans le *Guide de l’utilisateur IAM*. 

### Étape 2.3 : déléguer les autorisations à l’utilisateur Dave
<a name="access-policies-walkthrough-example2-delegate-perm-userdave"></a>

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 **AccountBadmin**d'identification utilisateur.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "Example",
         "Effect": "Allow",
         "Action": [
            "s3:ListBucket"
         ],
         "Resource": [
            "arn:aws:s3:::amzn-s3-demo-bucket"
         ]
      }
   ]
}
```

------

Pour obtenir des instructions, consultez [Gestion des politiques IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_inline-using.html) dans le *Guide de l’utilisateur IAM*.

### Étape 2.4 : tester les autorisations
<a name="access-policies-walkthrough-example2b-user-dave-access"></a>

Dans le compte B, Dave peut maintenant répertorier le contenu du compartiment `amzn-s3-demo-bucket` appartenant au compte A. Vous pouvez vérifier les autorisations via l’une des procédures suivantes. 

**Testez les autorisations à l'aide du AWS CLI**

1. 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 procédures détaillées](policy-eval-walkthrough-download-awscli.md).

   ```
   [profile UserDave]
   aws_access_key_id = access-key
   aws_secret_access_key = secret-access-key
   region = us-east-1
   ```

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 `amzn-s3-demo-bucket` appartenant au compte A. Notez que la commande spécifie le `UserDave` profil.

   ```
   aws s3 ls s3://amzn-s3-demo-bucket --profile UserDave
   ```

   Dave n’a aucune autre autorisation. Par conséquent, s’il essaie d’effectuer une autre opération (par exemple, la configuration `get-bucket-lifecycle` suivante), Amazon S3 indique que l’autorisation est 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**

1. Stockez les informations d’identification de Dave sous le nom `AccountBDave`.

   ```
   set-awscredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas AccountBDave
   ```

1. Essayez la commande permettant de répertorier les compartiments.

   ```
   get-s3object -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBDave
   ```

   Dave n’a aucune autre autorisation. Par conséquent, s’il essaie d’effectuer une autre opération (par exemple, la commande `get-s3bucketlifecycleconfiguration` suivante), Amazon S3 indique que l’autorisation est refusée. 

   ```
   get-s3bucketlifecycleconfiguration -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBDave
   ```

## Étape 3 : (Facultatif) essayer le refus explicite
<a name="access-policies-walkthrough-example2-explicit-deny"></a>

Des autorisations peuvent vous être accordées à l’aide d’une liste de contrôle d’accès (ACL), d’une stratégie de compartiment ou d’une politique utilisateur. Toutefois, si un refus explicite est défini via une stratégie de compartiment ou une politique utilisateur, il prime sur toute autre autorisation. Pour le test, nous allons mettre à jour la stratégie de compartiment et refuser explicitement l’autorisation `s3:ListBucket` au compte B. Cette politique accorde également une autorisation `s3:ListBucket`. Cependant, le refus explicite prime, et le compte B ou les utilisateurs du compte B ne pourront pas afficher les objets dans `amzn-s3-demo-bucket`.

1. À l’aide des autorisations de l’utilisateur `AccountAadmin` dans le compte A, remplacez la stratégie de compartiment par les données suivantes. 

1. Si vous essayez maintenant d’obtenir une liste des compartiments en utilisant les informations d’identification d’`AccountBadmin`, l’accès sera 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
<a name="access-policies-walkthrough-example2-cleanup-step"></a>

1. Une fois le test terminé, vous pouvez procéder comme suit pour le nettoyage :

   1. Connectez-vous au AWS Management Console ([AWS Management Console](https://console.aws.amazon.com/)) à 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 à `amzn-s3-demo-bucket`. 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](https://console.aws.amazon.com/iam/), supprimez l’utilisateur `AccountAadmin`.

1. Connectez-vous à la [console IAM](https://console.aws.amazon.com/iam/) en utilisant les informations d’identification du compte B. Supprimez l’utilisateur `AccountBadmin`. Pour step-by-step obtenir des instructions, reportez-vous à [la section Suppression d'un utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting) dans le guide de l'*utilisateur IAM*.