Utilisation de groupes de travail Athena compatibles avec IAM Identity Center - Amazon Athena

Utilisation de groupes de travail Athena compatibles avec IAM Identity Center

La propagation fiable des identités est une fonctionnalité AWS IAM Identity Center que les administrateurs de Services AWS connectés peuvent utiliser pour accorder et auditer l'accès aux données de service. L'accès à ces données est basé sur les attributs de l'utilisateur tels que les associations de groupes. La mise en place d'une propagation d'identité sécurisée nécessite une collaboration entre les administrateurs de Services AWS connectés et les administrateurs d'IAM Identity Center. Pour plus d'informations, consultez Prérequis et considérations.​

IAM Identity Center vous permet de gérer la sécurité de connexion pour les identités de votre personnel. IAM Identity Center fournit un endroit unique où vous pouvez créer ou connecter les utilisateurs employés et gérer de manière centralisée leur accès à l’ensemble de leurs comptes et applications AWS. Vous pouvez utiliser des autorisations multi-comptes pour attribuer l’accès aux à ces utilisateurs Comptes AWS. Vous pouvez utiliser les affectations d’application pour attribuer à vos utilisateurs l’accès aux applications compatibles avec IAM Identity Center, aux applications cloud et aux applications client SAML 2.0 (Security Assertion Markup Language). Pour plus d’informations, consultez la rubrique Trusted identity propagation across applications dans le Guide de l’utilisateur AWS IAM Identity Center.

Athena SQL prend en charge la propagation d’identité de confiance dans EMR Studio et SageMaker Unified Studio. Chaque plateforme fournit des interfaces spécifiques pour l’utilisation du fournisseur d’identité de confiance avec Athena.

Lorsque vous utilisez Athena SQL dans EMR Studio avec des identités IAM Identity Center, vous avez accès à deux types de groupes de travail :

  • Groupes de travail standard – Aucune affectation d’utilisateur/de groupe n’est nécessaire.

  • Groupes de travail compatibles avec IAM Identity Center – Nécessitent l’affectation d’utilisateurs/de groupes via la console ou l’API IAM Identity Center.

Pour ces deux types, vous pouvez exécuter des requêtes à l’aide de l’interface Athena SQL dans EMR Studio en ayant activé IAM Identity Center.

Considérations et restrictions

Tenez compte des points suivants lorsque vous utilisez la propagation d’identité de confiance avec Amazon Athena :

  • Vous ne pouvez pas modifier la méthode d’authentification du groupe de travail après sa création.

    • Vous ne pouvez pas modifier les groupes de travail Athena SQL existants pour qu’ils prennent en charge les groupes de travail compatibles avec IAM Identity Center. Les groupes de travail Athena SQL existants peuvent propager l’identité aux services en aval.

    • Vous ne pouvez pas modifier les groupes de travail compatibles IAM Identity Center pour qu’ils prennent en charge les autorisations IAM au niveau des ressources ou les politiques IAM basées sur l’identité.

  • Pour accéder aux groupes de travail compatibles avec la propagation d’identité de confiance, les utilisateurs IAM Identity Center doivent être affectés à l’ARN IdentityCenterApplicationArn renvoyé par la réponse de l’action d’API Athena GetWorkGroup.

  • Les autorisations d’accès Amazon S3 doivent être configurées pour utiliser les identités de la propagation d’identité de confiance. Pour plus d’informations, consultez la rubrique S3 Access Grants and corporate directory identities dans le Guide de l’utilisateur Amazon S3.

  • Les groupes de travail Athena compatibles avec IAM Identity Center nécessitent que Lake Formation soit configuré pour utiliser les identités IAM Identity Center. Pour obtenir des informations sur la configuration, consultez la rubrique Integrating IAM Identity Center dans le Guide du développeur AWS Lake Formation.

  • Par défaut, les requêtes expirent après 30 minutes dans les groupes de travail compatibles avec IAM Identity Center. Vous pouvez demander une augmentation du délai d’expiration des requêtes, sachant que le délai maximal des requêtes dans les groupes de travail qui utilisent la propagation d’identité de confiance est d’une heure.

  • La prise en compte des modifications des droits des utilisateurs ou des groupes dans les groupes de travail utilisant la propagation d’identité de confiance peut prendre une heure.

  • Les requêtes d’un groupe de travail Athena utilisant la propagation d’identité de confiance ne peuvent pas être exécutées directement depuis la console Athena. Elles doivent être exécutées depuis l’interface Athena dans un EMR Studio sur lequel IAM Identity Center est activé. Pour plus d’informations sur l’utilisation d’Athena dans EMR Studio, consultez la rubrique Use the Amazon Athena SQL editor in EMR Studio dans le Guide de gestion Amazon EMR.

  • La propagation d’identité approuvée n’est pas compatible avec les fonctionnalités Athena suivantes.

    • Clés de contexte aws:CalledVia pour les groupes de travail compatibles avec IAM Identity Center

    • Groupes de travail Athena pour Spark.

    • Accès fédéré à l’API Athena.

    • Accès fédéré à Athena à l’aide de Lake Formation et des pilotes JDBC et ODBC d’Athena.

  • Vous pouvez utiliser la propagation d’identité de confiance avec Athena uniquement dans les Régions AWS suivantes :

    • us-east-2 – USA Est (Ohio)

    • us-east-1 – USA Est (Virginie du Nord)

    • us-west-1 – USA Ouest (Californie du Nord)

    • us-west-2 – USA Ouest (Oregon)

    • af-south-1 – Afrique (Le Cap)

    • ap-east-1 – Asie-Pacifique (Hong Kong)

    • ap-southeast-3 – Asie-Pacifique (Jakarta)

    • ap-south-1 – Asie-Pacifique (Mumbai)

    • ap-northeast-3 – Asie-Pacifique (Osaka)

    • ap-northeast-2 – Asie-Pacifique (Séoul)

    • ap-southeast-1 – Asie-Pacifique (Singapour)

    • ap-southeast-2 – Asie-Pacifique (Sydney)

    • ap-northeast-1 – Asie-Pacifique (Tokyo)

    • ca-central-1 – Canada (Centre)

    • eu-central-1 – Europe (Francfort)

    • eu-central-2 – Europe (Zurich)

    • eu-west-1 – Europe (Irlande)

    • eu-west-2 – Europe (Londres)

    • eu-south-1 – Europe (Milan)

    • eu-west-3 – Europe (Paris)

    • eu-north-1 – Europe (Stockholm)

    • me-south-1 – Moyen-Orient (Bahreïn)

    • sa-east-1 – Amérique du Sud (São Paulo)

Les politiques suivantes doivent être attachées à l’utilisateur IAM de l’administrateur qui crée le groupe de travail compatible avec IAM Identity Center dans la console Athena.

  • La politique gérée AmazonAthenaFullAccess. Pour en savoir plus, consultez AWSPolitique gérée par  : AmazonAthenaFullAccess.

  • La politique en ligne suivante qui autorise les actions IAM et IAM Identity Center :

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Action": [ "iam:createRole", "iam:CreatePolicy", "iam:AttachRolePolicy", "iam:ListRoles", "identitystore:ListUsers", "identitystore:ListGroups", "identitystore:CreateUser", "identitystore:CreateGroup", "sso:ListInstances", "sso:CreateInstance", "sso:DeleteInstance", "sso:ListTrustedTokenIssuers", "sso:DescribeTrustedTokenIssuer", "sso:ListApplicationAssignments", "sso:DescribeRegisteredRegions", "sso:GetManagedApplicationInstance", "sso:GetSharedSsoConfiguration", "sso:PutApplicationAssignmentConfiguration", "sso:CreateApplication", "sso:DeleteApplication", "sso:PutApplicationGrant", "sso:PutApplicationAuthenticationMethod", "sso:PutApplicationAccessScope", "sso:ListDirectoryAssociations", "sso:CreateApplicationAssignment", "sso:DeleteApplicationAssignment", "organizations:ListDelegatedAdministrators", "organizations:DescribeAccount", "organizations:DescribeOrganization", "organizations:CreateOrganization", "sso-directory:SearchUsers", "sso-directory:SearchGroups", "sso-directory:CreateUser" ], "Effect": "Allow", "Resource": [ "*" ] }, { "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": [ "arn:aws:iam::111122223333:role/service-role/AWSAthenaSQLRole-*" ] } ] }

Création d’un groupe de travail Athena compatible avec IAM Identity Center

La procédure suivante décrit les étapes et les options associées à la création d’un groupe de travail Athena compatible avec IAM Identity Center. Pour obtenir une description des autres options de configuration disponibles pour les groupes de travail Athena, consultez Créer un groupe de travail.

Création d’un groupe de travail avec SSO activée dans la console Athena
  1. Ouvrez la console Athena à l’adresse https://console.aws.amazon.com/athena/.

  2. Dans le panneau de navigation de la console Athena, choisissez Workgroups (Groupes de travail).

  3. Sur la page Workgroups (Groupes de travail), choisissez Create workgroup (Créer un groupe de travail).

  4. Sur la page Créer un groupe de travail, pour Nom du groupe de travail, saisissez le nom du groupe de travail.

  5. Pour Moteur d’analytique, utilisez Athena SQL par défaut.

  6. Pour Authentification, choisissez IAM Identity Center.

  7. Pour Fonction du service en ce qui concerne l’accès à IAM Identity Center, choisissez une fonction du service existante ou créez-en une.

    Athena a besoin d’autorisations pour accéder à IAM Identity Center en votre nom. Pour ce faire, Athena doit avoir une fonction du service. Une fonction du service est un rôle (IAM) que vous gérez et qui autorise un service AWS à accéder à d’autres services AWS en votre nom. Pour interroger des catalogues fédérés ou exécuter une fonction définie par l’utilisateur (UDF), mettez à jour le rôle de service avec les autorisations Lambda correspondantes. Pour plus d'informations, consultez Création d'un rôle pour la délégation d'autorisations à un service AWS dans le Guide de l'utilisateur IAM.

  8. Développez Configuration des résultats de requêtes, puis saisissez ou choisissez un chemin Amazon S3 pour Emplacement du résultat de la requête.

  9. (Facultatif) Choisissez Chiffrer les résultats de requête. SSE-S3 est pris en charge par défaut. Pour utiliser SSE-KMS et CSE-KMS à l’emplacement des résultats des requêtes, vous devez accorder des autorisations d’accès Amazon S3 au rôle de service d’IAM Identity Center. Pour plus d’informations, consultez Exemple de politique de rôle.

  10. (Facultatif) Choisissez Créer un préfixe S3 basé sur l’identité utilisateur.

    Lorsque vous créez un groupe de travail compatible avec IAM Identity Center, l’option Activer les autorisations d’accès S3 est sélectionnée par défaut. Vous pouvez utiliser les autorisations d’accès Amazon S3 pour contrôler l’accès aux emplacements des résultats de requête Athena (préfixes) dans Amazon S3. Pour plus d’informations sur les autorisations d’accès Amazon S3, consultez Managing access with S3 Access Grants.

    Dans les groupes de travail Athena qui utilisent l’authentification IAM Identity Center, vous pouvez activer la création d’emplacements de résultats de requête basés sur l’identité et gouvernés par les autorisations d’accès Amazon S3. Ces préfixes Amazon S3 basés sur l’identité utilisateur permettent aux utilisateurs d’un groupe de travail Athena d’isoler les résultats de leurs requêtes des autres utilisateurs du même groupe de travail.

    Lorsque vous activez l’option de préfixe utilisateur, Athena ajoute l’ID utilisateur en tant que préfixe de chemin Amazon S3 à l’emplacement de sortie des résultats de requête pour le groupe de travail (par exemple, s3://amzn-s3-demo-bucket/${user_id}). Pour utiliser cette fonctionnalité, vous devez configurer les autorisations d’accès pour autoriser uniquement l’utilisateur à accéder à l’emplacement portant le préfixe user_id. Pour découvrir un exemple de politique de rôle qui utilise les autorisations d’accès Amazon S3 afin de restreindre l’accès aux résultats des requêtes Athena, consultez Exemple de politique de rôle.

    Note

    Lorsque l’option de préfixe S3 de l’identité utilisateur est sélectionnée, l’option de remplacement des paramètres côté client est automatiquement activée pour le groupe de travail, comme décrit à l’étape suivante. L’option de remplacement des paramètres côté client est requise pour la fonctionnalité de préfixe de l’identité utilisateur.

  11. Développez Paramètres, puis vérifiez que l’option Remplacer les paramètres côté client est sélectionnée.

    Lorsque vous sélectionnez l’option Remplacer les paramètres côté client, les paramètres du groupe de travail sont appliqués au niveau du groupe de travail pour tous les clients du groupe de travail. Pour de plus amples informations, consultez Remplacer les paramètres côté client.

  12. (Facultatif) Définissez tous les autres paramètres de configuration dont vous avez besoin, comme décrit dans Créer un groupe de travail.

  13. Choisissez Créer un groupe de travail.

  14. Utilisez la section Groupes de travail de la console Athena pour affecter des utilisateurs ou des groupes de votre répertoire IAM Identity Center à votre groupe de travail Athena compatible avec IAM Identity Center.

L’exemple suivant montre une politique relative à l’attachement d’un rôle à un emplacement d’autorisations d’accès Amazon S3 qui restreint l’accès aux résultats des requêtes Athena.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "s3:*" ], "Condition": { "ArnNotEquals": { "s3:AccessGrantsInstanceArn": "arn:aws:s3:us-east-1:111122223333:access-grants/default" }, "StringNotEquals": { "aws:ResourceAccount": "111122223333" } }, "Effect": "Deny", "Resource": "*", "Sid": "ExplicitDenyS3" }, { "Action": [ "kms:*" ], "Effect": "Deny", "NotResource": "arn:aws:kms:us-east-1:111122223333:key/${keyid}", "Sid": "ExplictDenyKMS" }, { "Action": [ "s3:ListMultipartUploadParts", "s3:GetObject" ], "Condition": { "ArnEquals": { "s3:AccessGrantsInstanceArn": "arn:aws:s3:us-east-1:111122223333:access-grants/default" }, "StringEquals": { "aws:ResourceAccount": "111122223333" } }, "Effect": "Allow", "Resource": "arn:aws:s3:::ATHENA-QUERY-RESULT-LOCATION/${identitystore:UserId}/*", "Sid": "ObjectLevelReadPermissions" }, { "Action": [ "s3:PutObject", "s3:AbortMultipartUpload" ], "Condition": { "ArnEquals": { "s3:AccessGrantsInstanceArn": "arn:aws:s3:us-east-1:111122223333:access-grants/default" }, "StringEquals": { "aws:ResourceAccount": "111122223333" } }, "Effect": "Allow", "Resource": "arn:aws:s3:::ATHENA-QUERY-RESULT-LOCATION/${identitystore:UserId}/*", "Sid": "ObjectLevelWritePermissions" }, { "Action": "s3:ListBucket", "Condition": { "ArnEquals": { "s3:AccessGrantsInstanceArn": "arn:aws:s3:us-east-1:111122223333:access-grants/default" }, "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLikeIfExists": { "s3:prefix": [ "${identitystore:UserId}", "${identitystore:UserId}/*" ] } }, "Effect": "Allow", "Resource": "arn:aws:s3:::ATHENA-QUERY-RESULT-LOCATION", "Sid": "BucketLevelReadPermissions" }, { "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Effect": "Allow", "Resource": "arn:aws:kms:us-east-1:111122223333:key/${keyid}", "Sid": "KMSPermissions" } ] }