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 Lake Formation 사용하여 작업에 필요한 AWS Identity and Access Management (IAM) 권한을 부여할 수 있습니다. Lake Formation에는 다음 AWS 관리형 정책을 사용할 수 있습니다.

AWS 관리형 정책:AWSLakeFormationDataAdmin

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

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

권한 세부 정보

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

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

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

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

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

"Statement": [ { "Sid": "AWSLakeFormationDataAdminAllow", "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: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": "*" }, { "Sid": "AWSLakeFormationDataAdminDeny", "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": [{ "Sid": "AllowCreateResourceShare", "Effect": "Allow", "Action": [ "ram:CreateResourceShare" ], "Resource": "*", "Condition": { "StringLikeIfExists": { "ram:RequestedResourceType": [ "glue:Table", "glue:Database", "glue:Catalog" ] } } }, { "Sid": "AllowManageResourceShare", "Effect": "Allow", "Action": [ "ram:UpdateResourceShare", "ram:DeleteResourceShare", "ram:AssociateResourceShare", "ram:DisassociateResourceShare", "ram:GetResourceShares" ], "Resource": "*", "Condition": { "StringLike": { "ram:ResourceShareName": [ "LakeFormation*" ] } } }, { "Sid": "AllowManageResourceSharePermissions", "Effect": "Allow", "Action": [ "ram:AssociateResourceSharePermission" ], "Resource": "*", "Condition": { "StringLike": { "ram:PermissionArn": [ "arn:aws:ram::aws:permission/AWSRAMLFEnabled*" ] } } }, { "Sid": "AllowXAcctManagerPermissions", "Effect": "Allow", "Action": [ "glue:PutResourcePolicy", "glue:DeleteResourcePolicy", "organizations:DescribeOrganization", "organizations:DescribeAccount", "ram:Get*", "ram:List*" ], "Resource": "*" }, { "Sid": "AllowOrganizationsPermissions", "Effect": "Allow", "Action": [ "organizations:ListRoots", "organizations:ListAccountsForParent", "organizations:ListOrganizationalUnitsForParent" ], "Resource": "*" } ] }

AWS 관리형 정책:AWSGlueConsoleFullAccess

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

또한 AWS Glue 및 Lake Formation은 Amazon Elastic Compute Cloud(Amazon EC2), Amazon Simple Storage Service(Amazon S3) 및 Amazon 를 비롯한 관련 서비스에 대한 액세스를 AWSGlueServiceRole 허용하는 서비스 역할을 맡습니다 CloudWatch.

AWS managed policy:LakeFormationDataAccessServiceRolePolicy

이 정책은 서비스가 요청 시 리소스에 대한 작업을 수행할 수 ServiceRoleForLakeFormationDataAccess 있도록 라는 서비스 연결 역할에 연결됩니다. 이 정책을 IAM 자격 증명에 연결할 수 없습니다.

이 정책은 Amazon Athena 또는 Amazon Redshift와 같은 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에서 AWSLakeFormationCrossAccountManager 정책을 업데이트함. Lake Formation은 AWSLakeFormationCrossAccountManager 정책 문에 Sid 요소를 추가하여 정책을 개선했습니다. 2024년 3월
Lake Formation에서 AWSLakeFormationDataAdmin 정책을 업데이트함. Lake Formation은 AWSLakeFormationDataAdmin 정책 문에 Sid 요소를 추가하고 중복 작업을 제거하여 정책을 개선했습니다. 2024년 3월
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> 유효한 AWS 계정 번호로 교체 <workflow_role> 에 정의된 대로 워크플로를 실행할 수 있는 권한이 있는 역할의 이름워크플로 역할 권한.

정책 유형 정책
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:ListLakeFormationOptins", "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>/*"] } ] }