Configuration de l'accès à un compartiment Amazon S3 - Amazon Relational Database Service

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 de l'accès à un compartiment Amazon S3

Pour exporter des données vers Amazon S3, accordez à votre instance l'autorisation d'accéder au compartiment Amazon S3 dans lequel les fichiers doivent être stockés.

Pour cela, procédez comme suit :

Pour donner à une instance de base de données PostgreSQL l'accès à Amazon S3 via un rôle IAM
  1. Créez une politique IAM.

    Cette stratégie fournit le compartiment et les autorisations d'objet permettant à votre instance de base de données PostgreSQL d'accéder à Amazon S3.

    Dans le cadre de la création de cette politique, procédez comme suit :

    1. Incluez dans la stratégie les actions obligatoires suivantes pour permettre le transfert de fichiers de votre instance de base de données PostgreSQL vers un compartiment Amazon S3 :

      • s3:PutObject

      • s3:AbortMultipartUpload

    2. Incluez l'Amazon Resource Name (ARN) qui identifie le compartiment Amazon S3 et les objets du compartiment. Le format ARN pour l'accès à Amazon S3 est le suivant : arn:aws:s3:::amzn-s3-demo-bucket/*

    Pour plus d'informations sur la création d'une politique IAM pour Amazon RDS for PostgreSQL, consultez Création et utilisation d'une politique IAM pour l'accès à une base de données IAM. Consultez également Didacticiel : création et attachement de votre première politique gérée par le client dans le Guide de l'utilisateur IAM.

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

    Avertissement

    Nous vous recommandons de configurer votre base de données dans un VPC privé dont les politiques de point de terminaison sont configurées pour accéder à des compartiments spécifiques. Pour de plus amples informations, veuillez consulter Utilisation des stratégies de point de terminaison pour Amazon S3 dans le Amazon VPC Guide de l'utilisateur.

    Nous vous recommandons vivement de ne pas créer de politique avec accès à toutes les ressources. Cet accès peut constituer une menace pour la sécurité des données. Si vous créez une stratégie qui accorde à S3:PutObject un accès à toutes les ressources à l'aide de "Resource":"*", un utilisateur disposant de privilèges d'exportation peut exporter des données vers tous les compartiments de votre compte. En outre, l'utilisateur peut exporter des données vers n'importe quel compartiment accessible publiquement en écriture dans votre région AWS .

    Après avoir créé la politique, notez son ARN (Amazon Resource Name). Vous en aurez besoin par la suite pour attacher la politique à un rôle IAM.

    aws iam create-policy --policy-name rds-s3-export-policy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3export", "Action": [ "s3:PutObject*", "s3:ListBucket", "s3:GetObject*", "s3:DeleteObject*", "s3:GetBucketLocation", "s3:AbortMultipartUpload" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }'
  2. Créez un rôle IAM.

    L'objectif est ici de permettre à Amazon RDS d'endosser ce rôle IAM en votre nom pour accéder à vos compartiments Amazon S3. Pour plus d'informations, consultez Création d'un rôle pour déléguer des autorisations à un utilisateur IAM dans le Guide de l'utilisateur IAM.

    Nous vous recommandons d'utiliser les clés de contexte de condition globale aws:SourceArn et aws:SourceAccount dans des politiques 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.

    Si vous utilisez les deux clés de contexte de condition globale et que la valeur de aws:SourceArn contient l'ID de compte, la valeur de aws:SourceAccount et le compte indiqué dans la valeur de aws:SourceArn doivent utiliser le même ID de compte lorsqu'il est utilisé dans la même déclaration de politique.

    • 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 politique, veillez à utiliser la clé de contexte de condition globale aws:SourceArn avec l'ARN complet de la ressource. L'exemple suivant montre comment procéder à l'aide de la AWS CLI commande pour créer un rôle nommérds-s3-export-role.

    Exemple

    Dans Linux, macOS, ou Unix:

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

    Dans Windows:

    aws iam create-role ^ --role-name rds-s3-export-role ^ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333", "aws:SourceArn": "arn:aws:rds:us-east-1:111122223333:db:dbname" } } } ] }'
  3. Attachez la politique IAM que vous avez créée au rôle IAM que vous venez de créer.

    La AWS CLI commande suivante associe la politique créée précédemment au rôle nommé rds-s3-export-role. Remplacer your-policy-arn par l'ARN de stratégie que vous avez noté lors d'une étape précédente.

    aws iam attach-role-policy --policy-arn your-policy-arn --role-name rds-s3-export-role
  4. Ajoutez le rôle IAM à l'instance de base de données. Pour ce faire, utilisez le AWS Management Console ou AWS CLI, comme décrit ci-dessous.

Pour ajouter un rôle IAM à l'instance de base de données PostgreSQL à l'aide de la console
  1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à https://console.aws.amazon.com/rds/l'adresse.

  2. Choisissez le nom de l'instance de base de données PostgreSQL pour afficher ses détails.

  3. Dans l'onglet Connectivité & sécurité de la section Gérer les rôles IAM, choisissez le rôle à ajouter sous Ajouter des rôles IAM à cette instance.

  4. Sous Fonctionnalité, choisissez s3Export.

  5. Choisissez Ajouter un rôle.

Pour ajouter un rôle IAM à une instance de base de données PostgreSQL à l'aide de la CLI
  • Utilisez la commande suivante pour ajouter le rôle à l'instance de base de données PostgreSQL nommée my-db-instance. Remplacez your-role-arn par l'ARN de rôle que vous avez noté lors d'une étape précédente. Utilisez s3Export comme valeur de l'option --feature-name.

    Exemple

    Dans Linux, macOS, ou Unix:

    aws rds add-role-to-db-instance \ --db-instance-identifier my-db-instance \ --feature-name s3Export \ --role-arn your-role-arn \ --region your-region

    Dans Windows:

    aws rds add-role-to-db-instance ^ --db-instance-identifier my-db-instance ^ --feature-name s3Export ^ --role-arn your-role-arn ^ --region your-region