위치를 등록하는 데 사용되는 역할에 대한 요구 사항
Amazon Simple Storage Service(S3) 위치를 등록할 때는 반드시 AWS Identity and Access Management(IAM) 역할을 지정해야 합니다. AWS Lake Formation에서는 해당 위치의 데이터에 액세스할 때 이 역할을 사용합니다.
다음 역할 유형 중 하나를 사용하여 위치를 등록할 수 있습니다.
-
Lake Formation 서비스 연결 역할. 이 역할은 위치에 대해 필요한 권한을 부여합니다. 이 역할을 사용하는 것이 위치를 등록하는 가장 간단한 방법입니다. 자세한 내용은 Lake Formation에 서비스 연결 역할 사용 단원을 참조하십시오.
-
사용자 정의 역할. 서비스 연결 역할이 제공하는 것보다 더 많은 권한을 부여해야 하는 경우 사용자 정의 역할을 사용하세요.
다음과 같은 상황에서는 사용자 정의 역할을 사용해야 합니다.
-
다른 계정에 위치를 등록하는 경우
자세한 내용은 다른 AWS 계정에 Amazon S3 위치 등록 및 AWS 계정 전반에서 암호화된 Amazon S3 위치 등록 단원을 참조하세요.
-
AWS 관리형 CMK(
aws/s3
)를 사용하여 Amazon S3 위치를 암호화한 경우자세한 내용은 암호화된 Amazon S3 위치 등록 단원을 참조하십시오.
-
Amazon EMR을 사용하여 위치에 액세스하려는 경우
서비스 연결 역할로 위치를 이미 등록한 상태에서 Amazon EMR로 위치에 액세스하려면 위치를 등록 취소하고 사용자 정의 역할로 다시 등록해야 합니다. 자세한 내용은 Amazon S3 위치 등록 취소 단원을 참조하십시오.
-
사용자 정의 역할의 요구 사항은 다음과 같습니다.
-
새 역할을 생성할 때 IAM 콘솔의 역할 생성 페이지에서 AWS 서비스를 선택한 다음 사용 사례 선택에서 Lake Formation을 선택합니다.
다른 경로를 사용하여 역할을 생성하는 경우 해당 역할이
lakeformation.amazonaws.com
과 신뢰 관계가 있는지 확인합니다. 자세한 내용은 역할 신뢰 정책 수정(콘솔)을 참조하세요. -
역할은 다음 엔터티와 신뢰 관계가 있어야 합니다.
-
glue.amazonaws.com
-
lakeformation.amazonaws.com
자세한 내용은 역할 신뢰 정책 수정(콘솔)을 참조하세요.
-
-
역할에는 위치에 대한 Amazon S3 읽기/쓰기 권한을 부여하는 인라인 정책이 있어야 합니다. 다음은 일반적인 정책입니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::awsexamplebucket" ] } ] }
-
Lake Formation 서비스가 역할을 수임하고 통합 분석 엔진에 임시 자격 증명을 제공할 수 있도록 IAM 역할에 다음 신뢰 정책을 추가합니다.
CloudTrail 로그에 IAM Identity Center 사용자 컨텍스트를 포함하려면 신뢰 정책에
sts:SetContext
작업에 대한 권한이 있어야 합니다. “sts:SetContext”{ "Version": "2012-10-17", "Statement": [ { "Sid": "DataCatalogViewDefinerAssumeRole1", "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com", "lakeformation.amazonaws.com" ] }, "Action": [ "sts:AssumeRole", "sts:SetContext" ] } ] }
-
위치를 등록하는 데이터 레이크 관리자에게는 역할에 대한
iam:PassRole
권한이 있어야 합니다.다음은 이 권한을 부여하는 인라인 정책입니다.
<account-id>
를 유효한 AWS 계정으로 바꾸고<role-name>
을 역할의 이름으로 바꿉니다.{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRolePermissions", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::
<account-id>
:role/<role-name>
" ] } ] } -
Lake Formation이 CloudWatch Logs에 로그를 추가하고 지표를 게시하도록 허용하려면 다음 인라인 정책을 추가합니다.
참고
CloudWatch Logs에 기록하면 요금이 발생합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Sid1", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:
<region>
:<account-id>
:log-group:/aws-lakeformation-acceleration/*", "arn:aws:logs:<region>
:<account-id>
:log-group:/aws-lakeformation-acceleration/*:log-stream:*" ] } ] }