

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 授予資料位置許可
<a name="granting-location-permissions"></a>

中的資料位置許可 AWS Lake Formation 可讓主體建立和修改指向指定已註冊 Amazon S3 位置的 Data Catalog 資源。除了 Lake Formation 資料許可之外，資料位置許可還可用於保護資料湖中的資訊。

Lake Formation 不會將 AWS Resource Access Manager (AWS RAM) 服務用於資料位置許可授予，因此您不需要接受資料位置許可的資源共用邀請。

您可以使用 Lake Formation 主控台、API 或 AWS Command Line Interface () 授予資料位置許可AWS CLI。

**注意**  
若要讓授予成功，您必須先向 Lake Formation 註冊資料位置。

**另請參閱:**  
[Underlying data access control](access-control-underlying-data.md#data-location-permissions)

**Topics**
+ [授予資料位置許可 （相同帳戶）](granting-location-permissions-local.md)
+ [授予資料位置許可 （外部帳戶）](granting-location-permissions-external.md)
+ [授予與您的帳戶共用之資料位置的許可](regranting-locations.md)

# 授予資料位置許可 （相同帳戶）
<a name="granting-location-permissions-local"></a>

請依照下列步驟，將資料位置許可授予您 AWS 帳戶中的委託人。您可以使用 Lake Formation 主控台、API 或 AWS Command Line Interface () 來授予許可AWS CLI。

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

**授予資料位置許可 （相同帳戶）**

1. 在 https：//[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) 開啟 AWS Lake Formation 主控台。以資料湖管理員或擁有所需資料位置之許可的委託人身分登入。

1. 在導覽窗格中的**許可**下，選擇**資料位置**。

1. 選擇 **Grant** (授予)。

1. 在**授予許可**對話方塊中，確定已選取**我的帳戶**圖磚。然後提供下列資訊：
   + 針對 **IAM 使用者和角色**，選擇一或多個主體。
   + 對於 **SAML 和 Amazon Quick 使用者和群組**，為透過 SAML 聯合的使用者或群組輸入一或多個 Amazon Resource Name (ARNs)，或為 Amazon Quick 使用者或群組輸入 ARNs。

     一次輸入一個 ARN，並在每個 ARN 之後按 **Enter**。如需如何建構 ARNs 的資訊，請參閱 [Lake Formation 授予和撤銷 AWS CLI 命令](lf-permissions-reference.md#perm-command-format)。
   + 針對**儲存位置**，選擇**瀏覽**，然後選擇 Amazon Simple Storage Service (Amazon S3) 儲存位置。位置必須向 Lake Formation 註冊。再次選擇**瀏覽**以新增其他位置。您也可以輸入位置，但請務必在位置前面加上 `s3://`。
   + 對於**註冊帳戶位置**，輸入註冊位置 AWS 的帳戶 ID。這會預設為您的帳戶 ID。在跨帳戶案例中，收件人帳戶中的資料湖管理員可以在將資料位置許可授予收件人帳戶中的其他主體時，在此處指定擁有者帳戶。
   + （選用） 若要讓選取的主體授予所選位置的資料位置許可，請選取**可授予**。  
![\[在授予許可對話方塊中，會選取使用者 datalake_user 和儲存位置 s3：//retail/transactions/q119。\]](http://docs.aws.amazon.com/zh_tw/lake-formation/latest/dg/images/grant-location-dialog-local.png)

1. 選擇 **Grant** (授予)。

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

**授予資料位置許可 （相同帳戶）**
+ 執行`grant-permissions`命令，並`DATA_LOCATION_ACCESS`授予委託人，指定 Amazon S3 路徑做為資源。  
**Example**  

  下列範例`s3://retail`會將 上的資料位置許可授予使用者 `datalake_user1`。

  ```
  aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:user/datalake_user1 --permissions "DATA_LOCATION_ACCESS" --resource '{ "DataLocation": {"ResourceArn":"arn:aws:s3:::retail"}}'
  ```  
**Example**  

  下列範例`s3://retail`會將 上的資料位置許可授予 `ALLIAMPrincipals` 群組。

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

------

**另請參閱:**  
[Lake Formation 許可參考](lf-permissions-reference.md)

# 授予資料位置許可 （外部帳戶）
<a name="granting-location-permissions-external"></a>

請依照下列步驟，將資料位置許可授予外部 AWS 帳戶或組織。

您可以使用 Lake Formation 主控台、API 或 AWS Command Line Interface () 來授予許可AWS CLI。

**開始之前**  
確定符合所有跨帳戶存取先決條件。如需詳細資訊，請參閱[先決條件](cross-account-prereqs.md)。

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

**授予資料位置許可 （外部帳戶、主控台）**

1. 在 https：//[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) 開啟 AWS Lake Formation 主控台。以資料湖管理員身分登入。

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_tw/lake-formation/latest/dg/images/grant-location-dialog-external.png)

1. 選取**可授予**。

1. 選擇 **Grant** (授予)。

------
#### [ 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"}}'
  ```

  此命令`DATA_LOCATION_ACCESS`使用授予選項授予 Amazon S3 位置 上的帳戶 1111-2222-3333`s3://retail/transactions/2020q1`，該位置為帳戶 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"}}'
  ```

  此命令`DATA_LOCATION_ACCESS`會將授予選項授予 Amazon S3 位置 `o-abcdefghijkl`上的組織`s3://retail/transactions/2020q1`，該位置為帳戶 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"}}'
  ```

  此命令`DATA_LOCATION_ACCESS`會授予帳戶 1111-2222-3333 中位於 Amazon S3 位置 的委託人`s3://retail/transactions/2020q1`，該位置為帳戶 1234-5678-9012 所擁有。  
**Example**  

  下列範例`s3://retail`會將 上的資料位置許可授予外部帳戶中的 `ALLIAMPrincipals` 群組。

  ```
  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)

# 授予與您的帳戶共用之資料位置的許可
<a name="regranting-locations"></a>

與 AWS 您的帳戶共用 Data Catalog 資源後，身為資料湖管理員，您可以將資源的許可授予帳戶中的其他主體。如果在共用資料表上授予`ALTER`許可，且資料表指向已註冊的 Amazon S3 位置，您還必須在該位置授予資料位置許可。同樣地，如果在共用資料庫上授予 `CREATE_TABLE`或 `ALTER`許可，且資料庫具有指向已註冊位置的位置屬性，您也必須授予該位置的資料位置許可。

若要將共用位置上的資料位置許可授予您帳戶中的委託人，您的帳戶必須已使用 授予選項授予該位置的`DATA_LOCATION_ACCESS`許可。然後，當您`DATA_LOCATION_ACCESS`將 授予帳戶中的另一個委託人時，您必須包含擁有者帳戶的資料目錄 ID (AWS 帳戶 ID)。擁有者帳戶是註冊位置的帳戶。

您可以使用 AWS Lake Formation 主控台、 API 或 AWS Command Line Interface (AWS CLI 授予資料位置許可。

**授予與您的帳戶共用之資料位置的許可 （主控台）**
+ 請遵循 [授予資料位置許可 （相同帳戶）](granting-location-permissions-local.md) 中的步驟。

  對於**儲存位置**，您必須輸入位置。針對**註冊帳戶位置**，輸入擁有者 AWS 帳戶的帳戶 ID。

**授予與您帳戶共用之資料位置的許可 (AWS CLI)**
+ 輸入下列其中一個命令，將許可授予使用者或角色。

  ```
  aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:user/<user-name> --permissions "DATA_LOCATION_ACCESS" --resource '{ "DataLocation": {"CatalogId":"<owner-account-ID>","ResourceArn":"arn:aws:s3:::<s3-location>"}}'
  aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:role/<role-name> --permissions "DATA_LOCATION_ACCESS" --resource '{ "DataLocation": {"CatalogId":"<owner-account-ID>","ResourceArn":"arn:aws:s3:::<s3-location>"}}'
  ```