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
-
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 :
-
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
-
-
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
/*" ] } ] }' -
-
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
etaws: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 deaws:SourceAccount
et le compte indiqué dans la valeur deaws: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
" } } } ] }' -
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
par l'ARN de stratégie que vous avez noté lors d'une étape précédente.your-policy-arn
aws iam attach-role-policy --policy-arn
your-policy-arn
--role-name rds-s3-export-role -
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
Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à https://console.aws.amazon.com/rds/
l'adresse. -
Choisissez le nom de l'instance de base de données PostgreSQL pour afficher ses détails.
-
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.
-
Sous Fonctionnalité, choisissez s3Export.
-
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
par l'ARN de rôle que vous avez noté lors d'une étape précédente. Utilisezyour-role-arn
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-arnyour-role-arn
\ --regionyour-region
Dans Windows:
aws rds add-role-to-db-instance ^ --db-instance-identifier
my-db-instance
^ --feature-name s3Export ^ --role-arnyour-role-arn
^ --regionyour-region