

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

# 授予数据位置权限（外部账户）
<a name="granting-location-permissions-external"></a>

按照以下步骤向外部 AWS 账户或组织授予数据定位权限。

您可以使用 Lake Formation 控制台、API 或 AWS Command Line Interface (AWS CLI) 授予权限。

**开始前的准备工作**  
确保满足所有跨账户访问先决条件。有关更多信息，请参阅 [先决条件](cross-account-prereqs.md)。

------
#### [ AWS 管理控制台 ]

**授予数据位置权限（外部账户，使用控制台）**

1. 打开 AWS Lake Formation 控制台，网址为[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)。以数据湖管理员身份登录。

1. 在导航窗格的**权限**下，选择**数据位置**，然后选择**授权**。

1. 在**授予权限**对话框中，选择**外部账户**磁贴。

1. 提供以下信息：
   + 对于**AWS 账户 ID 或 AWS 组织 ID**，请输入有效的 AWS 账号 IDs、组织或组织单位 IDs。

     在每个 ID 后按 **Enter**。

     组织 ID 由“o-”后跟 10 到 32 个小写字母或数字组成。

     组织单位 ID 由“ou-”后跟 4 到 32 个小写字母或数字（包含 OU 的根的 ID）组成。此字符串后跟第二个“-”（连字符）和 8 到 32 个额外的小写字母或数字。
   + 在**存储位置**下，选择**浏览**，然后选择一个 Amazon Simple Storage Service (Amazon S3) 存储位置。该位置必须在 Lake Formation 中注册。  
![在 “授予权限” 对话框中，选中了 “外部 AWS 帐户” 单选按钮，指定了帐户并指定了存储位置。](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/grant-location-dialog-external.png)

1. 选择**可授予**。

1. 选择**授权**。

------
#### [ AWS CLI ]

**要授予数据位置权限（外部账户， AWS CLI）**
+ 要向外部 AWS 账户授予权限，请输入类似于以下内容的命令。

  ```
  aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=111122223333  --permissions "DATA_LOCATION_ACCESS" --permissions-with-grant-option "DATA_LOCATION_ACCESS" --resource '{ "DataLocation": {"CatalogId":"123456789012","ResourceArn":"arn:aws:s3::retail/transactions/2020q1"}}'
  ```

  此命令使用授予选项向账户 1111-2222-3333 授予对 Amazon S3 位置 `s3://retail/transactions/2020q1` 的 `DATA_LOCATION_ACCESS` 权限，该位置由账户 1234-5678-9012 拥有。

  要向组织授予权限，请输入类似如下的命令。

  ```
  aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:organizations::111122223333:organization/o-abcdefghijkl --permissions "DATA_LOCATION_ACCESS" --permissions-with-grant-option "DATA_LOCATION_ACCESS" --resource '{"DataLocation": {"CatalogId":"123456789012","ResourceArn":"arn:aws:s3::retail/transactions/2020q1"}}'
  ```

  此命令使用授予选项向组织 `o-abcdefghijkl` 授予对 Amazon S3 位置 `s3://retail/transactions/2020q1` 的 `DATA_LOCATION_ACCESS` 权限，该位置由账户 1234-5678-9012 拥有。

   要向外部 AWS 账户中的委托人授予权限，请输入类似于以下内容的命令。

  ```
  aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DATA_LOCATION_ACCESS" --resource '{ "DataLocation": {"ResourceArn":"arn:aws:s3::retail/transactions/2020q1", "CatalogId": "123456789012"}}'
  ```

  此命令使用授予选项向账户 1111-2222-3333 中的主体授予对 Amazon S3 位置 `s3://retail/transactions/2020q1` 的 `DATA_LOCATION_ACCESS` 权限，该位置由账户 1234-5678-9012 拥有。  
**Example**  

  以下示例向外部账户中的 `ALLIAMPrincipals` 组授予对 `s3://retail` 的数据位置权限。

  ```
  aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=111122223333:IAMPrincipals --permissions "DATA_LOCATION_ACCESS" --resource '{ "DataLocation": {"ResourceArn":"arn:aws:s3:::retail", "CatalogId": "123456789012"}}'
  ```

------

**另请参见：**  
[Lake Formation 权限参考](lf-permissions-reference.md)