本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
第 2 步:Lake Formation 跨账户共享先决条件
在与 Lake Formation 共享资源之前,基于标签的访问控制方法和命名资源方法都有先决条件。
完整的基于标签的访问控制跨账户共享先决条件
-
在使用基于标签的访问控制方法授予对资源的跨账户访问权限之前,您必须添加以下内容
JSON权限对象添加到创建者账户中的数据目录资源策略。这会授予消费者账户在以下情况下访问数据目录的权限glue:EvaluatedByLakeFormationTagsis true。此外,对于您使用 Lake Formation 权限标签向使用者账户授予权限的资源,此条件也成立。此策略对于每个Amazon Web Services 账户向其授予权限。以下策略必须在
Statement元素。我们将在下一节中讨论完整的 IAM 策略。{ "Effect": "Allow", "Action": [ "glue:*" ], "Principal": { "AWS": [ "consumer-account-id>" ] }, "Resource": [ "arn:aws:glue:region:account-id:table/*", "arn:aws:glue:region:account-id:database/*", "arn:aws:glue:region:account-id:catalog" ], "Condition": { "Bool": { "glue:EvaluatedByLakeFormationTags": true } } }
完成命名资源方法跨账户共享先决条件
-
如果您的账户中没有数据目录资源策略,则 Lake Formation 跨账户授予您照常进行的授权。但是,如果存在 Data Catalog 资源策略,则必须向其添加以下语句,以允许跨账户授予成功(如果这些授权是使用命名资源方法进行的)。如果您计划仅使用命名资源方法,或者仅使用基于标签的访问控制方法,则可以跳过此步骤。在本教程中,我们将评估这两种方法,我们需要添加以下策略。
以下策略必须在
Statement元素。我们将在下一节中讨论完整的 IAM 策略。{ "Effect": "Allow", "Action": [ "glue:ShareResource" ], "Principal": { "Service":"ram.amazonaws.com" }, "Resource": [ "arn:aws:glue:region:account-id:table/*/*", "arn:aws:glue:region:account-id:database/*", "arn:aws:glue:region:account-id:catalog" ] } 下一步,在处登录,在Amazon Glue Data Catalog; 资源策略使用Amazon Command Line Interface(Amazon CLI)。
如果您同时使用基于标签的访问控制方法和命名资源方法授予跨账户权限,则必须将
EnableHybrid添加上述策略时,参数变为 “true”。因为控制台当前不支持此选项,因此您必须使用glue:PutResourcePolicyAPI 和Amazon CLI.首先,创建一个策略文档(比如 policy.json),然后添加前面的两个策略。Replace
consumer-account-id用账户 ID的Amazon Web Services 账户领取补助金,领域数据目录的区域包含您正在授予权限的数据库和表,以及account-id和制片人在一起Amazon Web Services 账户ID。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ram.amazonaws.com" }, "Action": "glue:ShareResource", "Resource": [ "arn:aws:glue:region:account-id:table/*/*", "arn:aws:glue:region:account-id:database/*", "arn:aws:glue:region:account-id:catalog" ] }, { "Effect": "Allow", "Principal": { "AWS": "region:account-id" }, "Action": "glue:*", "Resource": [ "arn:aws:glue:region:account-id:table/*/*", "arn:aws:glue:region:account-id:database/*", "arn:aws:glue:region:account-id:catalog" ], "Condition": { "Bool": { "glue:EvaluatedByLakeFormationTags": "true" } } } ] }输入以下信息Amazon CLI命令。Replace
glue-resource-policy使用正确的值(例如 file: //policy.json)。aws glue put-resource-policy --policy-in-jsonglue-resource-policy--enable-hybrid TRUE有关更多信息,请参阅 。put-resource-policy.