

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 先决条件
<a name="cross-account-prereqs"></a>

在您的 Amazon 账户可以与其他账户或另一个账户中的委托人共享数据目录资源（目录、数据库和表）之前，以及访问与您的账户共享的资源之前，必须满足以下先决条件。

**跨账户数据共享的一般要求**
+ 要在混合访问模式下共享 Data Catalog 数据库和表，以及共享联合目录中的对象，您需要将**跨账户版本设置**更新为**版本 4**。
+ 在向数据目录资源授予跨账户权限之前，必须撤销该 `IAMAllowedPrincipals` 组对该资源的所有 Lake Formation 权限。如果调用主体拥有跨账户访问资源的权限，并且对于该资源存在 `IAMAllowedPrincipals` 权限，则 Lake Formation 会引发 `AccessDeniedException`。

  仅当在 Lake Formation 模式下注册基础数据位置时，此要求才适用。如果在混合模式下注册数据位置，则对于共享数据库或表可以存在 `IAMAllowedPrincipals` 组权限。
+  对于包含要共享的表的数据库，必须防止新表的默认授权 `Super` 为 `IAMAllowedPrincipals`。在 Lake Formation 控制台上，编辑数据库并关闭 “**仅对该数据库中的新表使用 IAM 访问控制”，或者输入以下 Amazon CLI 命令（`database`替换为**数据库名称）。如果基础数据位置是在混合访问模式下注册的，则无需更改此默认设置。在混合访问模式下，Lake Formation 允许您有选择地对亚马逊 S3 和同一资源强制执行 Lake Formati Amazon Glue on 权限和 IAM 权限策略。

  ```
  aws glue update-database --name database --database-input '{"Name":"database","CreateTableDefaultPermissions":[]}'
  ```
+ 要授予跨账户权限，授予者必须对Amazon Glue和 Amazon RAM 服务具有必需的 Amazon Identity and Access Management (IAM) 权限。 Amazon 托管策略`AWSLakeFormationCrossAccountManager`授予所需的权限。

  使用接收资源共享的账户中的数据湖管理员 Amazon RAM 必须遵守以下附加策略。它允许管理员接受 Amazon RAM 资源共享邀请。它还允许管理员启用与组织的资源共享。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "ram:AcceptResourceShareInvitation",
                  "ram:RejectResourceShareInvitation",
                  "ec2:DescribeAvailabilityZones",
                  "ram:EnableSharingWithAwsOrganization"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
+ 如果要与 Amazon Organizations 或组织单位共享数据目录资源，则必须在中启用与组织共享 Amazon RAM。

  有关如何启用与组织共享的信息，请参阅*《Amazon RAM 用户指南》*中的[启用与 Amazon 组织共享](https://docs.amazonaws.cn/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-orgs)。

  您必须拥有用于启用与组织的共享所需的 `ram:EnableSharingWithAwsOrganization` 权限。
+ 要直接与其他账户中的 IAM 主体共享资源，您需要将**跨账户版本设置**更新为**版本 3**。此设置在**数据目录设置**页面上提供。如果您使用的是**版本 1**，请参阅有关更新设置 [更新跨账户数据共享版本设置](optimize-ram.md) 的说明。
+ 您不能与其他账户共享使用 Amazon Glue 服务托管密钥加密的数据目录资源。您只能共享使用客户加密密钥加密的数据目录资源，并且接收资源共享的账户必须对数据目录加密密钥拥有相应权限才能解密对象。

**使用 LF-TBAC 要求进行跨账户数据共享**
+  要 Amazon Organizations 与组织单位 (OUs) 共享数据目录资源，您需要将**跨账户版本设置更新为版本** **3** 或更高版本。
+ 要使用“版本 3”这一**跨账户版本设置**共享数据目录资源，授予者需要拥有在您的账户中的 Amazon 托管策略 `AWSLakeFormationCrossAccountManager` 中定义的 IAM 权限。
+ 如果您使用的**跨账户版本设置**是“版本 1”或“版本 2”，则必须具有启用 LF-TBAC 的数据目录资源策略 (`glue:PutResourcePolicy`)。有关更多信息，请参阅 [使用 Amazon Glue 和 Lake Formation 管理跨账户权限。](hybrid-cross-account.md)。
+ 如果您当前在使用 Amazon Glue 数据目录资源策略共享资源，并且想要使用“版本 3”这一**跨账户版本设置**授予跨账户权限，则必须使用 `glue:PutResourcePolicy` API 操作在数据目录设置中添加 `glue:ShareResource` 权限，如[使用 Amazon Glue 和 Lake Formation 管理跨账户权限。](hybrid-cross-account.md)一节所示。如果您的账户未进行跨账户授权，即未使用 Amazon Glue 数据目录资源策略（版本 1 和版本 2 使用 `glue:PutResourcePolicy` 权限）授予跨账户访问权限，则无需此策略。

  ```
  {
        "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 资源策略进行跨账户共享，并且您当前在使用命名资源方法或**跨账户设置**为“版本 3”的 LF-TBAC 来共享资源（使用 Amazon RAM 共享资源），则在调用 `glue:PutResourcePolicy` API 操作时必须将 `EnableHybrid` 参数设置为 `'true'`。有关更多信息，请参阅 [使用 Amazon Glue 和 Lake Formation 管理跨账户权限。](hybrid-cross-account.md)。

**访问共享资源的每个账户所需的设置**
+ 如果您与共享资源 Amazon Web Services 账户，则消费者账户中必须至少有一个用户是数据湖管理员才能查看共享资源。有关如何创建数据湖管理员的信息，请参阅[创建数据湖管理员](initial-lf-config.md#create-data-lake-admin)。

  数据湖管理员可以向账户中的其他主体授予对共享资源的 Lake Formation 权限。在数据湖管理员向其他主体授予对共享资源的权限之前，这些主体无法访问共享资源。
+ Athena 和 Redshift Spectrum 等集成服务需要资源链接才能在查询中包含共享资源。主体需要在其数据目录中创建指向其他 Amazon Web Services 账户中共享资源的资源链接。有关资源链接的更多信息，请参阅[资源链接在 Lake Formation 中的工作原理](resource-links-about.md)。
+ 当直接与 IAM 主体共享资源时，要使用 Athena 查询表，则主体需要创建资源链接。要创建资源链接，主体需要 Lake Formation `CREATE_TABLE` 或 `CREATE_DATABASE` 权限，以及 `glue:CreateTable` 或 `glue:CreateDatabase` IAM 权限。

  如果制作者账户与同一主体或其他主体共享同一数据库下的不同表，则该主体立即可以查询该表。

**注意**  
对于数据湖管理员和数据湖管理员已向其授予权限的主体，共享资源在数据目录中显示为本地（自有）资源。提取、转换、加载 (ETL) 作业可以访问共享资源的基础数据。  
对于共享资源，Lake Formation 控制台上的**表**和**数据库**页面会显示所有者的账户 ID。  
访问共享资源的底层数据时，将在共享资源接收者的账户和资源所有者的账户中生成 CloudTrail 日志事件。 CloudTrail 事件可以包含访问数据的委托人的 ARN，但前提是接收方账户选择在日志中包含委托人 ARN。有关更多信息，请参阅 [跨账户 CloudTrail 日志](cross-account-logging.md)。