

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

# Lake Formation 最佳實務、考量和限制
<a name="lf-limitations"></a>

使用本節快速找到其中的最佳實務、考量事項和限制 AWS Lake Formation。

如需 的服務資源或操作數量上限，請參閱服務[配額](https://docs.aws.amazon.com/general/latest/gr/lake-formation.html#limits_lake-formation) AWS 帳戶。

**Topics**
+ [跨帳戶資料共用最佳實務和考量事項](cross-account-notes.md)
+ [服務連結角色限制](service-linked-role-limitations.md)
+ [跨區域資料存取限制](x-region-considerations.md)
+ [Data Catalog 檢視的考量和限制](views-notes.md)
+ [資料篩選限制](data-filtering-notes.md)
+ [混合存取模式的考量和限制](notes-hybrid.md)
+ [將 Amazon Redshift 資料倉儲資料帶入 的限制 AWS Glue Data Catalog](notes-ns-catalog.md)
+ [S3 Tables 目錄整合限制](notes-s3-catalog.md)
+ [Hive 中繼資料存放區資料共用的考量和限制](notes-hms.md)
+ [Amazon Redshift 資料共用限制](notes-rs-datashare.md)
+ [IAM Identity Center 整合限制](identity-center-lf-notes.md)
+ [Lake Formation 標籤型存取控制最佳實務和考量事項](lf-tag-considerations.md)
+ [屬性型存取控制考量事項、限制和支援的區域](abac-considerations.md)

# 跨帳戶資料共用最佳實務和考量事項
<a name="cross-account-notes"></a>

 Lake Formation 跨帳戶功能可讓使用者安全地跨多個 AWS 組織共用分散式資料湖 AWS 帳戶，或直接與另一個帳戶中的 IAM 主體共用，提供對 Data Catalog 中繼資料和基礎資料的精細存取。

使用 Lake Formation 跨帳戶資料共用時，請考慮下列最佳實務：
+ 您可以對自己 AWS 帳戶中的委託人進行 Lake Formation 許可授予的數量沒有限制。不過，Lake Formation 會使用 AWS Resource Access Manager (AWS RAM) 容量進行跨帳戶授予，您的帳戶可以使用具名資源方法進行授予。若要最大化 AWS RAM 容量，請遵循下列具名資源方法的最佳實務：
  +  使用新的跨帳戶授予模式 （跨帳戶版本設定下的第 **3** 版及更高版本） 與外部 共用資源 AWS 帳戶。 ****如需詳細資訊，請參閱[更新跨帳戶資料共用版本設定](optimize-ram.md)。
  + 將 AWS 帳戶安排在組織中，並將許可授予組織或組織單位。對組織或組織單位的授予會計為一個授予。

    授予組織或組織單位也不需要接受授予的 AWS Resource Access Manager (AWS RAM) 資源共享邀請。如需詳細資訊，請參閱[存取和檢視共用的 Data Catalog 資料表和資料庫](viewing-shared-resources.md)。
  + 使用特殊的**「所有資料表**萬用字元」來授予資料庫中所有資料表的許可，而不是授予資料庫中許多個別資料表的許可。授予**所有資料表**將計為單一授予。如需詳細資訊，請參閱[授予 Data Catalog 資源的許可](granting-catalog-permissions.md)。
**注意**  
如需請求更高限制的資源共用數量的詳細資訊 AWS RAM，請參閱 中的[AWS 服務配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)*AWS 一般參考*。
+ 您必須建立共用資料庫的資源連結，該資料庫才會出現在 Amazon Athena 和 Amazon Redshift Spectrum 查詢編輯器中。同樣地，若要能夠使用 Athena 和 Redshift Spectrum 查詢共用資料表，您必須建立資料表的資源連結。資源連結接著會出現在查詢編輯器的資料表清單中。

  您可以使用**所有資料表**萬用字元來授予資料庫中所有資料表的許可，而不是為許多個別資料表建立資源連結以進行查詢。然後，當您為該資料庫建立資源連結並在查詢編輯器中選取該資料庫資源連結時，您可以存取該資料庫中查詢的所有資料表。如需詳細資訊，請參閱[建立資源連結](creating-resource-links.md)。
+ 當您直接與另一個帳戶中的主體共用資源時，收件人帳戶中的 IAM 主體可能沒有建立資源連結的許可，能夠使用 Athena 和 Amazon Redshift Spectrum 查詢共用資料表。資料湖管理員可以建立預留位置資料庫並將`CREATE_TABLE`許可授予`ALLIAMPrincipal`群組，而不是為每個共用的資料表建立資源連結。然後，收件人帳戶中的所有 IAM 主體都可以在預留位置資料庫中建立資源連結，並開始查詢共用資料表。

   請參閱 `ALLIAMPrincipals`中授予許可給 的 CLI 命令範例[使用具名資源方法授與資料庫許可](granting-database-permissions.md)。
+ 當跨帳戶許可直接授予委託人時，只有授予的收件人可以檢視這些許可。收件人 AWS 帳戶中的資料湖管理員無法檢視這些直接授權。
+ Athena 和 Redshift Spectrum 支援資料欄層級存取控制，但僅用於包含，而非排除。AWS Glue ETL 任務不支援資料欄層級存取控制。
+ 與 AWS 您的帳戶共用資源時，您只能將資源的許可授予帳戶中的使用者。您無法將資源的許可授予其他 AWS 帳戶、組織 （甚至您自己的組織） 或`IAMAllowedPrincipals`群組。
+ 您無法將資料庫`Super`上的 `DROP`或 授予外部帳戶。
+ 在您刪除資料庫或資料表之前，撤銷跨帳戶許可。否則，您必須刪除其中的孤立資源共用 AWS Resource Access Manager。

**另請參閱**  
[Lake Formation 標籤型存取控制最佳實務和考量事項](lf-tag-considerations.md)
[`CREATE_TABLE`](lf-permissions-reference.md#perm-create-table) 中的 [Lake Formation 許可參考](lf-permissions-reference.md)，以取得更多跨帳戶存取規則和限制。

# 服務連結角色限制
<a name="service-linked-role-limitations"></a>

 服務連結角色是直接連結至的特殊 IAM 角色類型 AWS Lake Formation。此角色具有預先定義的許可，允許 Lake Formation 代表您跨 AWS 服務執行動作。

使用服務連結角色 (SLR) 向 Lake Formation 註冊資料位置時，適用下列限制。
+ 一旦建立，您就無法修改服務連結角色政策。
+ 服務連結角色不支援跨帳戶共用加密的目錄資源。加密的資源需要特定的 AWS KMS 金鑰許可。服務連結角色具有預先定義的許可，不包括跨帳戶使用加密目錄資源的能力。
+ 註冊多個 Amazon S3 位置時，使用服務連結角色可能會導致您快速超過 IAM 政策限制。這是因為使用服務連結角色時， 會為您 AWS 撰寫政策，並遞增為一個包含所有註冊的大型區塊。您可以更有效率地撰寫客戶受管政策、跨多個政策分配許可，或對不同的區域使用不同的角色。
+ EC2 上的 Amazon EMR 無法存取您使用服務連結角色註冊資料位置的資料。
+ 服務連結角色操作會略過您的 AWS 服務控制政策。
+ 當您使用服務連結角色註冊資料位置時，它會以最終一致性更新 IAM 政策。如需詳細資訊，請參閱《[IAM 使用者指南》中的疑難排解](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot.html#troubleshoot_general_eventual-consistency) IAM 文件。
+  使用服務連結角色時，您無法`SET_CONTEXT = TRUE`在 Lake Formation 資料湖設定中設定 ，而且您使用的是 IAM Identity Center。原因在於服務連結角色具有不可變的信任政策，這些政策與使用 IAM Identity Center 主體進行`SetContext`稽核所需的受信任身分傳播不相容。

# 跨區域資料存取限制
<a name="x-region-considerations"></a>

 Lake Formation 支援跨 查詢 Data Catalog 資料表 AWS 區域。您可以使用 Amazon Athena、Amazon EMR 和 AWS Glue ETL 從其他區域存取區域中的資料，方法是在其他區域中建立指向來源資料庫和資料表的資源連結。透過跨區域資料表存取，您可以跨區域存取資料，而無需將基礎資料或中繼資料複製到 Data Catalog。

下列限制適用於跨區域資料表存取。
+ Lake Formation 不支援使用 Amazon Redshift Spectrum 從其他區域查詢 Data Catalog 資料表。
+ 在 Lake Formation 主控台中，資料庫和資料表檢視不會顯示來源區域資料庫/資料表名稱。
+ 若要從另一個區域檢視共用資料庫下的資料表清單，您必須先建立共用資料庫的資源連結，然後選取資源連結，然後選擇**檢視資料表**。
+ Lake Formation 不支援 SAML 使用者發出的跨區域資源連結呼叫。
+ Lake Formation 的跨區域功能不涉及資料傳輸的額外費用。

# Data Catalog 檢視的考量和限制
<a name="views-notes"></a>

 下列考量和限制適用於 Data Catalog 檢視。
+ 您無法從 Lake Formation 主控台建立 Data Catalog 檢視。您可以使用 AWS CLI 或 SDK 建立檢視。
+ 您可以從 10 個資料表建立 Data Catalog 檢視。這是硬性限制。檢視的基礎參考資料表可以屬於相同 AWS 帳戶中的相同資料庫或不同資料庫。
+ 如需使用 Redshift 建立 Data Catalog 檢視的其他考量和限制，請參閱《Amazon Redshift 資料庫開發人員指南》中的 [Data Catalog 檢視考量和限制](https://docs.aws.amazon.com/redshift/latest/dg/data-catalog-views-overview.html#data-catalog-views-considerations)一節。對於 Athena，請參閱《Amazon Athena 使用者指南》中的 [Data Catalog 檢視考量和限制](https://docs.aws.amazon.com/athena/latest/ug/views-glue.html#views-glue-limitations)一節。
+ 您可以在混合存取模式和 Lake Formation 模式中，在向 Lake Formation 註冊的資料表上建立 Data Catalog 檢視。

  搭配 Lake Formation 混合存取模式使用 Data Catalog 檢視時，建議確保使用檢視的主體選擇加入檢視中參考之基礎資料表的 Lake Formation 許可，而不授予存取權。這可確保基底資料表不會透過 IAM AWS Glue 許可向消費者公開。
+ 跨帳戶共用版本沒有共用檢視的限制。
+ 當您針對已建立的檢視方言使用 `ALTER VIEW`陳述式時，檢視的版本化方式與 Data Catalog 資料表相同。您無法復原至先前的檢視，因為檢視版本會隨著基礎資料變更而變更。您可以刪除檢視版本，它將預設為下一個可用的最新版本。當您變更檢視版本時，請確定您的資料與選取的檢視版本結構描述同步。
+ 不會引入新的 Data Catalog APIs。現有的 `UpdateTable`、 `CreateTable``DeleteTable`和 `GetTable` APIs已更新。
+ Amazon Redshift 一律會從具有字串的資料表中使用 varchar 資料欄建立檢視。從其他引擎新增方言時，您必須將字串資料欄轉換為明確長度的 varchar。
+ 將資料湖許可授予資料庫中`All tables`的 ，會導致承授者具有資料庫中所有資料表和檢視的許可。
+ 您無法建立檢視：
  + 該參考其他檢視。
  + 當參考資料表是資源連結時。
  + 當參考資料表位於另一個 帳戶中時。
  + 從外部 Hive 中繼存放區。
+ Redshift Spectrum 方言檢視不支援跨帳戶定義器角色。
+ 不支援 Athena 查詢編輯器中 Athena 方言的資源連結。若要使用 Athena 方言的跨帳戶定義者角色，請將託管基礎資料表的帳戶新增為 Athena 中的資料來源。

# 資料篩選限制
<a name="data-filtering-notes"></a>

當您授予資料目錄資料表的 Lake Formation 許可時，您可以包含資料篩選規格，以限制對與 Lake Formation 整合之查詢結果和引擎中特定資料的存取。Lake Formation 使用資料篩選來實現資料欄層級安全性、資料列層級安全性和儲存格層級安全性。如果您的來源資料包含巢狀結構，您可以在巢狀資料欄上定義和套用資料篩選條件。

## 資料欄層級篩選的備註和限制
<a name="column-filtering-notes"></a>

指定資料欄篩選有三種方式：
+ 使用資料篩選條件
+ 使用簡單的資料欄篩選或巢狀資料欄篩選。
+ 使用 TAGs

簡單資料欄篩選只會指定要包含或排除的資料欄清單。Lake Formation 主控台、API 和 都 AWS CLI 支援簡單的資料欄篩選。如需範例，請參閱 [Grant with Simple Column Filtering](granting-table-permissions.md#simple-column-filter-example)。

下列備註和限制適用於資料欄篩選：
+ AWS Glue 5.0 或更新版本僅針對 Apache Hive 和 Apache Iceberg 資料表支援透過 Lake Formation 進行精細存取控制。
+ 若要`SELECT`使用授予選項和資料欄篩選進行授予，您必須使用包含清單，而不是排除清單。如果沒有授予選項，您可以使用包含或排除清單。
+ 若要在具有資料欄篩選的資料表`SELECT`上授予 ，您必須已在具有授予選項且沒有任何資料列限制的資料表`SELECT`上授予 。您必須有權存取所有資料列。
+ 如果您`SELECT`使用授予選項和資料欄篩選授予您帳戶中的委託人，該委託人必須在授予另一個委託人時為相同的資料欄或授予的資料欄子集指定資料欄篩選。如果您`SELECT`使用授予選項和資料欄篩選授予外部帳戶，則外部帳戶中的資料湖管理員可以將所有資料欄`SELECT`上的 授予其帳戶中的另一個主體。不過，即使所有資料欄`SELECT`都使用 ，該委託人仍只能查看授予外部帳戶的資料欄。
+ 您無法在分割區索引鍵上套用資料欄篩選。
+ 對資料表中的資料欄子集具有 `SELECT`許可的主體，無法獲得該資料表上的 `ALTER`、`DELETE`、 `DROP`或 `INSERT`許可。對於對資料表具有 `ALTER`、`DELETE`、 `DROP`或 `INSERT`許可的委託人，如果您授予具有資料欄篩選的`SELECT`許可，則不會有任何影響。

下列備註和限制適用於巢狀資料欄篩選：
+  您可以在資料篩選條件中包含或排除五層巢狀欄位。  
**Example**  

  Col1.Col1\$11.Col1\$11\$11.Col1\$11\$11\$11\$11\$11.Col1\$11\$11\$11\$11
+  您無法對分割區資料欄內的巢狀欄位套用資料欄篩選。
+  如果您的資料表結構描述包含最上層資料欄名稱 ("customer"."address")，其資料篩選條件內的巢狀欄位表示法模式相同 （具有最上層資料欄名稱`customer`和巢狀欄位名稱的巢狀資料欄`address`在資料篩選條件`"customer"."address"`中指定為 )，則您無法明確指定對最上層資料欄或巢狀欄位的存取，因為兩者在包含/排除清單中都使用相同的模式表示。這是不明確的，而且如果您指定最上層資料欄或巢狀欄位，Lake Formation 無法解析。
+ 如果頂層資料欄或巢狀欄位在名稱中包含雙引號，當您在資料儲存格篩選條件的包含和排除清單中指定對巢狀欄位的存取時，您必須包含第二個雙引號。  
**Example**  

  具有雙引號的範例巢狀資料欄名稱 – `a.b.double"quote`  
**Example**  

  資料篩選條件中的巢狀資料欄表示範例 – ` "a"."b"."double""quote"`

## 儲存格層級篩選限制
<a name="cell-filtering-notes.title"></a>

請記住下列有關資料列層級和儲存格層級篩選的注意事項和限制。
+  巢狀資料欄、檢視和資源連結不支援儲存格層級安全性。
+ 巢狀資料欄也支援頂層資料欄上支援的所有表達式。不過，定義巢狀資料列層級表達式時，**不應**參考分割區資料欄下的巢狀欄位。
+  使用 Athena 引擎第 3 版或 Amazon Redshift Spectrum 時，所有區域都可使用儲存格層級安全性。對於其他 服務，儲存格層級安全性僅適用於 所述的區域[支援的區域](supported-regions.md)。
+  不支援 `SELECT INTO` 陳述式。
+ 資料列篩選條件表達式不支援 `array`、 和 `map`資料類型。支援 `struct`資料類型。
+ 資料表上可定義的資料篩選條件數目沒有限制，但資料表上單一主體的資料篩選條件有 100 個限制。
+ 若要使用資料列篩選條件表達式套用資料篩選條件，您必須在所有資料表資料欄上使用 `SELECT` 授予選項。當授予外部帳戶時，此限制不適用於外部帳戶中的管理員。
+ 如果委託人是群組的成員，並且委託人和群組都獲得一部分資料列的許可，則委託人的有效資料列許可是委託人許可和群組許可的聯集。
+ 下列資料欄名稱在資料表中受到資料列層級和儲存格層級篩選的限制：
  + ctid
  + oid
  + xmin
  + cmin
  + xmax
  + cmax
  + Tableoid
  + insertxid
  + deletexid
  + importoid
  + redcatuniqueid
+ 如果您將全列篩選條件表達式與述詞的其他篩選條件表達式同時套用至資料表，則全列運算式將優先於所有其他篩選條件表達式。
+ 當將資料列子集的許可授予外部 AWS 帳戶，且外部帳戶的資料湖管理員將這些許可授予該帳戶中的委託人時，委託人的有效篩選述詞是帳戶述詞和直接授予委託人的任何述詞的交集。

  例如，如果帳戶具有具有述詞的資料列許可，`dept='hr'`且委託人單獨獲得 的許可`country='us'`，則委託人只能存取具有 `dept='hr'`和 的資料列`country='us'`。

如需儲存格層級篩選的詳細資訊，請參閱 [Lake Formation 中的資料篩選和儲存格層級安全性](data-filtering.md)。

如需使用 Amazon Redshift Spectrum 搭配資料列層級安全政策查詢資料表時的考量和限制，請參閱《Amazon Redshift 資料庫開發人員指南》中的[使用 RLS 政策的考量和限制](https://docs.aws.amazon.com/redshift/latest/dg/t_rls_usage.html)。

# 混合存取模式的考量和限制
<a name="notes-hybrid"></a>

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

下列考量和限制適用於混合存取模式。

**限制**
+ **更新 Amazon S3 位置註冊** – 您無法編輯使用服務連結角色向 Lake Formation 註冊的位置參數。
+ **使用 LF-Tags 時選擇加入選項** – 當您可以使用 LF-Tags 授予 Lake Formation 許可時，您可以選擇加入委託人，透過選擇已連接 LF-Tags 的資料庫和資料表，連續執行 Lake Formation 許可。
+ **混合存取模式存取** – 在 Lake Formation 中存取混合存取模式僅限於具有資料湖管理員或唯讀管理員許可的使用者。
+ **選擇加入主體** – 目前，只有資料湖管理員角色可以選擇加入主體至資源。
+ **選擇加入資料庫中的所有資料表** – 在跨帳戶授予中，當您授予許可，並選擇加入資料庫中的所有資料表時，您也需要選擇加入資料庫，才能讓許可運作。

**考量事項**
+ 將向 **Lake Formation 註冊的 Amazon S3 位置更新為混合存取模式** – 我們不建議將已向 Lake Formation 註冊的 Amazon S3 資料位置轉換為混合存取模式，即使可以完成此操作。
+  **在混合存取模式中註冊資料位置時的 API 行為** 
  + CreateTable – 無論混合存取模式旗標為何並選擇加入狀態，位置都會被視為已向 Lake Formation 註冊。因此，使用者需要資料位置許可才能建立資料表。
  + CreatePartition/BatchCreatePartitions/UpdatePartitions （當分割區位置更新為指向向混合式註冊的位置時） – 無論混合存取模式旗標為何，Amazon S3 位置都被視為向 Lake Formation 註冊，並選擇加入狀態。因此，使用者需要資料位置許可才能建立或更新資料庫。
  + CreateDatabase/UpdateDatabase （當資料庫位置更新以指向在混合存取模式中註冊的位置時） – 無論混合存取模式旗標和選擇加入狀態，該位置都被視為已向 Lake Formation 註冊。因此，使用者需要資料位置許可才能建立或更新資料庫。
  + UpdateTable （更新資料表位置以指向在混合存取模式中註冊的位置時） – 無論混合存取模式旗標和選擇加入狀態為何，該位置都會被視為已向 Lake Formation 註冊。因此，使用者需要資料位置許可才能更新資料表。如果資料表位置未更新或指向未向 Lake Formation 註冊的位置，則使用者不需要資料位置許可來更新資料表。

# 將 Amazon Redshift 資料倉儲資料帶入 的限制 AWS Glue Data Catalog
<a name="notes-ns-catalog"></a>

您可以使用 為 Amazon Redshift 資料倉儲中的分析資料編製目錄和管理存取權 AWS Glue Data Catalog。有下列限制：
+ 聯合目錄層級不支援跨帳戶共用。不過，您可以從聯合型目錄中跨 AWS 帳戶共用個別資料庫和資料表。
+  您必須擁有**跨帳戶版本設定**第 4 AWS 帳戶版或更新版本，才能跨 共用聯合目錄中的資料庫或資料表。
+  Data Catalog 僅支援建立最上層目錄。
+  您只能更新 Redshift 受管儲存 (RMS) 中目錄的描述。
+ 不支援將聯合目錄以及聯合目錄中的資料庫和資料表的許可設定為`IAMAllowedPrincipals`群組。
+ 不支援 Athena、Amazon EMR Spark 等引擎目錄上的資料定義語言 (DDL) 操作，包括設定目錄組態。
+  不支援使用 Athena 在 RMS 資料表上執行 DDL 操作。
+ 不支援建立具體化視觀表，無論是透過 Athena、Apache Spark AWS Glue Data Catalog、 或 Amazon Redshift 取用者。
+  Athena 不支援多目錄體驗。它一次只能連線到單一的特定目錄。Athena 無法同時存取或查詢多個目錄。
+ 不支援透過 Athena 和 Amazon Redshift 在 Iceberg 資料表上標記和分支操作。
+ 不支援 RMS 資料表上的時間歷程。
+ 不支援具有資料湖資料表的多層級目錄。存放在 Amazon S3 中與資料湖資料表搭配使用的所有資料都必須位於預設值中 AWS Glue Data Catalog，且無法組織成多層目錄。
+ 在 Amazon Redshift 中，資料共用不會新增至已註冊的命名空間。叢集和命名空間是同義詞，一旦將叢集發佈到 AWS Glue Data Catalog，您就無法新增資料。
+ Amazon EMR on EC2 不支援跨 RMS 資料表和 Amazon S3 資料表聯結。只有 EMR Serverless 支援此功能。
+ 不支援外部結構描述和資料表。
+ RMS 資料表只能從 Iceberg REST Catalog 中的 AWS Glue 延伸端點存取。
+ Hive 資料表無法從連接到 AWS Glue Iceberg REST Catalog 的第三方引擎存取。
+ 支援透過 Spark 的 RMS 資料表上 read\$1committed 隔離層級。
+ Redshift 資料庫名稱在 中被視為不區分大小寫 AWS Glue Data Catalog，限制為 128 個字元，並且可以是帶有破折號 (-) 和底線 (\$1) 的英數字元。
+ 目錄名稱不區分大小寫，限制為 50 個字元，可以是帶有破折號 (-) 和底線 (\$1) 的英數字元。
+ Amazon Redshift 不支援使用 Lake Formation SQL 樣式 GRANT 和 REVOKE 命令來管理發佈至 之資料表的存取許可 AWS Glue Data Catalog。
+ 不會強制執行連接到生產者 （來源） Amazon Redshift 叢集的資料列層級安全和動態資料遮罩政策。相反地，Lake Formation 中定義的存取許可將在共用資料上強制執行。
+ 不支援在資料表連結上執行資料定義語言 (DDL) 和資料處理語言 (DML) 操作。
+ 如果未正確逸出預留關鍵字，則會導致失敗或錯誤。
+ 不支援在多目錄案例中加密資料。

# S3 Tables 目錄整合限制
<a name="notes-s3-catalog"></a>

 Amazon S3 Tables 與 AWS Glue Data Catalog (Data Catalog) 整合，並將目錄註冊為 Lake Formation 資料位置。您可以從 Lake Formation 主控台或使用 服務 APIs設定此註冊。

**注意**  
如果您有根據委託人標籤限制 IAM 使用者和 IAM 角色的 IAM 或 S3 Tables 資源型政策，您必須將相同的委託人標籤連接至 Lake Formation 用來存取 S3 資料的 IAM 角色 （例如 LakeFormationDataAccessRole)，並授予此角色必要的許可。這是您的標籤型存取控制政策正確與 S3 Tables 分析整合搭配使用的必要條件。

 下列限制適用於將 S3 Tables 目錄與 Data Catalog 和 Lake Formation 整合：
+ AWS Glue 和 Lake Formation 不支援混合大小寫資料欄名稱，並將所有資料欄名稱轉換為小寫。轉換為小寫時，您必須確認資料表資料欄名稱是唯一的。使用 `customer_id`而非 `customerId`。只有在預覽版本期間才支援使用混合大小寫資料欄名稱。
+ CreateCatalog API 無法在 Amazon S3 中建立資料表儲存貯體。
+ SearchTables API 無法搜尋 S3 Tables。

# Hive 中繼資料存放區資料共用的考量和限制
<a name="notes-hms"></a>

使用 AWS Glue Data Catalog 中繼資料聯合 (Data Catalog 聯合），您可以將 Data Catalog 連線到外部中繼存放區，以存放 Amazon S3 資料的中繼資料，並使用 安全地管理資料存取許可 AWS Lake Formation。

下列考量和限制適用於從 Hive 資料庫建立的聯合資料庫：

**考量事項**
+ **AWS SAM 應用程式支援** – 您要負責部署的應用程式資源可用性 AWS SAM (Amazon API Gateway 和 Lambda 函數）。使用者執行查詢時，請確定 AWS Glue Data Catalog 與 Hive 中繼存放區之間的連線正常運作。
+ **Hive 中繼存放區版本需求** – 您只能使用 Apache Hive 第 3 版及更高版本建立聯合資料庫。
+ **映射的資料庫需求** – 每個 Hive 資料庫都必須映射至 Lake Formation 中的新資料庫。
+ **資料庫層級聯合支援** – 您只能在資料庫層級連線至 Hive 中繼存放區。
+ **聯合資料庫的許可** – 即使刪除來源資料表或資料庫，在聯合資料庫下套用至聯合資料庫或資料表的許可仍會保留。重新建立來源資料庫或資料表時，您不需要重新授予許可。在來源刪除具有 Lake Formation 許可的聯合資料表時，Lake Formation 許可仍然可見，您可以視需要撤銷它們。

  如果使用者刪除聯合資料庫，則會失去其所有對應的許可。以相同名稱重新建立相同的資料庫， 不會復原 Lake Formation 許可。使用者必須再次設定新的許可。
+ 聯合資料庫上的 **IAMAllowedPrincipal 群組許可** – 根據 `DataLakeSettings`，Lake Formation 可能會將所有資料庫和資料表的許可設定為名為 的虛擬群組`IAMAllowedPrincipal`。`IAMAllowedPrincipal` 是指可透過 IAM 主體政策和資源政策存取 Data Catalog AWS Glue 資源的所有 IAM 主體。如果這些許可存在於資料庫或資料表上，則會授予所有主體存取資料庫或資料表的權限。

   不過，Lake Formation 不允許對聯合資料庫下的資料表進行`IAMAllowedPrincipal`許可。當您建立聯合資料庫時，請確定您將 `CreateTableDefaultPermissions` 參數作為空清單傳遞。

  如需詳細資訊，請參閱[變更資料湖的預設設定](change-settings.md)。
+ **在查詢中聯結資料表** – 您可以將 Hive 中繼存放區資料表與 Data Catalog 原生資料表聯結，以執行查詢。

**限制**
+  ** AWS Glue Data Catalog 與 Hive 中繼存放區之間同步中繼資料的限制** – 建立 Hive 中繼存放區連線後，您需要建立聯合資料庫，以將 Hive 中繼存放區中的中繼資料與 同步 AWS Glue Data Catalog。當使用者執行查詢時，聯合資料庫下的資料表會在執行時間同步。
+  **在聯合資料庫下建立新資料表的限制** – 您將無法在聯合資料庫下建立新資料表。
+ **資料許可限制** – 不支援 Hive 中繼存放區資料表檢視的許可。

# Amazon Redshift 資料共用限制
<a name="notes-rs-datashare"></a>

AWS Lake Formation 可讓您從 Amazon Redshift 安全地管理資料共用中的資料。Amazon Redshift 是 AWS 雲端中全受管的 PB 級資料倉儲服務。使用資料共用功能，Amazon Redshift 可協助您跨 共用資料 AWS 帳戶。如需 Amazon Redshift 資料共用的詳細資訊，請參閱 [Amazon Redshift 中的資料共用概觀](https://docs.aws.amazon.com/redshift/latest/dg/data_sharing_intro.html)。

 下列備註和限制適用於從 Amazon Redshift 資料共用建立的聯合資料庫：
+ **映射的資料庫需求** – 每個 Amazon Redshift 資料共用都必須映射至 Lake Formation 中的新資料庫。在 Data Catalog 資料庫中扁平化資料共用物件表示法時，這是維持唯一資料表名稱的必要項目。
+ **在聯合資料庫下建立新資料表的限制** – 您將無法在聯合資料庫下建立新資料表。
+ **聯合資料庫上的許可** – 即使刪除來源資料表或資料庫，在聯合資料庫下套用至聯合資料庫或資料表的許可仍會保留。重新建立來源資料庫或資料表時，您不需要重新授予許可。在來源刪除具有 Lake Formation 許可的聯合資料表時，Lake Formation 許可仍然可見，您可以視需要撤銷它們。

  如果使用者刪除聯合資料庫，則會失去其所有對應的許可。以相同名稱重新建立相同的資料庫， 不會復原 Lake Formation 許可。使用者必須再次設定新的許可。
+ **聯合資料庫上的 IAMAllowedPrincipal 群組許可** – 根據 `DataLakeSettings`，Lake Formation 可能會將所有資料庫和資料表的許可設定為名為 的虛擬群組`IAMAllowedPrincipal`。`IAMAllowedPrincipal` 是指可透過 IAM 主體政策和資源政策存取 Data Catalog AWS Glue 資源的所有 IAM 主體。如果這些許可存在於資料庫或資料表上，則會授予所有主體存取資料庫或資料表的權限。

  不過，Lake Formation 不允許對聯合資料庫下的資料表進行`IAMAllowedPrincipal`許可。當您建立聯合資料庫時，請確定您將 `CreateTableDefaultPermissions` 參數作為空清單傳遞。

  如需詳細資訊，請參閱[變更資料湖的預設設定](change-settings.md)。
+ **資料篩選** – 在 Lake Formation 中，您可以在具有資料欄層級和資料列層級篩選的聯合資料庫下授予資料表的許可。不過，您無法結合資料欄層級和資料列層級篩選，以限制聯合資料庫下資料表的儲存格層級精細程度存取。
+ **區分大小寫識別符** – Lake Formation 管理的 Amazon Redshift 資料共用物件僅支援小寫的資料表名稱和資料欄名稱。如果資料庫、資料表和資料欄將使用 Lake Formation 共用和管理，請勿開啟 Amazon Redshift 資料共用中的區分大小寫識別符。
+ **查詢支援** – 您可以使用 Amazon Redshift 查詢 Lake Formation 管理的 Amazon Redshift 資料共用。Athena 不支援查詢 Lake Formation 管理的 Amazon Redshift 資料共用。

 如需在 Amazon Redshift 中使用資料共用時限制的詳細資訊，請參閱《Amazon Redshift 資料庫開發人員指南》中的[資料共用限制](https://docs.aws.amazon.com/redshift/latest/dg/datashare-overview.html#limitations-datashare)。

# IAM Identity Center 整合限制
<a name="identity-center-lf-notes"></a>

使用 AWS IAM Identity Center，您可以連線到身分提供者 IdPs)，並跨 AWS 分析服務集中管理使用者和群組的存取權。您可以在 IAM Identity Center 中將 AWS Lake Formation 設定為已啟用的應用程式，而資料湖管理員可以將精細許可授予 AWS Glue Data Catalog 資源上的授權使用者和群組。

下列限制適用於 Lake Formation 與 IAM Identity Center 的整合：
+ 您無法在 Lake Formation 中將 IAM Identity Center 使用者和群組指派為資料湖管理員或唯讀管理員。

  如果您使用 AWS Glue 可代表您擔任的 IAM 角色來加密和解密 Data Catalog，IAM Identity Center 使用者和群組可以查詢加密的 Data Catalog 資源。 AWS 受管金鑰不支援受信任的身分傳播。
+ IAM Identity Center 使用者和群組只能叫用 IAM Identity Center 所提供`AWSIAMIdentityCenterAllowListForIdentityContext`政策中列出的 API 操作。
+  Lake Formation 允許來自外部帳戶的 IAM 角色代表 IAM Identity Center 使用者和群組擔任電信業者角色，以存取 Data Catalog 資源，但只能在擁有帳戶中的 Data Catalog 資源上授予許可。如果您嘗試將許可授予外部帳戶中 Data Catalog 資源上的 IAM Identity Centerusers 和群組，Lake Formation 會擲出下列錯誤 -「委託人不支援跨帳戶授予。」 
+ 搭配 IAM Identity Center 使用 Lake Formation 時，應用程式指派組態`false`預設為 。如果您直接透過 [IAM Identity Center API](https://docs.aws.amazon.com/singlesignon/latest/APIReference/API_PutApplicationAssignmentConfiguration.html) 修改此組態，則必須使用 API 手動管理所有應用程式指派。Lake Formation 不會自動同步或管理在其標準工作流程之外所做的指派變更，這可能會影響資料湖環境中的存取模式和授權流程。

# Lake Formation 標籤型存取控制最佳實務和考量事項
<a name="lf-tag-considerations"></a>

您可以建立、維護和指派 LF 標籤，以控制對 Data Catalog 資料庫、資料表和資料欄的存取。

使用 Lake Formation 標籤型存取控制時，請考慮下列最佳實務：
+ 所有 LF 標籤都必須預先定義，才能指派給 Data Catalog 資源或授予委託人。

  資料湖管理員可以透過建立具有所需 IAM 許可的 *LF-Tag 建立*者來委派標籤管理任務。資料工程師和分析師決定 LF 標籤的特性和關係。然後，LF-Tag 建立者會在 Lake Formation 中建立和維護 LF-Tags。
+ 您可以將多個 LF 標籤指派給 Data Catalog 資源。只能將特定金鑰的一個值指派給特定資源。

  例如，您可以將 `module=Orders`、`division=Consumer`、 `region=West`等指派給資料庫、資料表或資料欄。您無法指派 `module=Orders,Customers`。
+ 您無法在建立資源時將 LF 標籤指派給資源。您只能將 LF 標籤新增至現有資源。
+ 您可以授予 LF-Tag 表達式給委託人，而不只是單一 LF-Tag。

  LF-Tag 表達式看起來類似以下內容 （虛擬程式碼）。

  ```
  module=sales AND division=(consumer OR commercial)
  ```

  授予此 LF-Tag 表達式的主體只能存取已指派`module=sales`*和* `division=consumer`或 的資料目錄資源 （資料庫、資料表和資料欄）`division=commercial`。如果您希望委託人能夠存取具有 `module=sales`*或* 的資源`division=commercial`，請不要在相同的授予中同時包含兩者。進行兩個授與，一個用於 `module=sales` ，另一個用於 `division=commercial`。

  最簡單的 LF-Tag 表達式僅包含一個 LF-Tag，例如 `module=sales`。
+ 在具有多個值的 LF 標籤上授予許可的主體可以使用其中一個值存取 Data Catalog 資源。例如，如果授予使用者 LF 標籤，且金鑰 =`module` 且值 =`orders,customers`，則使用者可以存取 `module=orders`或 指派的資源`module=customers`。
+ 您需要具有`Grant with LF-Tag expressions`許可，才能使用 LF-TBAC 方法授予 Data Catalog 資源的資料許可。資料湖管理員和 LF 標籤建立者會隱含地接收此許可。具有 `Grant with LFTag expressions`許可的主體可以使用下列方式授予資源的資料許可：
  + 具名資源方法
  + LF-TBAC 方法，但僅使用相同的 LF-Tag 表達式

    例如，假設資料湖管理員進行下列授予 （虛擬程式碼）。

    ```
    GRANT (SELECT ON TABLES) ON TAGS module=customers, region=west,south TO user1 WITH GRANT OPTION
    ```

    在此情況下， `user1`可以使用 LF-TBAC 方法將資料表`SELECT`上的 授予其他主體，但只能使用完整的 LF-Tag 表達式 `module=customers, region=west,south`。
+ 如果委託人獲得同時具有 LF-TBAC 方法和具名資源方法的資源許可，則委託人在資源上擁有的許可是兩種方法所授予許可的聯集。
+ Lake Formation 支援跨帳戶授予 `DESCRIBE` 和 `ASSOCIATE` LF 標籤，以及使用 LF-TBAC 方法跨帳戶授予 Data Catalog 資源的許可。在這兩種情況下，委託人都是 AWS 帳戶 ID。
**注意**  
Lake Formation 支援使用 LF-TBAC 方法跨帳戶授予組織和組織單位。若要使用此功能，您需要將**跨帳戶版本設定**更新為第 **3 版**。

  如需詳細資訊，請參閱[Lake Formation 中的跨帳戶資料共用](cross-account-permissions.md)。
+ 在一個帳戶中建立的資料型錄資源只能使用相同帳戶中建立的 LF 標籤進行標記。在一個帳戶中建立的 LF 標籤無法與另一個帳戶的共用資源建立關聯。
+ 使用 Lake Formation 標籤型存取控制 (LF-TBAC) 來授予 Data Catalog 資源的跨帳戶存取權，需要為 AWS 您的帳戶新增 Data Catalog 資源政策。如需詳細資訊，請參閱[先決條件](cross-account-prereqs.md)。
+ LF 標籤索引鍵和 LF 標籤值的長度不能超過 50 個字元。
+ 可指派給 Data Catalog 資源的 LF 標籤數目上限為 50。
+ 下列限制為軟性限制：
  + 可建立的 LF 標籤數目上限為 1000。
  + LF 標籤可定義的值數目上限為 1000。
+ 儲存時，標籤索引鍵和值會轉換為所有小寫。
+ 只有一個 LF-Tag 的值可以指派給特定資源。
+ 如果以單一授權將多個 LF 標籤授予委託人，委託人只能存取具有所有 LF 標籤的 Data Catalog 資源。
+ 如果 LF-Tag 表達式評估僅導致存取一部分的資料表資料欄，但符合時授予的 Lake Formation 許可是需要完整資料欄存取的許可之一，即 `Alter`、`Insert`、 `Drop`或 `Delete`，則不會授予任何這些許可。反`Describe`之，只會授予 。如果授予的許可是 `All`(`Super`)，則只會授予 `Describe` `Select`和 。
+ 萬用字元不會與 LF 標籤搭配使用。若要將 LF-Tag 指派給資料表的所有資料欄，您可以將 LF-Tag 指派給資料表，而資料表中的所有資料欄都會繼承 LF-Tag。若要將 LF-Tag 指派給資料庫中的所有資料表，您可以將 LF-Tag 指派給資料庫，而資料庫中的所有資料表都會繼承該 LF-Tag。
+  您可以在帳戶中建立最多 1000 個 LF-Tag 表達式。
+  您最多可以使用 50 個 LF-Tag 表達式，將許可授予 Data Catalog 資源上的委託人。
+  在內嵌 LF-Tag 表達式上授予或撤銷許可時，LF-Tag 表達式的大小不得超過 900 個位元組。若要授予較大 LF-Tag 表達式的許可，請使用儲存的 LF-Tag 表達式。如需詳細資訊，請參閱[建立 LF-Tag 表達式](TBAC-creating-tag-expressions.md)。
+ 若要將 LF-Tag 新增至聯合目錄的一般 LF-Tag 支援發行之前建立的現有 Redshift 聯合目錄，您需要聯絡 AWS 支援團隊尋求協助。

# 屬性型存取控制考量事項、限制和支援的區域
<a name="abac-considerations"></a>

下列考量和限制適用於屬性型存取控制 (ABAC)。
+ ABAC 不支援使用 LF-Tag 政策授予存取權。
+ ABAC 不提供可授予的許可。
+ ABAC 不支援將許可授予 IAM Identity Center 使用者。
+ 在 Lake Formation 的資料表上使用 ABAC 授予時，Lake Formation 不會授予父資料庫或目錄的`DESCRIBE`許可。這與非 ABAC 案例不同，其中 Lake Formation 提供父資源的隱含`DESCRIBE`許可。
+ 具有`AmazonDataZoneProject`標籤索引鍵的所有主體一律會被視為已針對所有資料目錄資源選擇加入 Lake Formation。
+ ABAC 僅支援字串屬性。