

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.

# Configuration des autorisations IAM pour l'intégration de RDS for Oracle à Amazon S3
<a name="oracle-s3-integration.preparing"></a>

Pour que RDS for Oracle s'intègre à Amazon S3, votre instance de base de données doit avoir accès à un compartiment Amazon S3. Le Amazon VPC utilisé par votre instance de base de données n'a pas besoin de fournir d'accès aux points de terminaison Amazon S3.

RDS for Oracle prend en charge le transfert de fichiers entre une instance de base de données d’un compte et un compartiment Amazon S3 d’un autre compte. Lorsque des étapes supplémentaires sont requises, elles sont indiquées dans les sections suivantes.

**Topics**
+ [Étape 1 : Créer une politique IAM pour votre rôle Amazon RDS](#oracle-s3-integration.preparing.policy)
+ [Étape 2 (facultative) : Créer une politique IAM pour votre compartiment Amazon S3](#oracle-s3-integration.preparing.policy-bucket)
+ [Étape 3 : Créer un rôle IAM pour votre instance de base de données et y attacher votre politique](#oracle-s3-integration.preparing.role)
+ [Étape 4 : associer votre rôle IAM à votre instance de base de données RDS for Oracle.](#oracle-s3-integration.preparing.instance)

## Étape 1 : Créer une politique IAM pour votre rôle Amazon RDS
<a name="oracle-s3-integration.preparing.policy"></a>

Au cours de cette étape, vous créez une politique Gestion des identités et des accès AWS (IAM) avec les autorisations requises pour transférer des fichiers entre votre compartiment Amazon S3 et votre instance de base de données RDS. Cette étape suppose également que vous avez déjà créé un compartiment S3.

Avant de créer la politique, notez les informations suivantes :
+ ARN (Amazon Resource Name) de votre compartiment
+ L'ARN de votre AWS KMS clé, si votre compartiment utilise le chiffrement SSE-KMS ou SSE-S3
**Note**  
Une instance de base de données RDS for Oracle ne peut pas accéder aux compartiments Amazon S3 chiffrés avec SSE-C.

Pour plus d’informations, consultez [Protection des données à l’aide du chiffrement côté serveur](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) dans le *Guide de l’utilisateur Amazon Simple Storage Service*.

### Console
<a name="oracle-s3-integration.preparing.policy.console"></a>

**Pour créer une politique IAM afin d'autoriser Amazon RDS à accéder à votre compartiment Amazon S3**

1. Ouvrez [IAM Management Console](https://console.aws.amazon.com/iam/home?#home).

1. Sous **Access Management (Gestion des accès)**, choisissez **Policies (Stratégies)**.

1. Choisissez **Create Policy** (Créer une politique).

1. Sous l'onglet **Visual editor (Éditeur visuel)**, choisissez **Choose a service (Choisir un service)**, puis **S3**.

1. Pour **Actions**, choisissez **Expand all (Développer tout)**, puis choisissez les autorisations de compartiment et d'objet nécessaires pour transférer des fichiers d'un compartiment Amazon S3 vers Amazon RDS. Par exemple, procédez comme suit :
   + Développez **la liste**, puis sélectionnez **ListBucket**.
   + Développez **Lire**, puis sélectionnez **GetObject**.
   + Développez **Write**, puis sélectionnez **PutObject**DeleteObject****, **AbortMultipartUpload**, et **ListMultipartUploadParts**. Les autorisations de chargement partitionné sont requises lors du chargement de fichiers volumineux (100 Mo ou plus) vers Amazon S3.
   + Développez **la gestion des autorisations**, puis sélectionnez **PutObjectAcl**. Cette autorisation est nécessaire si vous envisagez de charger des fichiers dans un compartiment appartenant à un autre compte (ce compte doit avoir un contrôle total du contenu du compartiment).

   Les *autorisations d'objet* sont des autorisations pour les opérations sur les objets dans Amazon S3. Vous devez les accorder pour des objets d'un compartiment et non pour le compartiment lui-même. Pour plus d'informations, consultez [Permissions for object operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-objects).

1. Choisissez **Ressources** et procédez comme suit :

   1. Choisissez **Spécifique**.

   1. Pour **Compartiment**, choisissez **Ajouter un ARN**. Saisissez l'ARN de votre compartiment. Le nom du compartiment est renseigné automatiquement. Choisissez ensuite **Ajouter**.

   1. Si la ressource de l'**objet** est affichée, choisissez **Ajouter un ARN** pour ajouter des ressources manuellement ou choisissez **Tous**.
**Note**  
Vous pouvez affecter à **Amazon Resource Name (ARN)** une valeur d'ARN plus spécifique afin d'autoriser Amazon RDS à accéder uniquement à des fichiers ou des dossiers spécifiques dans un compartiment Amazon S3. Pour plus d'informations sur la définition d'une stratégie d'accès pour Amazon S3, consultez [Gestion des autorisations d'accès de vos ressources Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html).

1. (Facultatif) Choisissez **Add additional permissions (Ajouter des autorisations supplémentaires)** pour ajouter des ressources à la stratégie. Par exemple, procédez comme suit :

   1. Si votre compartiment est chiffré avec une clé KMS personnalisée, sélectionnez **KMS** pour le service. 

   1. Pour **Actions manuelles**, sélectionnez ce qui suit :
      + **Encrypt**
      + **ReEncrypt de** et **ReEncrypt vers**
      + **Decrypt**
      + **DescribeKey**
      + **GenerateDataKey**

   1. Pour **Resources** (Ressources), choisissez **Specific** (Spécifique).

   1. Pour **Clé**, choisissez **Ajouter un ARN**. Saisissez l'ARN de votre clé personnalisée en tant que ressource, puis choisissez **Ajouter**.

      Pour plus d'informations, consultez [la section Protection des données à l'aide du chiffrement côté serveur avec des clés KMS stockées dans AWS Key Management Service (SSE-KMS) dans](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) le guide de l'utilisateur d'*Amazon Simple Storage Service*.

   1. Si vous souhaitez qu'Amazon RDS accède à d'autres compartiments, ajoutez le ARNs pour ces compartiments. Si vous le souhaitez, vous pouvez également accorder l'accès à tous les compartiments et à tous les objets dans Amazon S3.

1. Choisissez **Suivant : Balises**, puis **Suivant : Vérification**.

1. Dans ** Name (Name)**, attribuez un nom à votre stratégie IAM, par exemple `rds-s3-integration-policy`. Vous utilisez ce nom lorsque vous créez un rôle IAM à associer à votre instance de base de données. Vous pouvez également ajouter une valeur **Description** facultative.

1. Choisissez **Create Policy** (Créer une politique).

### AWS CLI
<a name="oracle-s3-integration.preparing.policy.CLI"></a>

Créez une politique Gestion des identités et des accès AWS (IAM) qui accorde à Amazon RDS l'accès à un compartiment Amazon S3. Après avoir créé la politique, notez son ARN. Vous en aurez besoin lors d’une étape ultérieure.

Incluez les actions appropriées dans la politique en fonction du type d'accès requis :
+ `GetObject` – Obligatoire pour transférer les fichiers d'un compartiment Amazon S3 vers Amazon RDS.
+ `ListBucket` – Obligatoire pour transférer les fichiers d'un compartiment Amazon S3 vers Amazon RDS.
+ `PutObject` – Obligatoire pour transférer les fichiers de Amazon RDS vers un compartiment Amazon S3.
+ `AbortMultipartUpload` : obligatoire pour les chargements partitionnés lors du transfert de fichiers volumineux (100 Mo ou plus) d’Amazon RDS vers un compartiment Amazon S3.
+ `ListMultipartUploadParts` : obligatoire pour les chargements partitionnés lors du transfert de fichiers volumineux (100 Mo ou plus) d’Amazon RDS vers un compartiment Amazon S3.

La AWS CLI commande suivante crée une politique IAM nommée `rds-s3-integration-policy` avec ces options. Elle accorde un accès à un compartiment nommé `amzn-s3-demo-bucket`.

**Example**  
Pour Linux, macOS ou Unix :  

```
aws iam create-policy \
   --policy-name rds-s3-integration-policy \
   --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "s3integration",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:PutObject",
           "s3:AbortMultipartUpload",
           "s3:ListMultipartUploadParts"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket", 
           "arn:aws:s3:::amzn-s3-demo-bucket/*"
         ]
       }
     ]
   }'
```
L’exemple suivant inclut des autorisations pour les clés KMS personnalisées.  

```
aws iam create-policy \
   --policy-name rds-s3-integration-policy \
   --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "s3integration",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:PutObject",
           "kms:Decrypt",
           "kms:Encrypt",
           "kms:ReEncrypt*",
           "kms:GenerateDataKey",
           "kms:DescribeKey",
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket", 
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:kms:::your-kms-arn"
         ]
       }
     ]
   }'
```
Pour Windows :  

```
aws iam create-policy ^
   --policy-name rds-s3-integration-policy ^
   --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "s3integration",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:PutObject",
           "s3:AbortMultipartUpload",
           "s3:ListMultipartUploadParts"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket", 
           "arn:aws:s3:::amzn-s3-demo-bucket/*"
         ]
       }
     ]
   }'
```
L’exemple suivant inclut des autorisations pour les clés KMS personnalisées.  

```
aws iam create-policy ^
   --policy-name rds-s3-integration-policy ^
   --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "s3integration",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:PutObject",
           "kms:Decrypt",
           "kms:Encrypt",
           "kms:ReEncrypt",
           "kms:GenerateDataKey",
           "kms:DescribeKey",
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket", 
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:kms:::your-kms-arn"
         ]
       }
     ]
   }'
```

## Étape 2 (facultative) : Créer une politique IAM pour votre compartiment Amazon S3
<a name="oracle-s3-integration.preparing.policy-bucket"></a>

Cette étape n'est nécessaire que dans les conditions suivantes :
+ Vous prévoyez de charger des fichiers dans un compartiment Amazon S3 à partir d'un compte (compte A) et d'y accéder depuis un autre compte (compte B).
+ Le compte A est le propriétaire du compartiment.
+ Le compte B nécessite un contrôle total des objets chargés dans le compartiment.

Si les conditions précédentes ne s'appliquent pas à votre cas, passez à [Étape 3 : Créer un rôle IAM pour votre instance de base de données et y attacher votre politique](#oracle-s3-integration.preparing.role).

Pour créer votre politique de compartiment, assurez-vous de disposer des éléments suivants :
+ ID de compte du compte A
+ Nom d'utilisateur du compte A
+ Valeur ARN du compartiment Amazon S3 dans le compte B

### Console
<a name="oracle-s3-integration.preparing.policy-bucket.console"></a>

**Pour créer ou modifier une politique de compartiment**

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans la liste **Buckets (Compartiments)**, choisissez le nom du compartiment pour lequel vous souhaitez créer une stratégie de compartiment ou modifier la stratégie de compartiment existante.

1. Choisissez **Permissions**.

1. Sous **Politique de compartiment**, choisissez **Modifier**. La page Modifier la stratégie de compartiment s'ouvre.

1. Dans la page **Edit bucket policy** (Modifier la politique de compartiment), explorez **Policy examples** (Exemples de politiques) dans le *Guide de l'utilisateur Simple Storage Service (Amazon S3)*, choisissez **Policy generator** (Générateur de politiques) pour générer automatiquement une politique, ou modifiez le JSON dans la section **Policy** (Politique). 

   Si vous choisissez le **générateur** de AWS politiques, celui-ci s'ouvre dans une nouvelle fenêtre :

   1. Sur la page **AWS Policy Generator** (Générateur de politiques), dans **Select Type of Policy** (Sélectionner le type de politique), sélectionnez **S3 Bucket Policy** (Politique de compartiment S3).

   1. Ajoutez une instruction en saisissant les informations dans les champs fournis, puis choisissez **Add Statement (Ajouter une instruction)**. Répétez l'opération pour autant d'instructions que vous souhaitez ajouter. Pour plus d'informations sur ces champs, consultez la [Référence des éléments de stratégie IAM JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) dans le *Guide de l'utilisateur IAM*. 
**Note**  
Pour plus de commodité, la page **Edit Bucket Policy (Modifier la stratégie de compartiment)** affiche l'**ARN (Amazon Resource Name) de compartiment** du compartiment actuel au-dessus du champ de texte **Policy (Stratégie)**. Vous pouvez copier cet ARN pour l'utiliser dans les instructions de la page **AWS Policy Generator** (Générateur de politique). 

   1. Une fois que vous avez fini d’ajouter des instructions, choisissez **Generate Policy (Générer une stratégie)**.

   1. Copiez le texte de stratégie généré, choisissez **Fermer** et revenez à la page **Modifier la stratégie de compartiment** dans la console Amazon S3.

1. Dans la boîte **Policy (Stratégie)**, modifiez la stratégie existante ou collez la stratégie de compartiment à partir du générateur de stratégies. Veillez à résoudre les avertissements de sécurité, les erreurs, les avertissements généraux et les suggestions avant d’enregistrer votre stratégie.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "ExamplePermissions",
         "Effect": "Allow",
         "Principal": {
           "AWS": "arn:aws:iam::123456789012:user/account-A-user"
         },
         "Action": [
           "s3:PutObject",
           "s3:PutObjectAcl"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-destination-bucket",
           "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
         ]
       }
     ]
   }
   ```

------

1. Choisissez **Save Changes (Enregistrez les modifications)**, qui vous renvoie à la page Autorisations du compartiment.

## Étape 3 : Créer un rôle IAM pour votre instance de base de données et y attacher votre politique
<a name="oracle-s3-integration.preparing.role"></a>

Cette étape suppose que vous avez créé la politique IAM dans [Étape 1 : Créer une politique IAM pour votre rôle Amazon RDS](#oracle-s3-integration.preparing.policy). Au cours de cette étape, vous créez un rôle pour votre instance de base de données RDS for Oracle, puis attachez votre politique au rôle.

### Console
<a name="oracle-s3-integration.preparing.role.console"></a>

**Pour créer un rôle IAM afin d'autoriser Amazon RDS à accéder à un compartiment Amazon S3**

1. Ouvrez [IAM Management Console](https://console.aws.amazon.com/iam/home?#home).

1. Dans le panneau de navigation, choisissez **Rôles**.

1. Sélectionnez **Create role** (Créer un rôle).

1. Choisissez **Service AWS **.

1. Pour les **cas d'utilisation d'autres AWS services :** choisissez **RDS, puis RDS** **— Ajouter un rôle à** la base de données. Ensuite, sélectionnez **Suivant**.

1. Pour **Rechercher** sous **Politiques d'autorisations**, saisissez le nom de la politique IAM que vous avez créée dans [Étape 1 : Créer une politique IAM pour votre rôle Amazon RDS](#oracle-s3-integration.preparing.policy) et choisissez la politique lorsqu'elle apparaît dans la liste. Ensuite, sélectionnez **Suivant**.

1. Pour **Nom du rôle**, indiquez le nom de votre rôle IAM, par exemple `rds-s3-integration-role`. Vous pouvez également ajouter une valeur **Description** facultative.

1. Choisissez **Créer un rôle**.

### AWS CLI
<a name="integration.preparing.role.CLI"></a>

**Pour créer un rôle et y attacher votre politique**

1. Créez un rôle IAM qu'Amazon RDS peut endosser en votre nom pour accéder à vos compartiments Amazon S3.

   Nous vous recommandons d'utiliser les clés de contexte de condition globale [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) et [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) dans des relations d'approbation basées sur les ressources pour limiter les autorisations du service à une ressource spécifique. C’est le moyen le plus efficace de se protéger contre le [problème du député confus](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

   Vous pouvez utiliser les deux clés de contexte de condition globale et faire en sorte que la valeur `aws:SourceArn` contienne l'ID de compte. Dans ce cas, la valeur `aws:SourceAccount` et le compte dans la valeur `aws:SourceArn` doivent utiliser le même ID de compte lorsqu'ils sont utilisés dans la même instruction.
   + Utilisez `aws:SourceArn` si vous souhaitez un accès interservices pour une seule ressource.
   + Utilisez `aws:SourceAccount` si vous souhaitez autoriser une ressource de ce compte à être associée à l’utilisation interservices.

   Dans la relation d'approbation, assurez-vous d'utiliser la clé de contexte de condition globale `aws:SourceArn` avec l'Amazon Resource Name (ARN) complet des ressources qui accèdent au rôle.

   La AWS CLI commande suivante crée le rôle nommé `rds-s3-integration-role` à cet effet.  
**Example**  

   Pour Linux, macOS ou Unix :

   ```
   aws iam create-role \
      --role-name rds-s3-integration-role \
      --assume-role-policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
               "Service": "rds.amazonaws.com"
             },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "my_account_ID",
                    "aws:SourceArn": "arn:aws:rds:Region:my_account_ID:db:dbname"
                }
            }
          }
        ]
      }'
   ```

   Pour Windows :

   ```
   aws iam create-role ^
      --role-name rds-s3-integration-role ^
      --assume-role-policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
               "Service": "rds.amazonaws.com"
             },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "my_account_ID",
                    "aws:SourceArn": "arn:aws:rds:Region:my_account_ID:db:dbname"
                }
            }
          }
        ]
      }'
   ```

   Pour plus d’informations, consultez [Création d’un rôle pour déléguer des autorisations à un utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) dans le *Guide de l’utilisateur IAM*.

1. Une fois le rôle créé, notez son ARN. Vous en aurez besoin lors d'une étape ultérieure.

1. Attachez la politique que vous avez créée au rôle que vous avez créé.

   La AWS CLI commande suivante associe la politique au rôle nommé`rds-s3-integration-role`.  
**Example**  

   Pour Linux, macOS ou Unix :

   ```
   aws iam attach-role-policy \
      --policy-arn your-policy-arn \
      --role-name rds-s3-integration-role
   ```

   Pour Windows :

   ```
   aws iam attach-role-policy ^
      --policy-arn your-policy-arn ^
      --role-name rds-s3-integration-role
   ```

   Remplacez `your-policy-arn` par l’ARN de stratégie que vous avez noté lors d’une étape précédente.

## Étape 4 : associer votre rôle IAM à votre instance de base de données RDS for Oracle.
<a name="oracle-s3-integration.preparing.instance"></a>

La dernière étape de la configuration des autorisations pour l'intégration d'Amazon S3 consiste à associer votre rôle IAM à votre instance de base de données. Notez les critères suivants :
+ Vous devez avoir accès à un rôle IAM auquel est associée la politique d’autorisations Amazon S3 requise. 
+ Vous pouvez associer un seul rôle IAM à la fois avec votre instance de base de données RDS for Oracle.
+ Votre instance de base de données doit être dans l'état **Disponible**.

### Console
<a name="oracle-s3-integration.preparing.instance.console"></a>

**Pour associer votre rôle IAM à votre instance de base de données RDS for Oracle**

1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)l'adresse.

1. Choisissez **Bases de données** dans le panneau de navigation.

1. Choisissez le nom de l'instance de base de données RDS for Oracle pour afficher ses détails.

1. Dans l’onglet **Connectivity & security** (Connectivité & sécurité), faites défiler l’écran jusqu’à l’onglet **Manage IAM roles** (Gérer les rôles IAM) au bas de la page.

1. Pour **Ajouter des rôles IAM à cette instance**, choisissez le rôle que vous avez créé dans[Étape 3 : Créer un rôle IAM pour votre instance de base de données et y attacher votre politique](#oracle-s3-integration.preparing.role).

1. Pour **Fonction**, choisissez **S3\$1INTEGRATION**.  
![\[Ajoutez le rôle S3_INTEGRATION\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/ora-s3-integration-role.png)

1. Choisissez **Add role (Ajouter un rôle)**.

### AWS CLI
<a name="oracle-s3-integration.preparing.instance.CLI"></a>

La AWS CLI commande suivante ajoute le rôle à une instance de base de données Oracle nommée`mydbinstance`.

**Example**  
Pour Linux, macOS ou Unix :  

```
aws rds add-role-to-db-instance \
   --db-instance-identifier mydbinstance \
   --feature-name S3_INTEGRATION \
   --role-arn your-role-arn
```
Pour Windows :  

```
aws rds add-role-to-db-instance ^
   --db-instance-identifier mydbinstance ^
   --feature-name S3_INTEGRATION ^
   --role-arn your-role-arn
```

Remplacez `your-role-arn` par l’ARN du rôle que vous avez noté lors d’une étape précédente. `S3_INTEGRATION` doit être spécifié pour l’option `--feature-name`.