Accès inter-comptes aux compartiments Simple Storage Service (Amazon S3) dans Athena - Amazon Athena

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.

Accès inter-comptes aux compartiments Simple Storage Service (Amazon S3) dans Athena

Un scénario courant d'Amazon Athena consiste à accorder l'accès à des utilisateurs dans un compte différent de celui du propriétaire du compartiment afin qu'ils puissent effectuer des requêtes. Dans ce cas, utilisez une politique de compartiment pour accorder l'accès.

Note

Pour plus d'informations sur l'accès entre comptes aux catalogues de AWS Glue données d'Athena, consultez. Accès entre comptes aux catalogues de données AWS Glue

L'exemple suivant de politique de compartiment, créée et appliquée au compartiment s3://DOC-EXAMPLE-BUCKET par le propriétaire du compartiment, accorde l'accès à tous les utilisateurs du compte 123456789123, qui est un compte différent.

{ "Version": "2012-10-17", "Id": "MyPolicyID", "Statement": [ { "Sid": "MyStatementSid", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789123:root" }, "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] } ] }

Pour accorder l'accès à un utilisateur particulier d'un compte, remplacez la clé Principal par une clé qui spécifie l'utilisateur à la place de root. Par exemple, pour le profil utilisateur Dave, utilisez arn:aws:iam::123456789123:user/Dave.

Accès entre comptes à un compartiment chiffré à l'aide d'une clé personnalisée AWS KMS

Si vous possédez un compartiment Amazon S3 chiffré à l'aide d'une clé custom AWS Key Management Service (AWS KMS), vous devrez peut-être autoriser l'accès à celui-ci aux utilisateurs d'un autre compte Amazon Web Services.

L'accès à un compartiment AWS KMS chiffré du compte A à un utilisateur du compte B nécessite les autorisations suivantes :

  • La politique de compartiment du compte A doit accorder l'accès au rôle assumé par le compte B.

  • La politique AWS KMS clé du compte A doit accorder l'accès au rôle assumé par l'utilisateur dans le compte B.

  • Le rôle AWS Identity and Access Management (IAM) assumé par le compte B doit accorder l'accès au bucket et à la clé du compte A.

Les procédures suivantes décrivent comment accorder chacune de ces autorisations.

Pour accorder l'accès au compartiment dans le compte A à l'utilisateur dans le compte B
  • Dans le compte A, consultez la politique de compartiment S3 et confirmez qu'il existe une instruction qui autorise l'accès à partir de l'ID de compte du compte B.

    Par exemple, la politique de compartiment suivante permet à s3:GetObject d'accéder à l'ID de compte 111122223333 :

    { "Id": "ExamplePolicy1", "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleStmt1", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "Principal": { "AWS": [ "111122223333" ] } } ] }
Pour accorder l'accès à l'utilisateur du compte b à partir de la politique AWS KMS clé du compte a
  1. Dans la politique AWS KMS clé du compte A, accordez au rôle assumé par le compte B des autorisations pour les actions suivantes :

    • kms:Encrypt

    • kms:Decrypt

    • kms:ReEncrypt*

    • kms:GenerateDataKey*

    • kms:DescribeKey

    L'exemple suivant accorde l'accès à la clé à un seul rôle IAM.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUseOfTheKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/role_name" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" } ] }
  2. À partir du compte A, passez en revue la politique clé à l'aide de la vue des AWS Management Console politiques.

  3. Dans la politique de clé, vérifiez que l'instruction suivante indique le compte B en tant que principal.

    "Sid": "Allow use of the key"
  4. Si l'instruction "Sid": "Allow use of the key" n'est pas présente, effectuez les opérations suivantes :

    1. Basculez pour afficher la politique de clé à l'aide de la vue par défaut de la console.

    2. Ajoutez l'ID de compte du compte B en tant que compte externe avec accès à la clé.

Accorder l'accès au compartiment et à la clé du compte A à partir du rôle IAM assumé par le compte B
  1. Depuis le compte B, ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Ouvrez le rôle IAM associé à l'utilisateur dans le compte B.

  3. Consultez la liste des politiques d'autorisation appliquées au rôle IAM.

  4. Assurez-vous qu'une politique est appliquée qui accorde l'accès au compartiment.

    L'exemple d'instruction suivant accorde au rôle IAM l'accès aux opérations s3:GetObject et s3:PutObject dans le compartiment DOC-EXAMPLE-BUCKET :

    { "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleStmt2", "Action": [ "s3:GetObject", "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }
  5. Assurez-vous qu'une politique est appliquée qui accorde l'accès à la clé.

    Note

    Si le rôle IAM assumé par le compte B dispose déjà d'un accès administrateur, il n'est pas nécessaire d'accorder l'accès à la clé à partir des politiques IAM de l'utilisateur.

    L'exemple d'instruction suivant accorde au rôle IAM l'accès à la clé arn:aws:kms:us-west-2:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleStmt3", "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey", "kms:ReEncrypt*" ], "Effect": "Allow", "Resource": "arn:aws:kms:us-west-2:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd" } ] }

Accès inter-comptes aux objets de compartiment

Les objets qui sont téléchargés par un compte (compte C) autre que le compte propriétaire du compartiment (compte A) peuvent nécessiter des ACL explicites de niveau objet qui accordent un accès en lecture au compte d'interrogation (compte B). Pour éviter cette exigence, le compte C doit assumer un rôle dans le compte A avant de placer des objets dans le compartiment de ce dernier. Pour plus d'informations, consultez Comment puis-je fournir un accès inter-comptes aux objets stockés dans des compartiments Simple Storage Service (Amazon S3) ?.