本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
用於註冊地點的角色需求
註冊亞馬遜簡單儲存服務 AWS Identity and Access Management (Amazon S3) 位置時,必須指定 (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" ] } ] }
-
將下列信任政策新增至 IAM 角色,以允許 Lake Formation 服務擔任該角色,並將臨時信任歸納至整合式分析引擎。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DataCatalogViewDefinerAssumeRole1", "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com", "lakeformation.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }
-
註冊該位置的資料湖管理員必須具有角色的
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 日誌並發布指標,請添加以下內聯策略。
注意
寫入記 CloudWatch 錄會產生費用。
{ "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:*" ] } ] }