Lake Formation 페르소나 및 IAM 권한 참조 - AWS Lake Formation

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Lake Formation 페르소나 및 IAM 권한 참조

이 섹션에는 몇 가지 제안된 Lake Formation 페르소나와 제안된 AWS Identity and Access Management (IAM) 권한이 나열되어 있습니다. Lake Formation 권한에 대한 자세한 내용은 Lake Formation 권한 참조 섹션을 참조하세요.

AWS Lake Formation 페르소나

다음 표에는 추천 AWS Lake Formation 페르소나가 나와 있습니다.

Lake Formation 페르소나
페르소나 설명
IAM 관리자(슈퍼 사용자) (필수) IAM 사용자 및 역할을 생성할 수 있는 사용자입니다. AdministratorAccess AWS 관리형 정책이 있습니다. 모든 Lake Formation 리소스에 대한 모든 권한을 가집니다. 데이터 레이크 관리자를 추가할 수 있습니다. 데이터 레이크 관리자로 지정되지 않은 경우 Lake Formation 권한을 부여할 수 없습니다.
데이터 레이크 관리자 (필수) Amazon S3 위치를 등록하고, 데이터 카탈로그에 액세스하고, 데이터베이스를 생성하고, 워크플로를 생성 및 실행하고, Lake Formation 권한을 다른 사용자에게 부여하고, AWS CloudTrail 로그를 볼 수 있는 사용자. IAM 관리자보다 IAM 권한이 적지만 데이터 레이크를 관리하기에는 충분합니다. 다른 데이터 레이크 관리자를 추가할 수 없습니다.
읽기 전용 관리자 (선택 사항) 업데이트 권한 없이 보안 주체, 데이터 카탈로그 리소스, 권한 및 AWS CloudTrail 로그를 볼 수 있는 사용자입니다.
데이터 엔지니어 (선택 사항) 데이터베이스를 생성하고, 크롤러와 워크플로를 생성 및 실행하고, 크롤러와 워크플로가 생성하는 데이터 카탈로그 테이블에 대한 Lake Formation 권한을 부여할 수 있는 사용자입니다. 모든 데이터 엔지니어를 데이터베이스 생성자로 지정하는 것이 좋습니다. 자세한 설명은 데이터베이스 생성 섹션을 참조하세요.
데이터 분석가 (선택 사항) 예를 들어 Amazon Athena를 사용하여 데이터 레이크에 대해 쿼리를 실행할 수 있는 사용자입니다. 쿼리를 실행할 수 있는 권한만 있습니다.
워크플로 역할 (필수) 사용자를 대신하여 워크플로를 실행하는 역할입니다. 이 역할은 청사진에서 워크플로를 생성할 때 지정합니다.

AWS Lake Formation에 대한 관리형 정책

AWS 관리형 정책 및 인라인 정책을 사용하여 작업에 필요한 AWS Identity and Access Management (IAM) 권한을 부여할 수 있습니다. AWS Lake Formation Lake AWS Formation에는 다음과 같은 관리형 정책이 제공됩니다.

AWS 관리형 정책: AWSLakeFormationDataAdmin

AWSLakeFormationDataAdmin정책은 데이터 레이크 AWS Lake Formation 관리와 같은 AWS Glue 관련 서비스에 대한 관리 액세스 권한을 부여합니다.

사용자, 그룹 및 역할에 AWSLakeFormationDataAdmin를 연결할 수 있습니다.

권한 세부 정보

  • CloudTrail— 주도자가 로그를 볼 AWS CloudTrail 수 있도록 허용합니다. 이 권한은 데이터 레이크 설정 시 발생한 오류를 검토하는 데 필요합니다.

  • Glue - 보안 주체가 데이터 카탈로그의 메타데이터 테이블 및 데이터베이스를 보고, 생성하고, 업데이트할 수 있도록 허용합니다. 여기에는 Get, List, Create, Update, DeleteSearch로 시작하는 API 작업이 포함됩니다. 이 권한은 데이터 레이크 테이블의 메타데이터를 관리하는 데 필요합니다.

  • IAM - 보안 주체가 IAM 사용자, 역할 및 역할에 연결된 정책에 대한 정보를 검색할 수 있도록 허용합니다. 이 권한은 데이터 관리자가 Lake Formation 권한을 부여할 IAM 사용자 및 역할을 검토하고 나열하는 데 필요합니다.

  • Lake Formation - 데이터 레이크 관리자에게 데이터 레이크를 관리하는 데 필요한 Lake Formation 권한을 부여합니다.

  • S3 - 보안 주체가 데이터 레이크의 데이터 위치를 설정하기 위해 Amazon S3 버킷 및 해당 위치에 대한 정보를 검색할 수 있도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:*", "cloudtrail:DescribeTrails", "cloudtrail:LookupEvents", "glue:GetDatabase", "glue:GetDatabases", "glue:CreateDatabase", "glue:UpdateDatabase", "glue:DeleteDatabase", "glue:GetConnections", "glue:SearchTables", "glue:GetTable", "glue:CreateTable", "glue:UpdateTable", "glue:DeleteTable", "glue:GetTableVersions", "glue:GetPartitions", "glue:GetTables", "glue:GetWorkflow", "glue:ListWorkflows", "glue:BatchGetWorkflows", "glue:DeleteWorkflow", "glue:GetWorkflowRuns", "glue:StartWorkflowRun", "glue:GetWorkflow", "s3:ListBucket", "s3:GetBucketLocation", "s3:ListAllMyBuckets", "s3:GetBucketAcl", "iam:ListUsers", "iam:ListRoles", "iam:GetRole", "iam:GetRolePolicy" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "lakeformation:PutDataLakeSettings" ], "Resource": "*" } ] }
참고

AWSLakeFormationDataAdmin 정책은 데이터 레이크 관리자에게 필요한 모든 권한을 부여하지는 않습니다. 워크플로를 생성 및 실행하고 서비스 연결 역할 AWSServiceRoleForLakeFormationDataAccess에 위치를 등록하려면 추가 권한이 필요합니다. 자세한 내용은 데이터 레이크 관리자 생성Lake Formation에 서비스 연결 역할 사용 섹션을 참조하세요.

AWS 관리형 정책: AWSLakeFormationCrossAccountManager

AWSLakeFormationCrossAccountManager정책은 Lake Formation을 통해 AWS Glue 리소스에 대한 계정 간 액세스를 제공하고 및 와 같은 AWS Organizations 기타 필수 서비스에 대한 읽기 액세스 권한을 AWS RAM부여합니다.

사용자, 그룹 및 역할에 AWSLakeFormationCrossAccountManager를 연결할 수 있습니다.

권한 세부 정보

이 정책에는 다음 권한이 포함되어 있습니다.

  • Glue - 보안 주체가 액세스 제어를 위한 데이터 카탈로그 리소스 정책을 설정하거나 삭제할 수 있도록 허용합니다.

  • Organizations - 보안 주체가 조직의 계정 및 OU(조직 구성 단위) 정보를 검색할 수 있도록 허용합니다.

  • ram:CreateResourceShare - 보안 주체가 리소스 공유를 생성할 수 있도록 허용합니다.

  • ram:UpdateResourceShare - 보안 주체가 지정된 리소스 공유의 일부 속성을 수정할 수 있도록 허용합니다.

  • ram:DeleteResourceShare - 보안 주체가 지정된 리소스 공유를 삭제할 수 있도록 허용합니다.

  • ram:AssociateResourceShare - 보안 주체가 지정된 보안 주체 목록 및 리소스 목록을 리소스 공유에 추가할 수 있도록 허용합니다.

  • ram:DisassociateResourceShare - 보안 주체가 지정된 리소스 공유에 참여하지 않도록 지정된 보안 주체 또는 리소스를 제거할 수 있도록 허용합니다.

  • ram:GetResourceShares - 사용자가 소유하거나 공유한 리소스 공유에 대한 세부 정보를 보안 주체가 검색할 수 있도록 허용합니다.

  • ram:RequestedResourceType - 보안 주체가 리소스 유형(데이터베이스, 테이블 또는 카탈로그)을 검색할 수 있도록 허용합니다.

  • AssociateResourceSharePermission— 주도자가 리소스 공유에 포함된 리소스 유형에 대한 AWS RAM 권한을 추가하거나 교체할 수 있습니다. 리소스 공유에 포함된 각 리소스 유형에는 하나의 권한만 연결할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ram:CreateResourceShare" ], "Resource": "*", "Condition": { "StringLikeIfExists": { "ram:RequestedResourceType": [ "glue:Table", "glue:Database", "glue:Catalog" ] } } }, { "Effect": "Allow", "Action": [ "ram:UpdateResourceShare", "ram:DeleteResourceShare", "ram:AssociateResourceShare", "ram:DisassociateResourceShare", "ram:GetResourceShares" ], "Resource": "*", "Condition": { "StringLike": { "ram:ResourceShareName": [ "LakeFormation*" ] } } }, { "Effect": "Allow", "Action": [ "ram:AssociateResourceSharePermission" ], "Resource": "*", "Condition": { "StringLike": { "ram:PermissionArn": [ "arn:aws:ram::aws:permission/AWSRAMLFEnabled*" ] } } }, { "Effect": "Allow", "Action": [ "glue:PutResourcePolicy", "glue:DeleteResourcePolicy", "organizations:DescribeOrganization", "organizations:DescribeAccount", "ram:Get*", "ram:List*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "organizations:ListRoots", "organizations:ListAccountsForParent", "organizations:ListOrganizationalUnitsForParent" ], "Resource": "*" } ] }

AWS 관리형 정책: AWSGlueConsoleFullAccess

AWSGlueConsoleFullAccess정책은 정책이 연결된 ID가 를 사용하는 경우 AWS Glue 리소스에 대한 전체 액세스 권한을 AWS Management Console부여합니다. 이 정책에 지정된 리소스의 이름 변환을 따르면 사용자는 콘솔 전체 용량을 소유합니다. 이 정책은 일반적으로 AWS Glue 콘솔 사용자에게 연결됩니다.

또한, AWS Glue Lake Formation은 아마존 엘라스틱 컴퓨트 클라우드 (Amazon EC2), 아마존 심플 스토리지 서비스 (Amazon S3), 아마존 등 관련 서비스에 대한 액세스를 허용하는 서비스 역할을 AWSGlueServiceRole 맡습니다. CloudWatch

AWS managed policy:LakeFormationDataAccessServiceRolePolicy

이 정책은 요청이 있을 경우 서비스가 리소스에 대한 작업을 수행할 수 ServiceRoleForLakeFormationDataAccess 있도록 하는 이름이 지정된 서비스 연결 역할에 첨부됩니다. IAM ID에는 이 정책을 연결할 수 없습니다.

이 정책은 Amazon Redshift와 같은 Amazon Athena Lake Formation 통합 AWS 서비스가 서비스 연결 역할을 사용하여 Amazon S3 리소스를 검색할 수 있도록 허용합니다.

자세한 내용은 Lake Formation에 서비스 연결 역할 사용 단원을 참조하십시오.

권한 세부 정보

이 정책에는 다음 권한이 포함됩니다.

  • s3:ListAllMyBuckets— 인증된 요청 발신자가 소유한 모든 버킷의 목록을 반환합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFormationDataAccessServiceRolePolicy", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets" ], "Resource": [ "arn:aws:s3:::*" ] } ] }
AWS 관리형 정책에 대한 Lake Formation 업데이트

이 서비스가 이러한 변경 사항을 추적하기 시작한 이후 Lake Formation의 AWS 관리형 정책 업데이트에 대한 세부 정보를 확인하십시오.

변경 사항 설명 날짜
Lake Formation에서 LakeFormationDataAccessServiceRolePolicy 정책을 업데이트함. Lake Formation은 LakeFormationDataAccessServiceRolePolicy정책 설명에 Sid 요소를 추가하여 정책을 강화했습니다. 2024년 2월
Lake Formation에서 AWSLakeFormationCrossAccountManager 정책을 업데이트함. Lake Formation은 하이브리드 액세스 모드에서 계정 간 데이터 공유를 가능하게 하는 새로운 권한을 추가하여 AWSLakeFormationCrossAccountManager정책을 개선했습니다. 2023년 10월
Lake Formation에서 AWSLakeFormationCrossAccountManager 정책을 업데이트함. Lake Formation은 리소스를 처음 공유할 때 수신자 계정당 하나의 리소스 공유만 생성하도록 AWSLakeFormationCrossAccountManager정책을 개선했습니다. 이후 동일한 계정으로 공유된 모든 리소스는 동일한 리소스 공유에 연결됩니다. 2022년 5월 6일
Lake Formation에서 변경 내용 추적 시작. Lake Formation은 AWS 관리형 정책의 변경 사항을 추적하기 시작했습니다. 2022년 5월 6일

페르소나 제안 권한

다음은 각 페르소나에 대해 제안된 권한입니다. IAM 관리자는 포함되지 않습니다. 해당 사용자는 모든 리소스에 대한 모든 권한을 가지고 있기 때문입니다.

데이터 레이크 관리자 권한

중요

다음 정책에서는 에서 <account-id><workflow_role>정의한 대로 유효한 AWS 계정 번호로 바꾸고 워크플로를 실행할 권한이 있는 역할의 이름으로 워크플로 역할 권한바꾸십시오.

정책 유형 정책
AWS 관리형 정책
  • AWSLakeFormationDataAdmin

  • LakeFormationDataAccessServiceRolePolicy(서비스 연결 역할 정책)

  • AWSGlueConsoleFullAccess(선택 사항)

  • CloudWatchLogsReadOnlyAccess(선택 사항)

  • AWSLakeFormationCrossAccountManager(선택 사항)

  • AmazonAthenaFullAccess(선택 사항)

선택적 AWS 관리형 정책에 대한 자세한 내용은 을 참조하십시오. 데이터 레이크 관리자 생성

인라인 정책(Lake Formation 서비스 연결 역할 생성용)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "iam:AWSServiceName": "lakeformation.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::<account-id>:role/aws-service-role/lakeformation.amazonaws.com/AWSServiceRoleForLakeFormationDataAccess" } ] }
(선택 사항) 인라인 정책(워크플로 역할에 대한 passrole 정책). 이는 데이터 레이크 관리자가 워크플로를 생성하고 실행하는 경우에만 필요합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRolePermissions", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<workflow_role>" ] } ] }
(선택 사항) 인라인 정책(계정이 교차 계정 Lake Formation 권한을 부여하거나 받는 경우). 이 정책은 AWS RAM 리소스 공유 초대를 수락 또는 거부하고 조직에 계정 간 권한을 부여할 수 있도록 하기 위한 것입니다. ram:EnableSharingWithAwsOrganization관리 계정의 데이터 레이크 관리자에게만 필요합니다. AWS Organizations
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ram:AcceptResourceShareInvitation", "ram:RejectResourceShareInvitation", "ec2:DescribeAvailabilityZones", "ram:EnableSharingWithAwsOrganization" ], "Resource": "*" } ] }

읽기 전용 관리자 권한

정책 유형 정책
인라인 정책(기본)
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "lakeformation:GetEffectivePermissionsForPath", "lakeformation:ListPermissions", "lakeformation:ListDataCellsFilter", "lakeformation:GetDataCellsFilter", "lakeformation:SearchDatabasesByLFTags", "lakeformation:SearchTablesByLFTags", "lakeformation:GetLFTag", "lakeformation:ListLFTags", "lakeformation:GetResourceLFTags", "lakeformation:ListLakeFormationOptin", "cloudtrail:DescribeTrails", "cloudtrail:LookupEvents", "glue:GetDatabase", "glue:GetDatabases", "glue:GetConnections", "glue:SearchTables", "glue:GetTable", "glue:GetTableVersions", "glue:GetPartitions", "glue:GetTables", "glue:GetWorkflow", "glue:ListWorkflows", "glue:BatchGetWorkflows", "glue:GetWorkflowRuns", "glue:GetWorkflow", "s3:ListBucket", "s3:GetBucketLocation", "s3:ListAllMyBuckets", "s3:GetBucketAcl", "iam:ListUsers", "iam:ListRoles", "iam:GetRole", "iam:GetRolePolicy" ], "Resource":"*" }, { "Effect":"Deny", "Action":[ "lakeformation:PutDataLakeSettings" ], "Resource":"*" } ] }

데이터 엔지니어 권한

중요

다음 정책에서는 <account-id>유효한 AWS 계정 번호로 바꾸고 <workflow_role>워크플로 역할의 이름으로 바꾸십시오.

정책 유형 정책
AWS 관리형 정책 AWSGlueConsoleFullAccess
인라인 정책(기본)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "lakeformation:GrantPermissions", "lakeformation:RevokePermissions", "lakeformation:BatchGrantPermissions", "lakeformation:BatchRevokePermissions", "lakeformation:ListPermissions", "lakeformation:AddLFTagsToResource", "lakeformation:RemoveLFTagsFromResource", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:GetLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags", "lakeformation:GetWorkUnits", "lakeformation:GetWorkUnitResults", "lakeformation:StartQueryPlanning", "lakeformation:GetQueryState", "lakeformation:GetQueryStatistics" ], "Resource": "*" } ] }
인라인 정책(트랜잭션 내 작업을 포함하여 관리되는 테이블에 대한 작업용)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:StartTransaction", "lakeformation:CommitTransaction", "lakeformation:CancelTransaction", "lakeformation:ExtendTransaction", "lakeformation:DescribeTransaction", "lakeformation:ListTransactions", "lakeformation:GetTableObjects", "lakeformation:UpdateTableObjects", "lakeformation:DeleteObjectsOnCancel" ], "Resource": "*" } ] }
인라인 정책(Lake Formation 태그 기반 액세스 제어(LF-TBAC) 방법을 사용한 메타데이터 액세스 제어용)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:AddLFTagsToResource", "lakeformation:RemoveLFTagsFromResource", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:GetLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags" ], "Resource": "*" } ] }
인라인 정책(워크플로 역할에 대한 passrole 정책)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRolePermissions", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<workflow_role>" ] } ] }

데이터 분석가 권한

정책 유형 정책
AWS 관리형 정책 AmazonAthenaFullAccess
인라인 정책(기본)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:SearchTables", "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartitions", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:GetLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags" ], "Resource": "*" } ] }
(선택 사항) 인라인 정책(트랜잭션 내 작업을 포함하여 관리되는 테이블에 대한 작업용)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:StartTransaction", "lakeformation:CommitTransaction", "lakeformation:CancelTransaction", "lakeformation:ExtendTransaction", "lakeformation:DescribeTransaction", "lakeformation:ListTransactions", "lakeformation:GetTableObjects", "lakeformation:UpdateTableObjects", "lakeformation:DeleteObjectsOnCancel" ], "Resource": "*" } ] }

워크플로 역할 권한

이 역할에는 워크플로를 실행하는 데 필요한 권한이 있습니다. 워크플로를 생성할 때 이러한 권한이 있는 역할을 지정합니다.

중요

다음 정책에서는 <region>유효한 AWS 지역 식별자 (예:us-east-1), <account-id>유효한 AWS 계정 번호, <workflow_role>워크플로 역할 이름, <your-s3-cloudtrail-bucket> AWS CloudTrail 로그의 Amazon S3 경로로 대체하십시오.

정책 유형 정책
AWS 관리형 정책 AWSGlueServiceRole
인라인 정책(데이터 액세스)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Lakeformation", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "lakeformation:GrantPermissions" ], "Resource": "*" } ] }
인라인 정책(워크플로 역할에 대한 passrole 정책)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRolePermissions", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<workflow_role>" ] } ] }
인라인 정책 (예: 로그 등 데이터 레이크 외부의 데이터 수집) AWS CloudTrail
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:GetObject", "s3:ListBucket"], "Resource": ["arn:aws:s3:::<your-s3-cloudtrail-bucket>/*"] } ] }