Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Configuration de l'accès à un compartiment Amazon S3

Mode de mise au point
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.

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.

Pour importer des données depuis un fichier Amazon S3, autorisez le pour l'SQLinstance de base de données Postgre à accéder au compartiment Amazon S3 contenant le fichier. Pour accorder l'accès à un compartiment Amazon S3, vous pouvez employer une des deux méthodes décrites dans les rubriques suivantes.

Utilisation d'un IAM rôle pour accéder à un compartiment Amazon S3

Avant de charger des données depuis un fichier Amazon S3, autorisez votre pour l'SQLinstance de base de données Postgre à accéder au compartiment Amazon S3 dans lequel se trouve le fichier. De cette façon, vous n'avez pas à gérer d'informations d'identification supplémentaires ni à les fournir dans l'appel de fonction aws_s3.table_import_from_s3.

Pour ce faire, créez une IAM politique qui donne accès au compartiment Amazon S3. Créez un IAM rôle et associez la politique au rôle. Attribuez ensuite le IAM rôle à votre instance de de base de données.

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

    Cette politique fournit les autorisations de compartiment et d'objet qui permettent à votre instance de RDS pour Postgre SQL d'accéder à Amazon S3.

    Incluez dans la politique les actions requises suivantes pour autoriser le transfert de fichiers d'un compartiment Amazon S3 vers Amazon RDS :

    • s3:GetObject

    • s3:ListBucket

    Incluez à la politique les ressources suivantes pour identifier le compartiment Amazon S3 et les objets qu'il contient. Cela indique le format Amazon Resource Name (ARN) pour accéder à Amazon S3.

    • arn:aws:s3 : :1amzn-s3-demo-bucket

    • arn:aws:s3 : :1amzn-s3-demo-bucket/*

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

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

    Note

    Notez le nom de ressource Amazon (ARN) de la politique renvoyée par cette commande. Vous ARN en aurez besoin lors d'une étape ultérieure lorsque vous associez la politique à un IAM rôle.

    Exemple

    Dans Linux, macOS, ou Unix:

    aws iam create-policy \ --policy-name rds-s3-import-policy \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3import", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }'

    Dans Windows:

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

    Vous procédez ainsi pour qu' Amazon RDS puisse assumer ce IAM rôle et accéder à vos compartiments Amazon S3. Pour plus d'informations, consultez la section Création d'un rôle pour déléguer des autorisations à un IAM utilisateur dans le Guide de IAM l'utilisateur.

    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 aws:SourceArn globale avec l'intégralité ARN 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-import-role.

    Exemple

    Dans Linux, macOS, ou Unix:

    aws iam create-role \ --role-name rds-s3-import-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-import-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 IAM politique que vous avez créée au IAM rôle que vous avez créé.

    La AWS CLI commande suivante associe la politique créée à l'étape précédente au rôle nommé rds-s3-import-role Remplacer your-policy-arn par la politique ARN que vous avez notée à l'étape précédente.

    Exemple

    Dans Linux, macOS, ou Unix:

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

    Dans Windows:

    aws iam attach-role-policy ^ --policy-arn your-policy-arn ^ --role-name rds-s3-import-role
  4. Ajoutez le IAM rôle à l'instance de de base de données.

    Pour ce faire, utilisez le AWS Management Console ou AWS CLI, comme décrit ci-dessous.

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

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

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

  4. Sous Feature (Fonction), choisissez s3Import.

  5. Choisissez Add role (Ajouter un rôle).

Console

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

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

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

  4. Sous Feature (Fonction), choisissez s3Import.

  5. Choisissez Add role (Ajouter un rôle).

Pour ajouter un IAM rôle à une SQL instance de base de données Postgre à l'aide du CLI
  • Utilisez la commande suivante pour ajouter le rôle à l'SQLinstance de base de données Postgre nomméemy-db-instance. Remplacez your-role-arn avec le rôle ARN que vous avez noté à l'étape précédente. Utilisez s3Import 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 s3Import \ --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 s3Import ^ --role-arn your-role-arn ^ --region your-region

Pour ajouter un IAM rôle à une SQL instance de base de données Postgre à l'aide du CLI
  • Utilisez la commande suivante pour ajouter le rôle à l'SQLinstance de base de données Postgre nomméemy-db-instance. Remplacez your-role-arn avec le rôle ARN que vous avez noté à l'étape précédente. Utilisez s3Import 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 s3Import \ --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 s3Import ^ --role-arn your-role-arn ^ --region your-region

Pour ajouter un IAM rôle à une instance de SQL de base de données Postgre à l'aide d'Amazon RDSAPI, appelez l'opération.

Pour ajouter un IAM rôle à une instance de SQL de base de données Postgre à l'aide d'Amazon RDSAPI, appelez l'opération.

Utilisation d'informations d'identification de sécurité pour accéder à un compartiment Amazon S3

Si vous préférez, vous pouvez utiliser des informations d'identification de sécurité pour accéder à un compartiment Amazon S3 au lieu de fournir un accès avec un IAM rôle. Pour ce faire, spécifiez le paramètre credentials dans l'appel de fonction aws_s3.table_import_from_s3.

Le credentials paramètre est une structure de type contenant aws_commons._aws_credentials_1 des AWS informations d'identification. Utilisez la fonction aws_commons.create_aws_credentials pour définir la clé d'accès et la clé secrète dans une structure aws_commons._aws_credentials_1, comme indiqué ci-après.

postgres=> SELECT aws_commons.create_aws_credentials( 'sample_access_key', 'sample_secret_key', '') AS creds \gset

Après avoir créé la structure aws_commons._aws_credentials_1 , utilisez la fonction aws_s3.table_import_from_s3 avec le paramètre credentials pour importer les données, comme indiqué ci-après.

postgres=> SELECT aws_s3.table_import_from_s3( 't', '', '(format csv)', :'s3_uri', :'creds' );

Vous pouvez également inclure l'appel de fonction aws_commons.create_aws_credentials en ligne au sein de l'appel de fonction aws_s3.table_import_from_s3.

postgres=> SELECT aws_s3.table_import_from_s3( 't', '', '(format csv)', :'s3_uri', aws_commons.create_aws_credentials('sample_access_key', 'sample_secret_key', '') );

Résolution des problèmes d'accès à Amazon S3

Si vous rencontrez des problèmes de connexion lorsque vous tentez d'importer des données depuis Amazon S3, consultez les recommandations suivantes :

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.