IAM Identity Center 지원 Athena 작업 그룹 사용 - Amazon Athena

IAM Identity Center 지원 Athena 작업 그룹 사용

AWS IAM Identity Center의 신뢰할 수 있는 ID 전파 기능을 사용하면 AWS 분석 서비스 전반에서 인력 ID를 사용할 수 있습니다. 또한 서비스별 ID 제공업체 구성 또는 IAM 역할 설정을 수행할 필요가 없습니다.

IAM Identity Center를 사용하면 인력 ID(인력 사용자)의 로그인 보안을 관리할 수 있습니다. IAM Identity Center를 사용하면 인력 사용자를 생성하거나 연결하고 인력 사용자의 모든 AWS 계정 및 애플리케이션에 대한 액세스를 중앙에서 관리하는 기능을 한 곳에서 이용할 수 있습니다. 다중 계정 권한을 사용하여 이러한 사용자에게 AWS 계정 대한 액세스 권한을 할당할 수 있습니다. 애플리케이션 할당을 사용하여 IAM Identity Center 지원 애플리케이션, 클라우드 애플리케이션 및 고객 Security Assertion Markup Language(SAML 2.0) 애플리케이션에 대한 액세스 권한을 사용자에게 할당할 수 있습니다. 자세한 내용은 AWS IAM Identity Center 사용 설명서의 Trusted identity propagation across applications를 참조하십시오.

현재 신뢰할 수 있는 ID 전파에 대한 Athena SQL 지원을 통해 Amazon EMR Studio와 EMR Studio의 Athena SQL 인터페이스에 동일한 ID를 사용할 수 있습니다. EMR Studio에서 Athena SQL과 함께 IAM Identity Center ID를 사용하려면 Athena에서 IAM Identity Center 지원 작업 그룹을 생성해야 합니다. 그런 다음 IAM Identity Center 콘솔 또는 API를 사용하여 IAM Identity Center 지원 Athena 작업 그룹에 IAM Identity Center 사용자 또는 그룹을 할당할 수 있습니다. 신뢰할 수 있는 ID 전파를 사용하는 Athena 작업 그룹의 쿼리는 IAM Identity Center가 활성화된 EMR Studio의 Athena SQL 인터페이스에서 실행해야 합니다.

고려 사항 및 제한

Amazon Athena에서 신뢰할 수 있는 ID 전파를 사용하는 경우 다음 사항을 고려하십시오.

  • 작업 그룹이 생성된 후에는 작업 그룹의 인증 방법을 변경할 수 없습니다.

    • IAM Identity Center 지원 작업 그룹을 지원하도록 기존 Athena SQL 작업 그룹을 수정할 수 없습니다.

    • 리소스 수준 IAM 권한이나 ID 기반 IAM 정책을 지원하도록 IAM Identity Center 지원 작업 그룹을 수정할 수 없습니다.

  • 신뢰할 수 있는 ID 전파 지원 작업 그룹에 액세스하려면 Athena GetWorkGroup API 작업의 응답으로 반환되는 IdentityCenterApplicationArn에 IAM Identity Center 사용자를 할당해야 합니다.

  • 신뢰할 수 있는 ID 전파 ID를 사용하도록 Amazon S3 Access Grants를 구성해야 합니다. 자세한 내용은 Amazon S3 사용 설명서의 S3 Access Grants and corporate directory identities를 참조하십시오.

  • IAM Identity Center 지원 Athena 작업 그룹을 사용하려면 IAM Identity Center ID를 사용하도록 Lake Formation을 구성해야 합니다. 구성 정보는 AWS Lake Formation 개발자 안내서의 Integrating IAM Identity Center를 참조하십시오.

  • 기본적으로 신뢰할 수 있는 ID 전파를 사용하는 작업 그룹에서는 쿼리가 30분 후 시간 초과됩니다. 쿼리 제한 시간 증가를 요청할 수 있지만 신뢰할 수 있는 ID 전파 작업 그룹에서 쿼리를 실행할 수 있는 최대 시간은 1시간입니다.

  • 신뢰할 수 있는 ID 전파 작업 그룹의 사용자 또는 그룹 권한 변경 사항이 적용되는 데 최대 1시간이 걸릴 수 있습니다.

  • 신뢰할 수 있는 ID 전파를 사용하는 Athena 작업 그룹의 쿼리는 Athena 콘솔에서 직접 실행할 수 없습니다. 이러한 쿼리는 IAM Identity Center가 활성화된 EMR Studio의 Athena 인터페이스에서 실행해야 합니다. EMR Studio에서 Athena를 사용하는 방법에 대한 자세한 내용은 Amazon EMR 관리 안내서의 Use the Amazon Athena SQL editor in EMR Studio를 참조하십시오.

  • 신뢰할 수 있는 ID 전파는 다음 Athena 기능과 호환되지 않습니다.

    • aws:CalledVia 컨텍스트 키

    • Athena for Spark 작업 그룹

    • Athena API에 대한 연동 액세스

    • Lake Formation과 Athena JDBC 및 ODBC 드라이버를 사용하여 Athena에 대한 연동 액세스

  • 다음 AWS 리전에서만 Athena와 함께 신뢰할 수 있는 ID 전파를 사용할 수 있습니다.

    • us-east-2 - 미국 동부(오하이오)

    • us-east-1 - 미국 동부(버지니아 북부)

    • us-west-1 - 미국 서부(캘리포니아 북부)

    • us-west-2 - 미국 서부(오레곤)

    • af-south-1 – 아프리카(케이프타운)

    • ap-east-1 – 아시아 태평양(홍콩)

    • ap-southeast-3 – 아시아 태평양(자카르타)

    • ap-south-1 – 아시아 태평양(뭄바이)

    • ap-northeast-3 – 아시아 태평양(오사카)

    • ap-northeast-2 – 아시아 태평양(서울)

    • ap-southeast-1 – 아시아 태평양(싱가포르)

    • ap-southeast-2 – 아시아 태평양(시드니)

    • ap-northeast-1 – 아시아 태평양(도쿄)

    • ca-central-1 - 캐나다(중부)

    • eu-central-1 – 유럽(프랑크푸르트)

    • eu-west-1 – 유럽(아일랜드)

    • eu-west-2 – 유럽(런던)

    • eu-south-1 – 유럽(밀라노)

    • eu-west-3 – 유럽(파리)

    • eu-north-1 – 유럽(스톡홀름)

    • me-south-1 – 중동(바레인)

    • sa-east-1 – 남아메리카(상파울루)

Athena 콘솔에서 IAM Identity Center 지원 작업 그룹을 생성하는 관리자의 IAM 사용자는 다음 정책을 연결해야 합니다.

  • AmazonAthenaFullAccess 관리형 정책. 세부 정보는 AWS 관리형 정책: AmazonAthenaFullAccess을 참조하세요.

  • 다음은 IAM 및 IAM Identity Center 작업을 허용하는 인라인 정책입니다.

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:createRole", "iam:CreatePolicy", "iam:AttachRolePolicy", "iam:ListRoles", "iam:PassRole", "identitystore:ListUsers", "identitystore:ListGroups", "identitystore:CreateUser", "identitystore:CreateGroup", "sso:ListInstances", "sso:CreateInstance", "sso:DeleteInstance", "sso:DescribeUser", "sso:DescribeGroup", "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": [ "*" ] } ] }

IAM Identity Center 지원 Athena 작업 그룹 생성

다음 절차에서는 IAM Identity Center 지원 Athena 작업 그룹 생성과 관련된 단계 및 옵션을 보여줍니다. Athena 작업그룹에 사용할 수 있는 다른 구성 옵션에 대한 설명은 작업 그룹 만들기 섹션을 참조하십시오.

Athena 콘솔에서 SSO 지원 작업 그룹 생성
  1. https://console.aws.amazon.com/athena/에서 Athena 콘솔을 엽니다.

  2. Athena 콘솔 탐색 창에서 작업 그룹(Workgroups)을 선택합니다.

  3. 작업 그룹 페이지에서 작업 그룹 생성을 선택합니다.

  4. 작업 그룹 생성 페이지의 작업 그룹 이름에 작업 그룹의 이름을 입력합니다.

  5. 분석 엔진으로 Athena SQL 기본값을 사용합니다.

  6. 인증으로 IAM Identity Center를 선택합니다.

  7. IAM Identity Center 액세스를 위한 서비스 역할로 기존 서비스 역할을 선택하거나 새 서비스 역할을 생성합니다.

    Athena가 사용자를 대신하여 IAM Identity Center에 액세스할 수 있는 권한이 필요합니다. 이를 위해서는 Athena에 서비스 역할이 필요합니다. 서비스 역할은 AWS 서비스가 사용자를 대신하여 다른 AWS 서비스에 액세스할 수 있도록 권한을 부여하는 IAM 역할입니다. 자세한 내용은 IAM 사용 설명서AWS서비스에 대한 권한을 위임할 역할 생성을 참조하세요.

  8. 쿼리 결과 구성을 확장한 다음 쿼리 결과의 위치에 Amazon S3 경로를 입력하거나 선택합니다.

  9. (선택 사항) 쿼리 결과 암호화를 선택합니다.

  10. (선택 사항) 사용자 ID 기반 S3 접두사 생성을 선택합니다.

    IAM Identity Center 지원 작업 그룹을 생성할 때는 기본적으로 S3 Access Grants 활성화 옵션이 선택됩니다. Amazon S3 Access Grants를 사용하여 Amazon S3의 Athena 쿼리 결과 위치(접두사)에 대한 액세스를 제어할 수 있습니다. Amazon S3 Access Grants에 대한 자세한 내용은 Managing access with Amazon S3 Access Grants를 참조하십시오.

    IAM Identity Center 인증을 사용하는 Athena 작업 그룹에서 Amazon S3 Access Grants에 의해 관리되는 ID 기반 쿼리 결과 위치 생성을 활성화할 수 있습니다. 이러한 사용자 ID 기반 Amazon S3 접두사를 사용하면 Athena 작업 그룹의 사용자는 쿼리 결과를 동일한 작업 그룹의 다른 사용자와 격리된 상태로 유지할 수 있습니다.

    사용자 접두사 옵션을 활성화하면 Athena는 사용자 ID를 작업 그룹의 쿼리 결과 출력 위치에 Amazon S3 경로 접두사로 추가합니다(예: s3://DOC-EXAMPLE-BUCKET/${user_id}). 이 기능을 사용하려면 user_id 접두사가 있는 위치에 대한 사용자 권한만 허용하도록 Access Grants를 구성해야 합니다. Athena 쿼리 결과에 대한 액세스를 제한하는 Amazon S3 Access Grants의 위치 역할 정책 샘플은 샘플 역할 정책을 참조하세요.

    참고

    사용자 ID S3 접두사 옵션을 선택하면 다음 단계에서 설명하는 것처럼 작업 그룹에 대한 클라이언트 측 설정 재정의 옵션이 자동으로 활성화됩니다. 클라이언트 측 설정 재정의 옵션은 사용자 ID 접두사 기능의 요구 사항입니다.

  11. 설정을 확장한 다음 클라이언트 측 설정 재정의가 선택되어 있는지 확인합니다.

    클라이언트 측 설정 재정의를 선택하면 작업 그룹 설정이 작업 그룹의 모든 클라이언트에 대해 작업 그룹 수준에서 적용됩니다. 자세한 내용은 클라이언트 측 설정보다 우선하는 작업 그룹 설정 단원을 참조하십시오.

  12. (선택 사항) 작업 그룹 만들기에 설명된 대로 필요한 기타 구성 설정을 지정합니다.

  13. 작업 그룹 생성을 선택합니다.

  14. Athena 콘솔의 작업 그룹 섹션을 사용하여 IAM Identity Center 디렉터리의 사용자 또는 그룹을 IAM Identity Center 활성화 Athena 작업 그룹에 할당할 수 있습니다.

다음 샘플은 Athena 쿼리 결과에 대한 액세스를 제한하는 Amazon S3 Access Grant 위치에 연결할 역할에 대한 정책을 보여줍니다.

{ "Statement": [{ "Action": ["s3:*"], "Condition": { "ArnNotEquals": { "s3:AccessGrantsInstanceArn": "arn:aws:s3:${region}:${account}:access-grants/default" }, "StringNotEquals": { "aws:ResourceAccount": "${account}" } }, "Effect": "Deny", "Resource": "*", "Sid": "ExplicitDenyS3" }, { "Action": ["kms:*"], "Effect": "Deny", "NotResource": "arn:aws:kms:${region}:${account}:key/${keyid}", "Sid": "ExplictDenyKMS" }, { "Action": ["s3:ListMultipartUploadParts", "s3:GetObject"], "Condition": { "ArnEquals": { "s3:AccessGrantsInstanceArn": "arn:aws:s3:${region}:${account}:access-grants/default" }, "StringEquals": { "aws:ResourceAccount": "${account}" } }, "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:${region}:${account}:access-grants/default" }, "StringEquals": { "aws:ResourceAccount": "${account}" } }, "Effect": "Allow", "Resource": "arn:aws:s3:::ATHENA-QUERY-RESULT-LOCATION/${identitystore:UserId}/*", "Sid": "ObjectLevelWritePermissions" }, { "Action": "s3:ListBucket", "Condition": { "ArnEquals": { "s3:AccessGrantsInstanceArn": "arn:aws:s3:${region}:${account}:access-grants/default" }, "StringEquals": { "aws:ResourceAccount": "${account}" }, "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:${region}:${account}:key/${keyid}", "Sid": "KMSPermissions" }], "Version": "2012-10-17" }