

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

# Lake Formation 中的跨帳戶資料共用
<a name="cross-account-permissions"></a>

Lake Formation 跨帳戶功能可讓使用者安全地跨多個 AWS 組織共用分散式資料湖 AWS 帳戶，或直接與另一個帳戶中的 IAM 主體共用，提供對 Data Catalog 中繼資料和基礎資料的精細存取。大型企業通常會使用多個 AWS 帳戶，其中許多帳戶可能需要存取由單一 管理的資料湖 AWS 帳戶。使用者和 AWS Glue 擷取、轉換和載入 (ETL) 任務可以跨多個帳戶查詢和聯結資料表，並仍然利用 Lake Formation 資料表層級和資料欄層級的資料保護。

當您將 Data Catalog 資源的 Lake Formation 許可授予外部帳戶或直接授予另一個帳戶中的 IAM 主體時，Lake Formation 會使用 AWS Resource Access Manager (AWS RAM) 服務來共用資源。如果承授者帳戶與授予者帳戶位於相同的組織中，則承授者可立即使用共享資源。如果承授者帳戶不在同一個組織中， AWS RAM 會傳送邀請給承授者帳戶，以接受或拒絕資源授予。然後，若要讓共用資源可用，承授者帳戶中的資料湖管理員必須使用 AWS RAM 主控台或 AWS CLI 接受邀請。

 Lake Formation 支援以混合存取模式與外部帳戶共用 Data Catalog 資源。混合存取模式可讓您靈活地選擇性地為 中的資料庫和資料表啟用 Lake Formation 許可 AWS Glue Data Catalog。  使用混合存取模式時，您現在有一個增量路徑，可讓您為一組特定使用者設定 Lake Formation 許可，而不會中斷其他現有使用者或工作負載的許可政策。

如需詳細資訊，請參閱[混合存取模式](hybrid-access-mode.md)。

**直接跨帳戶共用**  
授權委託人可以與外部帳戶中的 IAM 委託人明確共用資源。當帳戶擁有者想要控制外部帳戶中誰可以存取資源時，此功能很有用。IAM 主體收到的許可將是直接授予的聯集，而帳戶層級授予會層疊到主體。只有許可授予的收件人可以檢視直接跨帳戶授予。接收資源共用的委託人無法與其他委託人共用資源。

**共用 Data Catalog 資源的方法**  
使用單一 Lake Formation 授予操作，您可以授予下列 Data Catalog 資源的跨帳戶許可。
+ 資料庫
+ 個別資料表 （具有選用的資料欄篩選）
+ 幾個選取的資料表
+ 資料庫中的所有資料表 （使用所有資料表萬用字元）

有兩個選項可讓您與另一個帳戶中的另一個 AWS 帳戶 或 IAM 主體共用資料庫和資料表。
+ Lake Formation 標籤型存取控制 (LF-TBAC) （建議）

  Lake Formation 標籤型存取控制是一種授權策略，可根據屬性定義許可。您可以使用標籤型存取控制，與外部 IAM 主體、組織和組織單位 (OUs) 共用 Data Catalog 資源 （資料庫 AWS 帳戶、資料表和資料欄）。在 Lake Formation 中，這些屬性稱為 LF 標籤。如需詳細資訊，請參閱[使用 Lake Formation 標籤型存取控制管理資料湖](https://docs.aws.amazon.com/lake-formation/latest/dg/managing-dl-tutorial.html)。
**注意**  
將 Data Catalog 許可 AWS Resource Access Manager 用於跨帳戶授予的 LF-TBAC 方法。  
Lake Formation 現在支援使用 LF-TBAC 方法將跨帳戶許可授予 Organizations 和組織單位。  
若要啟用此功能，您需要將**跨帳戶版本設定**更新為第 **3 版**或更新版本。  
如需詳細資訊，請參閱[更新跨帳戶資料共用版本設定](optimize-ram.md)。
+ Lake Formation 命名資源

  使用具名資源方法的 Lake Formation 跨帳戶資料共用可讓您對外部 AWS 帳戶、IAM 主體、組織或組織單位授予資料目錄資料表和資料庫的 Lake Formation 許可選項。授予操作會自動共用這些資源。

**注意**  
您也可以允許 AWS Glue 爬蟲程式使用 Lake Formation 憑證存取不同帳戶中的資料存放區。如需詳細資訊，請參閱《 AWS Glue 開發人員指南》中的[跨帳戶爬取](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html#cross-account-crawling)。

Athena 和 Amazon Redshift Spectrum 等整合服務需要資源連結，才能在查詢中包含共用資源。如需資源連結的詳細資訊，請參閱 [資源連結在 Lake Formation 中如何運作](resource-links-about.md)。

如需考量和限制，請參閱 [跨帳戶資料共用最佳實務和考量事項](cross-account-notes.md)。

**Topics**
+ [先決條件](cross-account-prereqs.md)
+ [更新跨帳戶資料共用版本設定](optimize-ram.md)
+ [從外部帳戶跨 AWS 帳戶 或 IAM 主體共用 Data Catalog 資料表和資料庫](cross-account-data-share-steps.md)
+ [授予與您帳戶共用之資料庫或資料表的許可](regranting-shared-resources.md)
+ [授予資源連結許可](granting-link-permissions.md)
+ [存取共用資料表的基礎資料](cross-account-read-data.md)
+ [跨帳戶 CloudTrail 記錄](cross-account-logging.md)
+ [使用 AWS Glue和 Lake Formation 管理跨帳戶許可](hybrid-cross-account.md)
+ [使用 GetResourceShares API 操作檢視所有跨帳戶授予](cross-account-getresourcepolicies.md)

**相關主題**  
[Lake Formation 許可概觀](lf-permissions-overview.md)
[存取和檢視共用的 Data Catalog 資料表和資料庫](viewing-shared-resources.md)
[建立資源連結](creating-resource-links.md)
[對跨帳戶存取進行故障診斷](troubleshooting.md#trouble-cross-account)

# 先決條件
<a name="cross-account-prereqs"></a>

在 AWS 您的帳戶可以與另一個帳戶或另一個帳戶中的委託人共用 Data Catalog 資源 （目錄、資料庫和資料表） 之前，以及在您可以存取與帳戶共用的資源之前，必須符合下列先決條件。

**一般跨帳戶資料共用需求**
+ 若要在混合存取模式中共用 Data Catalog 資料庫和資料表，並在聯合目錄中共用物件，您需要將**跨帳戶版本設定**更新為第 **4 版**。
+ 在授予 Data Catalog 資源的跨帳戶許可之前，您必須撤銷資源`IAMAllowedPrincipals`群組中的所有 Lake Formation 許可。如果呼叫委託人具有跨帳戶存取資源的許可，且該`IAMAllowedPrincipals`許可存在於資源上，則 Lake Formation 會擲出 `AccessDeniedException`。

  此要求僅適用於在 Lake Formation 模式中註冊基礎資料位置時。如果您以混合模式註冊資料位置，`IAMAllowedPrincipals`群組許可可以存在於共用資料庫或資料表上。
+  對於包含您要共用之資料表的資料庫，您必須防止新資料表預設授與 `Super`給 `IAMAllowedPrincipals`。在 Lake Formation 主控台上，編輯資料庫並關閉**僅針對此資料庫中的新資料表使用 IAM 存取控制**，或輸入下列 AWS CLI 命令，`database`將 取代為資料庫的名稱。如果基礎資料位置是在混合存取模式中註冊，您不需要變更此預設設定。在混合存取模式中，Lake Formation 可讓您在相同的資源 AWS Glue 上選擇性地強制執行 Amazon S3 和 的 Lake Formation 許可和 IAM 許可政策。

  ```
  aws glue update-database --name database --database-input '{"Name":"database","CreateTableDefaultPermissions":[]}'
  ```
+ 若要授予跨帳戶許可，授予者必須擁有 AWS Glue和 AWS RAM 服務所需的 AWS Identity and Access Management (IAM) 許可。 AWS 受管政策會`AWSLakeFormationCrossAccountManager`授予必要的許可。

  使用 接收資源共享之帳戶中的資料湖管理員 AWS RAM 必須具有下列其他政策。它允許管理員接受 AWS RAM 資源共用邀請。它還允許管理員啟用與組織共用資源。

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

****  

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

------
+ 如果您想要與 AWS Organizations 或組織單位共用 Data Catalog 資源，則必須在其中啟用與組織共用 AWS RAM。

  如需有關如何啟用與組織共用的資訊，請參閱*AWS RAM 《 使用者指南*》中的[啟用與 AWS 組織共用](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-orgs)。

  您必須擁有`ram:EnableSharingWithAwsOrganization`許可，才能與組織共用。
+ 若要直接與另一個帳戶中的 IAM 主體共用資源，您需要將**跨帳戶版本設定**更新為第 **3 版**。此設定可在**資料目錄設定**頁面上取得。如果您使用的是**第 1 版**，請參閱更新設定 的說明[更新跨帳戶資料共用版本設定](optimize-ram.md)。
+ 您無法與另一個帳戶共用使用 AWS Glue 服務受管金鑰加密的 Data Catalog 資源。您只能共用使用客戶加密金鑰加密的 Data Catalog 資源，而且接收資源共用的帳戶必須具有 Data Catalog 加密金鑰的許可，才能解密物件。

**使用 LF-TBAC 需求的跨帳戶資料共用**
+  若要與 AWS Organizations 和組織單位 (OUs) 共用 Data Catalog 資源，您需要將**跨帳戶版本設定**更新為以上第 **3 版**。
+ 若要與**跨帳戶版本設定**第 3 版共用 Data Catalog 資源，授予者需要擁有`AWSLakeFormationCrossAccountManager`您帳戶中 AWS 受管政策中定義的 IAM 許可。
+ 如果您使用的是**跨帳戶版本設定的第 1 版或第 2 版**，您必須擁有啟用 LF-TBAC 的資料目錄資源政策 (`glue:PutResourcePolicy`)。如需詳細資訊，請參閱[使用 AWS Glue和 Lake Formation 管理跨帳戶許可](hybrid-cross-account.md)。
+ 如果您目前正在使用 AWS Glue Data Catalog 資源政策來共用資源，而且想要使用跨帳戶**版本設定的版本 3 授予跨帳戶**許可，則必須使用 `glue:PutResourcePolicy` API 操作在資料目錄設定中新增`glue:ShareResource`許可，如 [使用 AWS Glue和 Lake Formation 管理跨帳戶許可](hybrid-cross-account.md)一節所示。如果您的帳戶未使用 AWS Glue Data Catalog 資源政策 （第 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"
        ]
      }
  ```
+ 如果您的帳戶已使用 AWS Glue Data Catalog 資源政策進行跨帳戶共用，且您目前使用具名資源方法或 LF-TBAC 搭配**跨帳戶設定**第 3 版來共用資源，則當您叫用 `glue:PutResourcePolicy` API 操作`'true'`時 AWS RAM ，必須將 `EnableHybrid`引數設定為 。如需詳細資訊，請參閱[使用 AWS Glue和 Lake Formation 管理跨帳戶許可](hybrid-cross-account.md)。

**存取共用資源的每個帳戶中所需的設定**
+ 如果您要與 共用資源 AWS 帳戶，則取用者帳戶中至少有一個使用者必須是資料湖管理員，才能檢視共用資源。如需如何建立資料湖管理員的資訊，請參閱 [建立資料湖管理員](initial-lf-config.md#create-data-lake-admin)。

  資料湖管理員可以將共用資源的 Lake Formation 許可授予帳戶中的其他主體。在資料湖管理員授予資源許可之前，其他主體無法存取共用資源。
+ Athena 和 Redshift Spectrum 等整合服務需要資源連結，才能在查詢中包含共用資源。委託人需要在其 Data Catalog 中建立資源連結，以從另一個 共用資源 AWS 帳戶。如需資源連結的詳細資訊，請參閱 [資源連結在 Lake Formation 中如何運作](resource-links-about.md)。
+ 當資源直接與 IAM 主體共用時，若要使用 Athena 查詢資料表，主體需要建立資源連結。若要建立資源連結，委託人需要 Lake Formation `CREATE_TABLE`或 `CREATE_DATABASE` 許可，以及 `glue:CreateTable`或 IAM `glue:CreateDatabase` 許可。

  如果生產者帳戶在相同資料庫中與相同或另一個委託人共用不同的資料表，則該委託人可以立即查詢資料表。

**注意**  
對於資料湖管理員和資料湖管理員已授予許可的主體，共用資源會顯示在資料目錄中，就像是本機 （擁有） 資源一樣。擷取、轉換和載入 (ETL) 任務可以存取共用資源的基礎資料。  
對於共用資源，Lake Formation 主控台上的**資料表**和**資料庫**頁面會顯示擁有者的帳戶 ID。  
存取共用資源的基礎資料時，CloudTrail 日誌事件會在共用資源收件人的 帳戶和資源擁有者的 帳戶中產生。CloudTrail 事件可以包含存取資料的主體 ARN，但前提是收件人帳戶選擇在日誌中包含主體 ARN。如需詳細資訊，請參閱[跨帳戶 CloudTrail 記錄](cross-account-logging.md)。

# 更新跨帳戶資料共用版本設定
<a name="optimize-ram"></a>

 會不時 AWS Lake Formation 更新跨帳戶資料共用設定，以區分對 AWS RAM 用量所做的變更，並支援對跨帳戶資料共用功能所做的更新。當 Lake Formation 執行此操作時，它會建立新的**跨帳戶版本設定**版本。

## 跨帳戶版本設定的主要差異
<a name="cross-account-version-diff"></a>

如需跨帳戶資料共用在不同**跨帳戶版本設定**下運作方式的詳細資訊，請參閱下列各節。

**注意**  
若要與其他帳戶共用資料，授予者必須具有`AWSLakeFormationCrossAccountManager`受管 IAM 政策許可。這是所有版本的先決條件。  
更新**跨帳戶版本設定**不會影響收件人對共用資源所擁有的許可。這適用於從第 1 版更新到第 2 版、將第 2 版更新到第 3 版，以及將第 1 版更新到第 3 版。更新版本時，請參閱下列考量事項。

**第 1 版**  
*具名資源方法：*將每個跨帳戶 Lake Formation 許可授予映射至一個 AWS RAM 資源共享。使用者 （授權方角色或委託人） 不需要額外的許可。  
*LF-TBAC 方法：*跨帳戶 Lake Formation 許可授予不會用來 AWS RAM 共用資料。使用者必須擁有 `glue:PutResourcePolicy` 許可。  
*更新版本的好處：*初始版本 - 不適用。  
*更新版本時的考量事項：*初始版本 - 不適用

**2 版**  
*具名資源方法：*透過映射具有一個 AWS RAM 資源共享的多個跨帳戶許可授予來最佳化 AWS RAM 資源共享的數量。使用者不需要額外的許可。  
*LF-TBAC 方法：*跨帳戶 Lake Formation 許可授予不會用來 AWS RAM 共用資料。使用者必須擁有 `glue:PutResourcePolicy` 許可。  
*更新版本的優勢：*透過 AWS RAM 容量的最佳使用率進行可擴展的跨帳戶設定。  
*更新版本時的考量：*想要授予跨帳戶 Lake Formation 許可的使用者，必須在 `AWSLakeFormationCrossAccountManager` AWS 受管政策中擁有 許可。否則，您需要有 `ram:AssociateResourceShare`和 `ram:DisassociateResourceShare`許可，才能成功與其他 帳戶共用資源。

**第 3 版**  
*具名資源方法：*透過映射具有一個 AWS RAM 資源共享的多個跨帳戶許可授予來最佳化 AWS RAM 資源共享的數量。使用者不需要額外的許可。  
*LF-TBAC 方法：*Lake Formation 使用 AWS RAM 進行跨帳戶授予。使用者必須將 glue：ShareResource 陳述式新增至`glue:PutResourcePolicy`許可。收件人必須接受來自 的資源共用邀請 AWS RAM。  
*更新版本的優勢： *支援下列功能：  
+ 允許與外部帳戶中的 IAM 主體明確共用資源。

  如需詳細資訊，請參閱[授予 Data Catalog 資源的許可](granting-catalog-permissions.md)。
+ 使用 LF-TBAC 方法對 Organizations 或組織單位 (OUs) 啟用跨帳戶共用。
+ 移除維護跨帳戶授與額外 AWS Glue 政策的額外負荷。
*更新版本時的考量：*當您使用 LF-TBAC 方法共用資源時，如果授予者使用低於第 3 版的版本，且收件人使用第 3 版或更新版本，則授予者會收到下列錯誤訊息：「無效的跨帳戶授予請求。消費者帳戶可選擇加入跨帳戶版本：v3。請將 `CrossAccountVersion` 中的 更新`DataLakeSetting`為最低版本 v3 （服務：AmazonDataCatalog；狀態碼：400；錯誤碼： InvalidInputException)"。不過，如果授予者使用第 3 版，且收件人使用第 1 版或第 2 版，則使用 LF 標籤的跨帳戶授予會順利通過。  
使用具名資源方法進行的跨帳戶授予在不同版本之間相容。即使授予者帳戶使用較舊版本 （第 1 版或第 2 版） 且收件人帳戶使用較新版本 （第 3 版或更高版本），跨帳戶存取功能也能順暢運作，而不會發生任何相容性問題或錯誤。  
若要直接與另一個帳戶中的 IAM 主體共用資源，只有授予者需要使用第 3 版。  
使用 LF-TBAC 方法進行的跨帳戶授予需要使用者在帳戶中擁有 AWS Glue Data Catalog 資源政策。當您更新到第 3 版時，LF-TBAC 授予會使用 AWS RAM。若要允許以 AWS RAM 為基礎的跨帳戶授予成功，您必須將 `glue:ShareResource`陳述式新增至現有的 Data Catalog 資源政策，如 [使用 AWS Glue和 Lake Formation 管理跨帳戶許可](hybrid-cross-account.md)一節所示。

**第 4 版**  
授予者需要第 4 版或更新版本，才能在混合存取模式中共用 Data Catalog 資源，或在聯合目錄中共用物件。

**第 5 版**  
跨帳戶第 5 版增強了跨帳戶資源共用功能，可讓您與另一個帳戶共用不限數量的資料表，消除每個資源類型的先前資源關聯限制。若要開始使用，請透過 Lake Formation 主控台或 API 升級至跨帳戶版本 5。任何新的跨帳戶許可授予都會自動在資源共用中使用萬用字元模式，而不是個別的資源關聯。所有現有的跨帳戶共用都會繼續運作，而且所有現有的 Lake Formation APIs仍然相容。  
*更新版本的優勢：*跨帳戶 v5 可增強跨帳戶共用，讓您可以跨帳戶共用數十萬個資料表。  
*更新版本時的考量：*第 5 版升級之後的新授予會將萬用字元資源模式新增至現有的 AWS Resource Manager 資源共用，或使用萬用字元模式建立新的共用。一旦升級至第 5 版，就不支援降級。

## 最佳化 AWS RAM 資源共用
<a name="optimize-version"></a>

跨帳戶授與的新版本 （第 2 版及更高版本） 會最佳化利用 AWS RAM 容量來最大化跨帳戶用量。當您與外部 AWS 帳戶 或 IAM 主體共用資源時，Lake Formation 可能會建立新的資源共用，或將資源與現有共用建立關聯。透過與現有共享建立關聯，Lake Formation 可減少消費者需要接受的資源共享邀請數量。第 5 版使用萬用字元型資源模式，而不是個別資源關聯，進一步最佳化 RAM 用量，進而大幅減少每個資源共享的資源關聯。

## 透過 TBAC 啟用 AWS RAM 共用或直接與委託人共用資源
<a name="ram-tbac-direct-iam-version"></a>

若要直接與另一個帳戶中的 IAM 主體共用資源，或啟用與 Organizations 或組織單位的 TBAC 跨帳戶共用，您需要將**跨帳戶版本設定**更新為第 3 版。如需 AWS RAM 資源限制的詳細資訊，請參閱 [跨帳戶資料共用最佳實務和考量事項](cross-account-notes.md)。

### 更新跨帳戶版本設定所需的許可
<a name="req-permissions-version-update"></a>

 如果跨帳戶許可授予者具有`AWSLakeFormationCrossAccountManager`受管 IAM 政策許可，則跨帳戶許可授予者角色或委託人不需要額外的許可設定。不過，如果跨帳戶授予者未使用 受管政策，則授予者角色或委託人應具有下列 IAM 許可，才能讓跨帳戶授予的新版本成功。

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

****  

```
  
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "VisualEditor1",
      "Effect": "Allow",
      "Action": [
         "ram:AssociateResourceShare",
         "ram:DisassociateResourceShare",
         "ram:GetResourceShares"
       ],
     "Resource": "*",
     "Condition": {
       "StringLike": {
         "ram:ResourceShareName": "LakeFormation*"
        }
      }
    }
  ]
}
```

------

## 啟用新版本
<a name="version-update-steps"></a>

請依照下列步驟，透過 AWS Lake Formation 主控台或 更新**跨帳戶版本設定** AWS CLI。

------
#### [ Console ]

1. 在**資料目錄**設定頁面的**跨帳戶版本設定**下，選擇**第 2** 版、**第 3** 版、**第 4** 版或**第 5** 版。如果您選取第 **1 版**，Lake Formation 將使用預設資源共用模式。  
![\[畫面顯示帳戶中所有 LF 標籤的許可。\]](http://docs.aws.amazon.com/zh_tw/lake-formation/latest/dg/images/cross-account-version-setting.png)

1. 選擇**儲存**。

------
#### [ AWS Command Line Interface (AWS CLI) ]

使用 `put-data-lake-settings` AWS CLI 命令來設定 `CROSS_ACCOUNT_VERSION` 參數。接受的值為 1、2、3、4 和 5。

```
aws lakeformation put-data-lake-settings --region us-east-1 --data-lake-settings file://settings
{
    "DataLakeAdmins": [
        {
            "DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/test"
        }
    ],
    "CreateDatabaseDefaultPermissions": [],
    "CreateTableDefaultPermissions": [],
    "Parameters": {
        "CROSS_ACCOUNT_VERSION": "3"
    }
}
```

------

**重要**  
選擇**第 2** 版或第 **3 版**後，所有新的**具名資源**授權都會經過新的跨帳戶授權模式。若要以最佳方式使用現有跨帳戶共用的 AWS RAM 容量，建議您撤銷使用較舊版本進行的授予，並在新模式中重新授予。

# 從外部帳戶跨 AWS 帳戶 或 IAM 主體共用 Data Catalog 資料表和資料庫
<a name="cross-account-data-share-steps"></a>

本節包含如何將 Data Catalog 資源的跨帳戶許可授予外部 AWS 帳戶、IAM 主體、 AWS 組織或組織單位的指示。授予操作會自動共用這些資源。

**Topics**
+ [使用標籤型存取控制進行資料共用](cross-account-TBAC.md)
+ [使用具名資源方法的跨帳戶資料共用](cross-account-named-resource.md)

# 使用標籤型存取控制進行資料共用
<a name="cross-account-TBAC"></a>

AWS Lake Formation 標籤型存取控制 (LF-TBAC) 是一種授權策略，可根據屬性定義許可。下列步驟說明如何使用 LF 標籤授予跨帳戶許可。

**在生產者/授權方帳戶上設定必要項目**

1. 新增 LF 標籤。

   1. 以資料湖管理員或 LF 標籤建立者身分登入 Lake Formation 主控台。

   1. 在左側導覽列中，選擇**許可**，以及 **LF 標籤和許可**。

   1. 選擇**新增 LF 標籤**。

      如需建立 LF 標籤的詳細說明，請參閱 [建立 LF 標籤](TBAC-creating-tags.md)。

1. 授予 **描述**和/或**關聯**許可 **LF-Tag 鍵值**對至您帳戶或外部帳戶中的 IAM 主體。

   授予 **LF-Tag 鍵/值**對的許可可讓主體檢視 LF-Tag，並將其指派給 Data Catalog 資源 （資料庫、資料表和資料欄）。

1. 接著，資料湖管理員或具有**關聯**許可的 IAM 主體可以將 LF 標籤指派給資料庫、資料表或資料欄。如需詳細資訊，請參閱[將 LF 標籤指派給 Data Catalog 資源](TBAC-assigning-tags.md)。

1. 接著，使用 LF-Tag 表達式將資料許可授予外部帳戶。這可讓許可的承授者或收件人存取以相同 （多個） 金鑰和 （多個） 值標記的 Data Catalog 資源。

   1. 在導覽窗格中，選擇**許可**和**資料許可**。

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

   1. 在**授予許可**頁面上，針對**委託人**，選擇**外部帳戶**，然後輸入委託人的承授者 AWS 帳戶 ID 或 IAM 角色，或針對委託人 （委託人 ARN) 輸入 Amazon Resource Name (ARN)，如果是直接跨帳戶授予外部委託人。輸入帳戶 ID 後，您需要按 **Enter**。  
![\[具有指定外部帳戶和 LF 標籤鍵/值對的授予許可畫面。\]](http://docs.aws.amazon.com/zh_tw/lake-formation/latest/dg/images/cross-acct-grant-tags.png)

   1. 針對 **LF 標籤或目錄資源**，選擇**符合 LF 標籤的資源 （建議）**。

      1. 選擇選項 **LF-Tag 鍵/值對**或**儲存的 LF-Tag 表達式** 。

      1. **如果您選擇 **LF-Tag 鍵/值對**，請輸入與要與承授者帳戶共用之 Data Catalog 資源相關聯的 LF-Tag 鍵和值 (LF-Tag)**。 ****

         被授予者在 LF-Tag 表達式中獲指派相符 LF-Tag 之 Data Catalog 資源的許可。如果 LF-Tag 表達式指定每個標籤索引鍵的多個值，則任何一個標籤值都可以相符。

   1. 選擇資料庫層級或資料表層級許可，在符合 LF-Tag 表達式的資源上授予 。
**重要**  
由於資料湖管理員必須將共用資源的許可授予承授者帳戶中的主體，因此您必須一律使用授予選項授予跨帳戶許可。

      如需詳細資訊，請參閱[使用主控台授予 LF-Tag 許可](TBAC-granting-tags-console.md)。
**注意**  
收到直接跨帳戶授予的委託人將沒有**可授予許可**選項。

**在接收/承授者帳戶上設定必要**

1. 以消費者帳戶的資料湖管理員身分登入 Lake Formation 主控台。

1.  接著，接收消費者帳戶中的資源共享。

   1.  開啟 AWS RAM 主控台。

   1.  在導覽窗格中，**於與我共用**下，選擇**資源共用**。

   1.  選取資源共用，選擇**接受資源共用**。

1. 當您與其他帳戶共用資源時，資源仍屬於生產者帳戶，且在 Athena 主控台中看不到。若要在 Athena 主控台中顯示資源，您需要建立指向共用資源的資源連結。如需建立資源連結的說明，請參閱 [建立共用 Data Catalog 資料表的資源連結](create-resource-link-table.md) 和 [建立共用 Data Catalog 資料庫的資源連結](create-resource-link-database.md)

   1.  在資料目錄下選擇**資料庫**或**資料表**。

   1. 在資料庫/資料表頁面上，選擇**建立**、**資源連結** 。

   1. 為資料庫資源連結輸入下列資訊：
      + **資源連結名稱** – 資源連結的唯一名稱。
      + **目的地目錄** – 您要建立資源連結的目錄。
      + **共用資料庫區域** – 如果您要在不同區域中建立資源連結，則與您共用的資料庫區域。
      + **共用資料庫** – 選擇共用資料庫。
      + **共用資料庫的目錄 ID** – 輸入共用資料庫的目錄 ID。

   1.  選擇**建立**。您可以在資料庫清單中看到新建立的資源連結。

   同樣地，您可以建立共用資料表的資源連結。

1. 現在授予您要共用資源之 IAM 主體的資源連結**描述**許可。

   1. 在**資料庫/資料表**頁面上，選取資源連結，然後在**動作**功能表中選擇**授予**。

   1. 在**授予許可**區段中，選取 **IAM 使用者和角色**。

   1. 選擇您要授予資源連結存取權的 IAM 角色。

   1. 在**資源連結**許可區段中，選取**描述**。

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

1. 接下來，將 **LF-Tag 鍵值許可**授予取用者帳戶中的主體。

   您應該可以在 Lake Formation 主控台的**許可**、LF 標籤**和許可下，找到消費者帳戶中與您共用的 LF 標籤**。您可以將從授予者共用的標籤與從授予者帳戶共用的資源建立關聯，其中包括：資料庫、資料表和資料欄。您可以進一步將資源的許可授予其他委託人。  
![\[畫面顯示帳戶中 LF-Tags 的許可。\]](http://docs.aws.amazon.com/zh_tw/lake-formation/latest/dg/images/lf-tag-permissions.png)

   1.  在導覽窗格**的許可**、**資料許可**下，選擇**授予**。

   1.  在**授予許可**頁面上，選擇 **IAM 使用者和角色**。

   1. 接著，選擇您帳戶中的 IAM 使用者和角色，以授予共用資料庫/資料表的存取權。

   1. 接著，針對 **LF 標籤或目錄資源**，選擇**符合 LF 標籤的資源**。

   1.  接著，選擇與您共用之 LF 標籤的金鑰和值。

   1.  接著，選擇您要授予 IAM 使用者和角色的資料庫和資料表許可。您也可以選擇**可授予許可**，讓 IAM 使用者和角色將許可授予其他使用者/角色。

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

   1. 您可以在 Lake Formation 主控台的資料許可下檢視**許可**授予。

# 使用具名資源方法的跨帳戶資料共用
<a name="cross-account-named-resource"></a>

您可以直接將許可授予另一個 AWS 帳戶中的委託人，或授予外部 AWS 帳戶 或 AWS Organizations。將 Lake Formation 許可授予 Organizations 或組織單位等同於將許可授予該組織或組織單位 AWS 帳戶 中的每個單位。

當您將許可授予外部帳戶或組織時，您必須包含**可授予許可**選項。只有外部帳戶中的資料湖管理員可以存取共用資源，直到管理員將共用資源的許可授予外部帳戶中的其他主體為止。

**注意**  
從外部帳戶將許可直接授予 IAM 主體時，不支援**可授予**的許可選項。

遵循 中的指示[使用具名資源方法授與資料庫許可](granting-database-permissions.md)，使用具名資源方法授予跨帳戶許可。

 下列影片示範如何使用 Lake Formation 與 AWS 組織共用資料。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/S-Mdcmq6oPM?controls=0&/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/S-Mdcmq6oPM?controls=0&)


# 授予與您帳戶共用之資料庫或資料表的許可
<a name="regranting-shared-resources"></a>

與您的帳戶 AWS 共用屬於另一個 AWS 帳戶的 Data Catalog 資源之後，身為資料湖管理員，您可以將共用資源的許可授予帳戶中的其他主體。不過，您無法將資源的許可授予其他 AWS 帳戶或組織。

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

**授予共用資料庫的許可 （命名資源方法、主控台）**
+ 請遵循中的說明進行[使用具名資源方法授與資料庫許可](granting-database-permissions.md) 在 **LF 標籤或目錄資源**下的**資料庫**清單中，確保您選取外部帳戶中的資料庫，而不是資料庫的資源連結。

  如果您在資料庫清單中看不到資料庫，請確定您已接受資料庫的 AWS Resource Access Manager (AWS RAM) 資源共享邀請。如需詳細資訊，請參閱[從 接受資源共享邀請 AWS RAM](accepting-ram-invite.md)。

  此外，對於 `CREATE_TABLE`和 `ALTER`許可，請遵循 中的指示[授予資料位置許可 （相同帳戶）](granting-location-permissions-local.md)，並務必在**註冊帳戶位置**欄位中輸入擁有的帳戶 ID。

**授予共用資料表的許可 （命名資源方法、主控台）**
+ 請遵循中的說明進行[使用具名資源方法授予資料表許可](granting-table-permissions.md) 在 **LF 標籤或目錄資源**下的**資料庫**清單中，請確定您在外部帳戶中選取資料庫，而不是資料庫的資源連結。

  如果您在資料表清單中看不到資料表，請確定您已接受 AWS RAM 資料表的資源共用邀請。如需詳細資訊，請參閱[從 接受資源共享邀請 AWS RAM](accepting-ram-invite.md)。

  此外，對於 `ALTER`許可，請遵循 中的指示[授予資料位置許可 （相同帳戶）](granting-location-permissions-local.md)，並務必在**註冊帳戶位置**欄位中輸入擁有的帳戶 ID。

**若要授予共用資源的許可 (LF-TBAC 方法、主控台）**
+ 請遵循中的說明進行[授予 Data Catalog 許可](granting-catalog-perms-TBAC.md#granting-cat-perms-TBAC-console) 在 **LF 標籤或目錄資源**區段中，授予外部帳戶授予您帳戶的確切 LF 標籤表達式，或該表達式的子集。

  例如，如果外部帳戶使用授予選項將 LF-Tag 運算式授予`module=customers AND environment=production`您的帳戶，則身為資料湖管理員，您可以將該相同運算式或 `module=customers` `environment=production` 授予您帳戶中的委託人。您只能授予透過 LF-Tag 表達式授予資源的相同或一部分 Lake Formation 許可 （例如 `ALTER`、 `SELECT`等）。

**授予共用資料表的許可 （命名資源方法） AWS CLI**
+ 輸入與以下相似的命令。在此範例中：
  +  AWS 您的帳戶 ID 為 1111-2222-3333。
  + 擁有資料表並將其授予您帳戶的 帳戶為 1234-5678-9012。
  + 正在共用資料表上將 `SELECT`許可授予`pageviews`使用者 `datalake_user1`。該使用者是您帳戶中的委託人。
  + `pageviews` 資料表位於 `analytics`資料庫中，其為帳戶 1234-5678-9012 所擁有。

  ```
  aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --resource '{ "Table": {"CatalogId":"123456789012", "DatabaseName":"analytics", "Name":"pageviews"}}'
  ```

  請注意，必須在 `resource`引數的 `CatalogId` 屬性中指定擁有的帳戶。

# 授予資源連結許可
<a name="granting-link-permissions"></a>

請依照下列步驟，將一或多個資源連結的 AWS Lake Formation 許可授予您 AWS 帳戶中的委託人。

建立資源連結之後，只有您可以檢視和存取它。（這假設未針對資料庫啟用**此資料庫中的新資料表僅使用 IAM 存取控制**。) 若要允許帳戶中的其他主體存取資源連結，請授予至少 `DESCRIBE`許可。

**重要**  
授予資源連結的許可不會授予目標 （連結） 資料庫或資料表的許可。您必須分別授予目標的許可。

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

------
#### [ console ]

**使用 Lake Formation 主控台授予資源連結許可**

1. 執行以下任意一項：
   + 對於資料庫資源連結，請遵循 中的步驟[使用具名資源方法授與資料庫許可](granting-database-permissions.md)。 執行下列動作：

     1.  從 Data Catalog， **Databases** 下的資料庫清單中選取資源連結。

     1.  選擇**授予**以開啟**授予許可**頁面。

     1.  指定要授予許可的委託人。

     1.  **目錄**和**資料庫**欄位會填入。
   + 對於資料表資源連結，請依照 中的步驟[使用具名資源方法授予資料表許可](granting-table-permissions.md)執行下列動作：

     1.  從 Data Catalog， **Tables** 下的資料表清單中選取資源連結。

     1. 開啟**授予許可**頁面。

     1.  指定主體。

     1.  **目錄**、**資料庫、****資料表**欄位會填入。

     1.  指定主體。

1. 在**許可**下，選取要授予的許可。或者，選取可授予的許可。  
![\[許可區段包含單一圖磚。圖磚具有一組核取方塊，用於授予資源連結許可。核取方塊包括捨棄和描述。在該群組下方是可授予許可的另一個相同核取方塊群組。\]](http://docs.aws.amazon.com/zh_tw/lake-formation/latest/dg/images/grant-resource-link-permissions-TBAC.png)

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

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

**使用 授予資源連結許可 AWS CLI**
+ 執行 `grant-permissions`命令，指定資源連結做為資源。  
**Example**  

  此範例`DESCRIBE`會授予`issues` AWS 帳戶 1111-2222-3333 `incidents-link` 中資料庫中資料表資源連結`datalake_user1`上的使用者。

  ```
  1. aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DESCRIBE" --resource '{ "Table": {"DatabaseName":"issues", "Name":"incidents-link"}}'
  ```

------

**另請參閱:**  
 [建立資源連結](creating-resource-links.md) 
 [Lake Formation 許可參考](lf-permissions-reference.md) 

# 存取共用資料表的基礎資料
<a name="cross-account-read-data"></a>

假設 AWS 帳戶 A 與帳戶 B 共用 Data Catalog 資料表，例如，`SELECT`透過將資料表上的授予選項授予帳戶 B。若要讓帳戶 B 中的委託人能夠讀取共用資料表的基礎資料，必須符合下列條件：
+ 帳戶 B 中的資料湖管理員必須接受共用。（如果帳戶 A 和 B 位於相同組織中，或使用 Lake Formation 標籤型存取控制方法進行授予，則不需要這麼做。)
+ 資料湖管理員必須向委託人重新授予共用資料表上帳戶 A 的 Lake Formation `SELECT`許可。
+ 委託人必須在資料表、包含它的資料庫以及帳戶 A Data Catalog 上具有下列 IAM 許可。
**注意**  
在下列 IAM 政策中：  
以 AWS 帳戶 A 的帳戶 ID 取代 *<account-id-A>*。
將 *<region>* 取代為有效的區域。
將 *<database>* 取代為帳戶 A 中包含共用資料表的資料庫名稱。
將 *<table>* 取代為共用資料表的名稱。

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "glue:GetTable",
              "glue:GetTables",
              "glue:GetPartition",
              "glue:GetPartitions",
              "glue:BatchGetPartition",
              "glue:GetDatabase",
              "glue:GetDatabases"
             ],
             "Resource": [
              "arn:aws:glue:us-east-1:111122223333:table/<database>/<table>",
              "arn:aws:glue:us-east-1:111122223333:database/<database>",
              "arn:aws:glue:us-east-1:111122223333:catalog"
             ]
          },
          {
            "Effect": "Allow",
            "Action": [
              "lakeformation:GetDataAccess"
             ],
            "Resource": [
              "*"
             ]
      }
     ]
  }
  ```

------

**另請參閱:**  
[從 接受資源共享邀請 AWS RAM](accepting-ram-invite.md)

# 跨帳戶 CloudTrail 記錄
<a name="cross-account-logging"></a>

Lake Formation 提供對資料湖中資料的所有跨帳戶存取的集中式稽核線索。當收件人 AWS 帳戶存取共用資料表中的資料時，Lake Formation 會將 CloudTrail 事件複製到擁有帳戶的 CloudTrail 日誌。複製的事件包括透過整合服務查詢資料，例如 Amazon Athena 和 Amazon Redshift Spectrum，以及依AWS Glue任務存取資料。

Data Catalog 資源上跨帳戶操作的 CloudTrail 事件也會類似地複製。

身為資源擁有者，如果您在 Amazon S3 中啟用物件層級記錄，您可以執行將 S3 CloudTrail 事件與 Lake Formation CloudTrail 事件聯結的查詢，以判斷已存取 S3 儲存貯體的帳戶。

**Topics**
+ [在跨帳戶 CloudTrail 日誌中包含主體身分](#cross-account-logging-optin)
+ [查詢 Amazon S3 跨帳戶存取的 CloudTrail 日誌](#cross-account-logging-s3)

## 在跨帳戶 CloudTrail 日誌中包含主體身分
<a name="cross-account-logging-optin"></a>

根據預設，跨帳戶 CloudTrail 事件會新增至共用資源收件人的日誌，並複製到資源擁有者的日誌，只包含外部帳戶主體的 AWS 主體 ID，而不是主體的人類可讀取 Amazon Resource Name (ARN) （主體 ARN)。在信任的界限內共用資源時，例如在同一個組織或團隊內，您可以選擇在 CloudTrail 事件中包含委託人 ARN。然後，資源擁有者帳戶可以追蹤收件人帳戶中存取其擁有資源的主體。

**重要**  
身為共用資源收件人，若要在您自己的 CloudTrail 日誌中查看事件中的委託人 ARN，您必須選擇與擁有者帳戶共用委託人 ARN。  
如果資料存取是透過資源連結進行，則會在共用資源收件人帳戶中記錄兩個事件：一個用於資源連結存取，另一個用於目標資源存取。資源連結存取的事件*包含*委託人 ARN。目標資源存取的事件不包含沒有選擇加入的委託人 ARN。資源連結存取事件不會複製到擁有者帳戶。

以下是預設跨帳戶 CloudTrail 事件 （未選擇加入） 的摘錄。執行資料存取的帳戶為 1111-2222-3333。這是顯示在呼叫帳戶和資源擁有者帳戶中的日誌。Lake Formation 會在跨帳戶案例中的兩個帳戶中填入日誌。

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "AWSAccount",
        "principalId": "AROAQGFTBBBGOBWV2EMZA:GlueJobRunnerSession",
        "accountId": "111122223333"
    },
    "eventSource": "lakeformation.amazonaws.com",
    "eventName": "GetDataAccess",
...
...
    "additionalEventData": {
        "requesterService": "GLUE_JOB",
        "lakeFormationRoleSessionName": "AWSLF-00-GL-111122223333-G13T0Rmng2"
    },
...
}
```

身為共用資源取用者，當您選擇加入委託人 ARN 時，摘錄會變成以下內容。`lakeFormationPrincipal` 欄位代表透過 Amazon Athena、Amazon Redshift Spectrum 或 AWS Glue任務執行查詢的最終角色或使用者。

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "AWSAccount",
        "principalId": "AROAQGFTBBBGOBWV2EMZA:GlueJobRunnerSession",
        "accountId": "111122223333"
    },
    "eventSource": "lakeformation.amazonaws.com",
    "eventName": "GetDataAccess",
...
...
    "additionalEventData": {
        "requesterService": "GLUE_JOB",
        "lakeFormationPrincipal": "arn:aws:iam::111122223333:role/ETL-Glue-Role",
        "lakeFormationRoleSessionName": "AWSLF-00-GL-111122223333-G13T0Rmng2"
    },
...
}
```

**選擇在跨帳戶 CloudTrail 日誌中包含主體 ARNs**

1. 開啟 Lake Formation 主控台，網址為 [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)。

   以`Administrator`使用者身分登入，或使用 IAM `Administrator Access` 政策的使用者登入。

1. 在導覽窗格中，選擇**設定**。

1. 在**資料目錄設定**頁面上，於**資源擁有者****的預設許可 AWS CloudTrail**區段中，輸入一或多個 AWS 資源擁有者帳戶 IDs。

   在每個帳戶 ID 之後按 **Enter**。

1. 選擇**儲存**。

   現在，共用資源收件人和資源擁有者的日誌中存放的跨帳戶 CloudTrail 事件都包含主體 ARN。

## 查詢 Amazon S3 跨帳戶存取的 CloudTrail 日誌
<a name="cross-account-logging-s3"></a>

身為共用資源擁有者，您可以查詢 S3 CloudTrail 日誌，以判斷已存取 Amazon S3 儲存貯體的帳戶 （前提是您在 Amazon S3 中啟用物件層級記錄）。這僅適用於您向 Lake Formation 註冊的 S3 位置。如果共用資源消費者選擇在 Lake Formation CloudTrail 日誌中包含主體 ARNs，您可以判斷存取儲存貯體的角色或使用者。

使用 執行查詢時 Amazon Athena，您可以在工作階段名稱屬性上加入 Lake Formation CloudTrail 事件和 S3 CloudTrail 事件。查詢也可以篩選 上的 Lake Formation 事件`eventName="GetDataAccess"`，以及 `eventName="Get Object"`或 上的 S3 事件`eventName="Put Object"`。

以下是 Lake Formation 跨帳戶 CloudTrail 事件的摘錄，其中已註冊 S3 位置中的資料已存取。

```
{
  "eventSource": "lakeformation.amazonaws.com",
  "eventName": "GetDataAccess",
  ..............
  ..............
  "additionalEventData": {
    "requesterService": "GLUE_JOB",
    "lakeFormationPrincipal": "arn:aws:iam::111122223333:role/ETL-Glue-Role",
    "lakeFormationRoleSessionName": "AWSLF-00-GL-111122223333-B8JSAjo5QA"
   }
}
```

`lakeFormationRoleSessionName` 索引鍵值 `AWSLF-00-GL-111122223333-B8JSAjo5QA`可與 S3 CloudTrail 事件的索引`principalId`鍵中的工作階段名稱聯結。以下是 S3 CloudTrail 事件的摘錄。它會顯示工作階段名稱的位置。

```
{
   "eventSource": "s3.amazonaws.com",
   "eventName": "Get Object"
   ..............
   ..............
   "principalId": "AROAQSOX5XXUR7D6RMYLR:AWSLF-00-GL-111122223333-B8JSAjo5QA",
   "arn": "arn:aws:sets::111122223333:assumed-role/Deformationally/AWSLF-00-GL-111122223333-B8JSAjo5QA",  
   "session Context": {
     "session Issuer": {
       "type": "Role",
       "principalId": "AROAQSOX5XXUR7D6RMYLR",
       "arn": "arn:aws:iam::111122223333:role/aws-service-role/lakeformation.amazonaws.com/Deformationally",
       "accountId": "111122223333",
       "user Name": "Deformationally"
     },
   ..............
   ..............
}
```

工作階段名稱的格式如下所示：

```
AWSLF-<version-number>-<query-engine-code>-<account-id->-<suffix>
```

**`version-number`**  
此格式的版本，目前為 `00`。如果工作階段名稱格式變更，下一個版本將為 `01`。

**`query-engine-code`**  
指出存取資料的實體。目前的值為：      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/lake-formation/latest/dg/cross-account-logging.html)

**`account-id`**  
從 Lake Formation 請求憑證 AWS 的帳戶 ID。

**`suffix`**  
隨機產生的字串。

# 使用 AWS Glue和 Lake Formation 管理跨帳戶許可
<a name="hybrid-cross-account"></a>

您可以使用 AWS Glue或 授予 Data Catalog 資源和基礎資料的跨帳戶存取權 AWS Lake Formation。

在 中AWS Glue，您可以透過建立或更新 Data Catalog 資源政策來授予跨帳戶許可。在 Lake Formation 中，您可以使用 Lake Formation 許可模型和 `Grant Permissions` API 操作來授予跨帳戶`GRANT/REVOKE`許可。

**提示**  
我們建議僅依賴 Lake Formation 許可來保護您的資料湖。

您可以使用 Lake Formation 主控台或 AWS Resource Access Manager (AWS RAM) 主控台來檢視 Lake Formation 跨帳戶授予。不過，這些主控台頁面不會顯示 AWS Glue Data Catalog 資源政策授予的跨帳戶許可。同樣地，您可以使用AWS Glue主控台**的設定**頁面檢視 Data Catalog 資源政策中的跨帳戶授予，但該頁面不會顯示使用 Lake Formation 授予的跨帳戶許可。

為了確保您在檢視和管理跨帳戶許可時不會錯過任何授予，Lake Formation 和 AWS Glue會要求您執行下列動作，以指出您知道並允許 Lake Formation 和 進行跨帳戶授予AWS Glue。

**使用 AWS Glue Data Catalog 資源政策授予跨帳戶許可時**  
如果您的帳戶 （授與者帳戶或生產者帳戶） 未授予使用 AWS RAM 來共用資源的跨帳戶授權，您可以像往常一樣在 中儲存 Data Catalog 資源政策AWS Glue。不過，如果已進行涉及 AWS RAM 資源共用的授予，您必須執行下列其中一項動作，以確保成功儲存資源政策：
+ 當您在AWS Glue主控台**的設定**頁面上儲存資源政策時，主控台會發出提醒，指出政策中的許可除了使用 Lake Formation 主控台授予的任何許可之外。您必須選擇**繼續**以儲存政策。
+ 使用 `glue:PutResourcePolicy` API 操作儲存資源政策時，您必須將 `EnableHybrid` 欄位設定為 '`TRUE`' （類型 = 字串）。

  若要更新現有的資源政策，請先使用 `glue:GetResourcePolicy` API 操作擷取您目前的政策，然後視需要修改，再呼叫 `glue:PutResourcePolicy`。
**注意**  
建立跨帳戶存取 AWS Glue 的資源政策時，請僅授予特定使用案例所需的最低許可。

  如需詳細資訊，請參閱《 *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)。

**使用 Lake Formation 命名的資源方法授予跨帳戶許可時**  
如果您的帳戶 （生產者帳戶） 中沒有 Data Catalog 資源政策，則 Lake Formation 會如往常一樣進行跨帳戶授予。不過，如果 Data Catalog 資源政策存在，您必須將下列陳述式新增至其中，以允許跨帳戶授予在使用具名資源方法進行時成功。將 *<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) 方法進行跨帳戶授予時，您必須擁有至少具有 中指定許可的 Data Catalog 資源政策[先決條件](cross-account-prereqs.md)。

**另請參閱:**  
[中繼資料存取控制](access-control-metadata.md) （討論具名資源方法與 Lake Formation 標籤型存取控制 (LF-TBAC) 方法）。
[檢視共用的 Data Catalog 資料表和資料庫](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) （適用於範例 Data Catalog 資源政策）

# 使用 GetResourceShares API 操作檢視所有跨帳戶授予
<a name="cross-account-getresourcepolicies"></a>

如果您的企業使用 AWS Glue Data Catalog 資源政策和 Lake Formation 授予來授予跨帳戶許可，在同一個位置檢視所有跨帳戶授予的唯一方法是使用 `glue:GetResourceShares` API 操作。

當您使用具名資源方法跨帳戶授予 Lake Formation 許可時， AWS Resource Access Manager (AWS RAM) 會建立 AWS Identity and Access Management (IAM) 資源政策，並將其存放在 AWS 您的帳戶中。政策會授予存取 資源所需的許可。 會為每個跨帳戶授予 AWS RAM 建立個別的資源政策。您可以使用 `glue:GetResourceShares` API 操作來檢視所有這些政策。

**注意**  
此操作也會傳回 Data Catalog 資源政策。不過，如果您在 Data Catalog 設定中啟用中繼資料加密，而且您沒有 AWS KMS 金鑰的許可，則操作不會傳回 Data Catalog 資源政策。

**檢視所有跨帳戶授予**
+ 輸入下列 AWS CLI 命令。

  ```
  aws glue get-resource-policies
  ```

以下是範例資源政策，當您`db1`將`t`資料庫中資料表的許可授予 AWS 帳戶 1111-2222-3333 時，該政策會 AWS RAM 建立和存放。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
         "glue:GetTable",
         "glue:GetTables",
         "glue:GetTableVersion",         
         "glue:GetTableVersions",
         "glue:GetPartition", 
         "glue:GetPartitions",
         "glue:BatchGetPartition",
         "glue:SearchTables"
       ],
      "Principal": {"AWS": [
        "111122223333"
      ]},
      "Resource": [
      "arn:aws:glue:us-east-1:111122223333:table/db1/t"
     ]
    }
  ]
}
```

------

**另請參閱：**  
《 *AWS Glue 開發人員指南*》中的 [GetResourceShares 動作 (Python：get\$1resource\$1policies)](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-security.html#aws-glue-api-jobs-security-GetResourcePolicies) 