

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

# 使用 AWS Glue 和 Lake Formation 管理跨账户权限。
<a name="hybrid-cross-account"></a>

可以使用 AWS Glue 或 AWS Lake Formation授予对数据目录资源和基础数据的跨账户访问权限。

在 AWS Glue 中，您可以通过创建或更新数据目录资源策略来授予跨账户权限。在 Lake Formation 中，您可以使用 Lake Formation `GRANT/REVOKE` 权限模型和 `Grant Permissions` API 操作来授予跨账户权限。

**提示**  
我们建议仅依靠 Lake Formation 权限来保护您的数据湖。

你可以使用 Lake Formation 控制台或 AWS Resource Access Manager (AWS RAM) 控制台查看 Lake Formation 跨账户授权。但是，这些控制台页面不显示通过 AWS Glue 数据目录资源策略授予的跨账户权限。同样，您可以使用 AWS Glue 控制台的**设置**页面在数据目录资源策略中查看跨账户授权，但该页面不显示使用 Lake Formation 授予的跨账户权限。

为了确保您在查看和管理跨账户权限时不会错过任何授权，Lake Formation 和 AWS Glue 会要求您执行以下操作，以表明您知道并将允许 Lake Formation 和 AWS Glue 进行跨账户授权。

**使用 AWS Glue 数据目录资源策略授予跨账户权限时**  
如果您的账户（授予者账户或生产者账户）没有使用 AWS RAM 共享资源的跨账户授权，您可以像往常一样在 AWS Glue 中保存数据目录资源策略。但是，如果已经进行了涉及 AWS RAM 资源共享的授权，则必须执行以下操作之一，以确保成功保存资源策略：
+ 当您在 AWS Glue 控制台的**设置** 页面上保存资源策略时，控制台会发出警报，指出除了使用 Lake Formation 控制台授予的任何权限之外，还将授予该策略中的权限。必须选择**继续**才能保存该策略。
+ 使用 `glue:PutResourcePolicy` API 操作保存资源策略时，必须将 `EnableHybrid` 字段设置为“`TRUE`”（类型 = 字符串）。

  要更新现有资源策略，请先使用 `glue:GetResourcePolicy` API 操作检索您当前的策略，然后在调用 `glue:PutResourcePolicy` 之前根据需要对其进行修改。
**注意**  
在为跨账户访问创建 AWS Glue 资源策略时，请仅授予您的特定用例所需的最低权限。

  *有关更多信息，请参阅[PutResourcePolicy 《开发者指南》中的操作（Python：put\$1resource\$1policy）](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-security.html#aws-glue-api-jobs-security-PutResourcePolicy)。AWS Glue *

**使用 Lake Formation 命名资源方法授予跨账户权限时**  
如果您的账户（生产者账户）中没有数据目录资源策略，您进行的 Lake Formation 跨账户授权将照常进行。但是，如果存在数据目录资源策略，则必须在其中添加以下语句，以确保使用命名资源方法进行的跨账户授权成功完成。*<region>*替换为有效的地区*<account-id>*名称和您的 AWS 账户 ID（制作人账户 ID）。

```
    {
      "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"
      ]
    }
```

如果没有这份额外的声明，Lake Formation 授权就会成功 AWS RAM，但会被封锁，接收者账户将无法访问授予的资源。

**重要**  
使用 Lake Formation 基于标签的访问控制 (LF-TBAC) 方法进行跨账户授权时，您的数据目录资源策略必须至少含有[先决条件](cross-account-prereqs.md)中指定的权限。

**另请参见：**  
[元数据访问控制](access-control-metadata.md)（用于讨论命名资源方法与 Lake Formation 基于标签的访问控制 (LF-TBAC) 方法）。
[查看共享数据目录表和数据库](viewing-available-shared-resources.md)
《AWS Glue 开发人员指南》中的[在 AWS Glue 控制台中使用数据目录设置](https://docs.aws.amazon.com/glue/latest/dg/console-data-catalog-settings.html)**
《AWS Glue 开发人员指南》中的[授予跨账户访问权限](https://docs.aws.amazon.com/glue/latest/dg/cross-account-access.html)（适用于数据目录资源策略示例）**