

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

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

# Amazon Redshift 聯合許可
<a name="federated-permissions"></a>

Amazon Redshift 聯合許可可讓您定義一次資料許可，並自動在 中的所有倉儲中強制執行它們，從而簡化跨多個 Redshift 資料倉儲的許可管理 AWS 帳戶。這不需要重新定義、管理許可和跨多個倉儲的精細存取控制政策。

 當您向 註冊 Redshift 倉儲命名空間/叢集時 AWS Glue Data Catalog，來自已註冊倉儲命名空間/叢集的所有資料庫都會自動掛載在每個倉儲中，提供無縫的資料探索，無需手動設定。

您可以使用熟悉的 Redshift SQL 命令來定義資料庫物件的許可，透過 AWS Identity and Access Management (IAM) 或 指定全域身分 AWS IAM Identity Center。這些許可會與倉儲資料一起存放，無論哪個倉儲執行查詢，都會一致地強制執行。

## 重要概念
<a name="federated-permissions-concepts"></a>
+ **具有聯合許可的 Redshift 倉儲**：向 Data Catalog 註冊的生產者倉儲，以及存放資料和 Redshift 許可的位置。
+ **使用 Redshift 倉儲**：從遠端倉儲查詢資料的任何倉儲。您可以選擇為 Redshift 聯合許可啟用取用倉儲。
+ **全域身分**：IAM 和 IAM Identity Center 會在針對 Redshift 聯合許可啟用的所有倉儲中提供全域身分。使用者透過現有的身分提供者驗證一次，並根據其全域身分取得一致的存取權，無論他們連接到哪個倉儲。
+ **自動掛載**：針對 Redshift 聯合許可啟用的所有倉儲都會自動顯示在您帳戶中的所有倉儲中。此自動掛載功能可讓目錄和資料庫探索進行跨倉儲分析。
+ **身分傳播**：當您執行跨倉儲查詢時，Redshift 會將您的全域身分 (IAM 角色或 IAM Identity Center 使用者） 傳播到遠端倉儲。
+ **跨倉儲的授權**：啟用遠端倉儲的 Redshift 聯合許可會驗證跨倉儲查詢的許可，並在取用倉儲中強制執行。
+ **精細存取控制**：可跨倉儲強制執行的資料列層級安全 (RLS)、資料欄層級政策 (CLP) 和動態資料遮罩 (DDM) 的政策。

## 優勢
<a name="federated-permissions-benefits"></a>

**簡化的管理**
+ 在倉儲上定義一次許可
+ 自動強制執行所有取用倉儲的相同許可
+ 無需重新定義、管理許可和跨多個倉儲的精細存取控制政策
+ 降低管理開銷和可能發生的組態錯誤

**增強安全性和合規性**
+ 確保所有倉儲的安全政策強制執行一致
+ 在資料表和資料欄層級實作精細存取控制
+ 來自任何倉儲的稽核許可
+ 使用其他 SHOW 命令增強合規工具

**改善使用者體驗**
+ 註冊一次，不需要手動建立資料共用
+ 跨所有倉儲的單一登入，以及根據全球身分的一致存取
+ 無手動目錄組態的無縫命名空間探索
+ 不需要在每個倉儲中管理個別的本機使用者帳戶

**水平可擴展性**
+ 新增新的倉儲，而不會增加控管複雜性
+ 新的取用倉儲會自動強制執行許可政策
+ 分析師會立即查看來自已註冊倉儲的所有資料庫

## 使用案例
<a name="federated-permissions-use-cases"></a>

**具有統一控管的工作負載隔離**

分隔不同工作負載 (ETL、分析、報告） 的運算資源，同時在所有倉儲中維持一致的安全政策。

**多團隊資料存取**

讓多個團隊透過自動強制執行的適當存取控制，從自己的倉儲存取共用資料。

**資料網格架構**

實作資料網格方法，其中多個獨立運算資源在具有統一控管的共用資料上運作。

**成本最佳化**

獨立擴展不同使用案例的運算資源，同時維持集中式許可管理。

# 使用 Amazon Redshift 聯合許可時的考量事項
<a name="federated-permissions-considerations"></a>

以下是 AWS Glue Data Catalog 使用聯合許可與 共用 Amazon Redshift 資料的考量和限制。如需資料共用考量和限制的一般資訊，請參閱[在 Amazon Redshift 中使用資料共用時的考量](https://docs.aws.amazon.com/redshift/latest/dg/datashare-considerations.html)。

只有[叢集版本 197 及更新版本](https://docs.aws.amazon.com/redshift/latest/mgmt/cluster-versions.html#cluster-version-197)才支援此功能。

**不支援的區域**
+ 非洲 (開普敦)
+ 亞太地區 (海德拉巴)
+ 歐洲 (米蘭)
+ 歐洲 (西班牙)
+ 中東 (阿拉伯聯合大公國)

**環境需求**

已註冊和取用者 Redshift 執行個體都必須符合下列要求：
+ **執行個體類型**：RA3 佈建叢集或 Serverless 工作群組
+ **區域**：相同 AWS 區域
+ **帳戶**：相同 AWS 帳戶
+ **加密**：已啟用
+ **隔離層級**：快照隔離

**不支援的物件**

取用者執行個體無法從聯合許可目錄中存取下列物件：
+ SQL UDFs、Python UDFs和 Lambda UDFs
+ ML 模型
+ 在已註冊執行個體上建立的外部結構描述

**粗略存取控制限制**

只有資料表、資料庫、結構描述、搭配 3dot 表示法使用的函數才支援授與

**精細存取控制限制**

除了 Amazon Redshift 中的標準資料列層級安全性 (RLS) 和動態資料遮罩 (DDM) 政策限制之外，如果政策包含這些系統功能，則取用者執行個體無法從聯合許可目錄中存取受 RLS 或 DDM 保護的物件：
+ `user_is_member_of`
+ `role_is_member_of`
+ `user_is_member_of_role`

注意：在 Redshift 的目前版本中，在取用 Redshift 倉儲時存取的 FGAC 相關資料表中繼資料會暫時顯示在目錄中。

**中繼資料探索**
+ 資料欄、資料表、預存程序、函數和參數支援 SHOW 命令。

**Lake Formation**
+ Amazon Redshift 聯合許可目錄中的物件不支援 Lake Formation 許可。

**身分**
+ 只有向 IAM 註冊或 的使用者 AWS IAM Identity Center 才能查詢 Amazon Redshift 聯合許可目錄中的物件。
+ 當您的 Amazon Redshift Cluster 或 Amazon Redshift Serverless Namespace 向 Amazon Redshift 聯合身分許可註冊時，您無法使用 IAM 聯合身分群組 (IAM) 管理 IAM 聯合身分使用者的資料控管。這包括透過 IAM 聯合群組對物件設定的任何先前精細存取控制。
+ 向 Amazon Redshift 聯合許可目錄註冊現有的 Amazon Redshift 叢集或 Amazon Redshift Serverless 命名空間時，所有 AWS IAM Identity Center 聯合身分使用者，包括先前具有存取權的使用者，都必須明確授予 CONNECT 權限才能存取叢集或工作群組。如需授予 CONNECT 權限的詳細資訊，請參閱 [Connect 權限](federated-permissions-prereqs.md#federated-permissions-prereqs-connect)。
+ AWS 使用主體標籤和臨時 IAM 登入資料連線至 Amazon Redshift 叢集或工作群組的 IAM 聯合身分使用者無法辨識為全域身分，也無法存取 Amazon Redshift 聯合身分許可目錄。只有 AWS IAM Identity Center 聯合身分使用者和 AWS IAM 聯合身分使用者或角色有權查詢 Amazon Redshift 聯合身分許可目錄。
+ 當您的 Amazon Redshift Cluster 或 Amazon Redshift Serverless 命名空間向 Amazon Redshift 聯合許可註冊時，下列 GRANT 命令限制適用於 AWS IAM Identity Center 聯合身分使用者或角色，以及 AWS IAM 聯合身分使用者或角色：
  + 您無法將聯合角色授予任何使用者或角色。此規則的一個例外是，您可以將 Redshift 資料庫角色授予 IAM 聯合身分使用者。
  + 您無法將任何角色授予聯合角色或使用者。此規則的一個例外是，您可以將系統定義的角色授予聯合身分使用者或角色。

**引擎存取**
+ 不支援從 Redshift 以外的引擎存取

**更改使用者集全域身分**
+ 僅支援 "Select"、"Delete"、"Update"、"Show"、"Insert"
+ 透過 ALTER USER SET GLOBAL IDENTITY 與使用者相關聯的 IAM 角色，只會在查詢針對具有聯合許可的 Redshift Warehouse 時，以及查詢以 SELECT、UDPATE 和 DELETE 查詢等關係為目標時使用。
+ 此類 IAM 角色也會使用 SHOW DATABASES、SHOW SCHEMAS 和 SHOW TABLES 查詢，針對具有聯合許可的 Redshift Warehouse 中的資源。
+ 此類 IAM 角色不會用於資料定義查詢，例如 CREATE、ALTER 和 DROP。

**錯誤訊息**
+ 對於 Amazon Redshift 聯合許可目錄中的資料庫，任何不支援的操作都會顯示下列錯誤：

  ```
  Operation is not supported through datashares
  ```

# 先決條件
<a name="federated-permissions-prereqs"></a>

## Amazon Redshift 聯合許可設定的 IAM 政策要求
<a name="federated-permissions-prereqs-iam"></a>

Amazon Redshift 聯合許可可讓您透過直接由 Redshift 倉儲管理的許可，集中管理分析工作負載的資料存取。

若要啟用 Amazon Redshift 聯合許可，除了建立 Redshift 佈建叢集和無伺服器命名空間所需的標準許可之外，還需要特定的 IAM 許可。

對於 Redshift 佈建的倉儲，以啟用 Redshift 聯合許可：
+ `redshift:ModifyLakehouseConfiguration`
+ `redshift:RegisterNamespace`

若要讓 Redshift Serverless 倉儲啟用 Redshift 聯合許可：
+ `redshift-serverless:UpdateLakehouseConfiguration`
+ `redshift:RegisterNamespace`

若要 AWS Glue Data Catalog 整合以建立具有 Redshift 聯合許可的目錄：
+ `glue:CreateCatalog`
+ `glue:GetCatalog`

*對於將 Lake Formation 資源註冊為一次性註冊，以從具有聯合許可的遠端倉儲啟用 Redshift 許可聯合：*
+ `lakeformation:RegisterResource`
+ `lakeformation:RegisterResourceWithPrivilegedAccess`

## 具有聯合許可的 Redshift 倉儲的 IAM Identity Center 應用程式組態
<a name="federated-permissions-prereqs-configuration"></a>

Amazon Redshift 支援身分中心身分傳播，以在 Redshift 執行個體 AWS Lake Formation 和 AWS Glue 服務之間無縫傳遞使用者身分。此功能需要設定專用 IdC 應用程式。

*所需的 IAM 許可*

若要建立和管理用於身分中心身分傳播的身分中心應用程式，請確定您的 IAM 許可包含下列許可：

*對於 Amazon Redshift IdC 應用程式管理：*
+ `redshift:CreateRedshiftIdcApplication`
+ `redshift:ModifyRedshiftIdcApplication`
+ `redshift:DescribeRedshiftIdcApplications`

*對於 Lake Formation IdC 應用程式管理：*
+ `lakeformation:CreateLakeFormationIdentityCenterConfiguration`
+ `lakeformation:DescribeLakeFormationIdentityCenterConfiguration`
+ `lakeformation:UpdateLakeFormationIdentityCenterConfiguration`

**建立對應的 IdC 應用程式和組態**

若要為您的分析工作負載建立身分傳播，請建立 Lakehouse 類型的 Amazon Redshift IdC 應用程式。它會管理許可，而不需要明確的使用者指派。連結至此應用程式的 Redshift 倉儲需要 CONNECT 權限，IdC 使用者才能驗證連線。

您只能建立一個 Lakehouse 類型的 Amazon Redshift IdC 應用程式 AWS 帳戶。此應用程式會在與 Lake Formation AWS Glue 和服務整合的所有 Redshift 倉儲中處理身分傳播。應用程式只能與向 註冊的 Redshift 倉儲搭配使用 AWS Glue Data Catalog。

**準備 Redshift 擔任並由 IdC 身分傳播使用的 IAM 角色**

Redshift Lakehouse IdC 應用程式建立需要您帳戶中具有特定 IAM 許可的 IAM 角色。您在 Redshift IdC 應用程式中使用的 IAM 角色應具有下列信任關係，以允許 Redshift 擔任該角色並設定 IdC 身分傳播的內容。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "redshift-serverless.amazonaws.com",
                    "redshift.amazonaws.com"
                ]
            },
            "Action": [
                "sts:AssumeRole",
                "sts:SetContext"
            ]
        }
    ]
}
```

以及低於 IdC IAM 角色支援 IdC 身分傳播的許可。
+  [AmazonRedshiftFederatedAuthorization](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftFederatedAuthorization.html) – 此政策可讓 Amazon Redshift 透過聯合許可查詢 AWS Glue Data Catalog 資料庫。
+ AWSIDC 設定內容政策

  ```
   {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "sts:SetContext"
              ],
              "Resource": "*"
          }
      ]
  }
  ```
+ [ 使用 將 Redshift 設定為 AWS 受管應用程式 AWS IAM Identity Center](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-idp-connect-console.html#redshift-iam-access-control-idp-connect-admin-tasks)。
+ AWSIDC 身分中心 SSO IAM 政策：
  + `sso:DescribeApplication`— 在目錄中建立身分提供者 (IdP) 項目時需要。
  + `sso:DescribeInstance`— 用於手動建立 IdP 聯合角色或使用者。

    ```
    {
      "Sid": "VisualEditor1",
      "Effect": "Allow",
      "Action": [
        "sso:DescribeApplication",
        "sso:DescribeInstance"
      ],
      "Resource": [
        "arn:aws:sso:::instance/<IAM Identity Center Instance ID>",
        "arn:aws:sso::<AWS-account-id>:application/<IAM Identity Center Instance ID>/*"
      ]
    }
    ```

建立新的 Lakehouse 類型 Redshift IdC 應用程式

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

透過在`create-redshift-idc-application`請求中指定 Lakehouse 應用程式類型來建立 Lakehouse IdC 應用程式，無需在 Identity Center 中明確指派使用者，同時啟用 IdC 使用者身分驗證`CONNECT`的權限要求：

```
aws redshift create-redshift-idc-application \
--idc-instance-arn <your_idc_instance_arn> \
--idc-display-name '<name_of_idc_application_display_on_idc_console>' \
--iam-role-arn <idc_carrier_role_arn> \
--application-type Lakehouse \
--redshift-idc-application-name '<name_of_idc_display_on_redshift_console>' \
--service-integrations '[
        {
            "LakeFormation":[
                {
                    "LakeFormationQuery":{"Authorization": "Enabled"}
                }
            ]
        },
        {
            "Redshift":[
                {
                    "Connect" : {
                        "Authorization": "Enabled"
                    }
                }
            ]
        }
    ]'
```

此組態可在 Redshift 和 Lake Formation 之間啟用受信任的身分傳播，允許使用者使用其 Identity Center 憑證跨服務存取資料，而不需要額外的許可指派。

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

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)：// 開啟 Amazon Redshift 主控台。

1. 導覽至 IAM Identity Center 連線頁面，然後選取**建立應用程式**。

1. 設定您的一般 idc 應用程式設定。

1. 選取**使用 AWS IAM Identity Center （建議） 設定 Amazon Redshift 聯合許可**來設定應用程式類型。

1. Lake Formation 和 Redshift 連線身分傳播整合預設為啟用。

1. 完成剩餘的叢集設定，然後選擇**建立應用程式**。

------

修改現有的 Redshift IdC 應用程式

如果您的現有 Redshift IdC 應用程式未啟用所需的服務整合，您可以更新它以支援服務與叢集/命名空間之間的身分傳播。

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

使用 `modify-redshift-idc-application`命令來啟用`LakeFormation:query`授權和`Redshift:Connect`授權。這些整合對於跨服務和跨叢集 IdC 身分傳播至關重要：

```
aws redshift modify-redshift-idc-application \
--redshift-idc-application-arn '<arn_of_the_target_redshift_idc_application>' \
--service-integrations '[
        {
            "LakeFormation":[
                {
                    "LakeFormationQuery":{"Authorization": "Enabled"}
                }
            ]
        },
        {
            "Redshift":[
                {
                    "Connect" : {
                        "Authorization": "Enabled"
                    }
                }
            ]
        }
    ]'
```

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

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)：// 開啟 Amazon Redshift 主控台。

1. 導覽至 IAM Identity Center 連線頁面，然後選擇您要編輯的現有 IDC 應用程式。

1. 選擇身分傳播整合以啟用和設定其他設定，然後選擇**儲存變更**。

------

**建立 Lake Formation 身分中心組態**

如果尚未建立專用 IdC 應用程式，則您的 Lake Formation 服務需要該應用程式。您也必須啟用組態`Redshift:Connect`的授權，才能正常運作。

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

使用 `create-lake-formation-identity-center-configuration`命令來啟用`Redshift:Connect`授權。這些整合對於 Lake Formation 將 IdC 身分傳播到 Redshift 叢集和 Redshift Serverless 命名空間至關重要

```
aws lakeformation  create-lake-formation-identity-center-configuration \
--instance-arn <your_idc_instance_arn> \
--service-integrations '[{
  "Redshift": [{
    "RedshiftConnect": {
      "Authorization": "ENABLED"
    }
  }]
}]'
```

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

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) 開啟 Lake Formation 主控台。

1. 在左側導覽窗格中，選取 **IAM Identity Center 整合**。

1. 在 IAM Identity Center 整合頁面上，您可以為 Amazon Redshift Connect 啟用受信任的身分傳播。Lake Formation 根據有效許可將身分傳播到下游，以便授權的應用程式可以代表使用者存取資料。

------

**更新 Lake Formation 身分中心組態**

如果您已設定未啟用必要服務整合的 Lake Formation IdC 應用程式，您可以更新它以支援服務與叢集/命名空間之間的身分傳播。

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

使用 `update-lake-formation-identity-center-configuration`命令來啟用`Redshift:Connect`授權。這些整合對於跨服務和跨叢集 IdC 身分傳播至關重要：

```
aws lakeformation update-lake-formation-identity-center-configuration \
--service-integrations '[{                                                            
  "Redshift": [{
    "RedshiftConnect": {
      "Authorization": "ENABLED"
    }
  }]
}]'
```

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

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) 開啟 Lake Formation 主控台。

1. 在左側導覽窗格中，選取 **IAM Identity Center 整合**。

1. 在 IAM Identity Center 整合頁面上，您可以為 Amazon Redshift Connect 啟用受信任的身分傳播。Lake Formation 根據有效許可將身分傳播到下游，以便授權的應用程式可以代表使用者存取資料。

------

## Lake Formation 先決條件
<a name="federated-permissions-prereqs-lakeformation"></a>

客戶需要 Lake Formation `CREATE_CATALOG`許可，才能使用 AWS Glue Data Catalog Amazon Redshift 聯合許可啟用 。

1. 如果帳戶屬於現有的 Lake Formation 客戶，Lake Formation 管理員必須明確授予 CREATE\$1CATALOG 許可給每個叢集建立者。使用下列範例 CLI 命令：

   ```
   aws lakeformation grant-permissions \
       --cli-input-json \
       '{
           "Principal": {
               "DataLakePrincipalIdentifier": "<PrincipalArn>"
           },
           "Resource": {
               "Catalog": {}
           },
           "Permissions": [
               "CREATE_CATALOG"
           ]
       }'
   ```

1. 如果帳戶從未使用 Lake Formation，請確認 Lake Formation 主控台的管理角色和任務頁面中的目錄建立者設定為 IAMAllowedPrincipals。如果未設定，請遵循[建立資料湖管理員來設定 Data Lake 管理員](https://docs.aws.amazon.com/lake-formation/latest/dg/initial-lf-config.html#create-data-lake-admin)。或者，如果您只搭配 Amazon Redshift 聯合許可使用 ，則可以建立 AWS Glue Data Catalog 具有最低必要政策的 Data Lake 管理員。

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Statement1",
               "Effect": "Allow",
               "Action": [
                   "lakeformation:PutDataLakeSettings",
                   "lakeformation:GrantPermissions",
                   "lakeformation:GetDataLakeSettings",
                   "lakeformation:BatchGrantPermissions",
                   "lakeformation:ListPermissions"
               ],
               "Resource": [
                   "*"
               ]
           }
       ]
   }
   ```

1. 讓 DataLake Admin 授予 IAMAllowedPrincipals 建立目錄的許可。您可以透過管理角色和任務頁面中目錄建立者的**授予**按鈕授予存取權。

## Connect 權限
<a name="federated-permissions-prereqs-connect"></a>

作為 Amazon Redshift 聯合許可的一部分，Amazon Redshift 引入了 CONNECT 權限，以管理聯合身分使用者對 AWS IAM Identity Center Amazon Redshift 工作群組或叢集的存取。此功能可在工作群組或叢集上啟用 Amazon Redshift 聯合許可時使用。

此權限可讓管理員透過啟用 Amazon Redshift 聯合許可的每個 Amazon Redshift 工作群組 (Amazon Redshift) 或叢集 (Amazon Redshift) 的精細許可來控制使用者存取。Amazon Redshift 管理員可以指定哪些 AWS IAM Identity Center 聯合身分使用者或群組可以直接連線至 Amazon Redshift 工作群組或叢集 (Amazon Redshift)，為每個工作群組或叢集 AWS IAM Identity Center 的使用者存取權提供精細的控制。

### 語法
<a name="federated-permissions-prereqs-connect-syntax"></a>

```
GRANT CONNECT [ON WORKGROUP]
TO [USER] <prefix>:<username> | ROLE <prefix>:<rolename> | PUBLIC;
```

CONNECT 【在 WORKGROUP 上】  
准許連線至工作群組。CONNECT 許可僅適用於身分 AWS IAM Identity Center （使用者和角色）。

TO <prefix>：<username>  
指出接收許可的 AWS IAM Identity Center 聯合身分使用者。

TO ROLE <prefix>：<rolename>  
指出接收許可的 AWS IAM Identity Center 聯合群組。

PUBLIC  
將 CONNECT AWS IAM Identity Center 許可授予所有聯合身分使用者，包括稍後建立的使用者。

# 上線
<a name="federated-permissions-onboarding"></a>

## Redshift 叢集註冊
<a name="federated-permissions-onboarding-cluster-registration"></a>

Redshift 支援建立新的叢集，或從具有 AWS Glue Data Catalog (GDC) 註冊的快照還原叢集。您可以指定此註冊的 GDC 目錄名稱部分。若要支援 IdC 身分傳播，您可以指定 Lakehouse 類型的 Redshift IdC 應用程式 Arn，以啟用 IdC 身分傳播。

**使用 Glue 資料目錄註冊建立新的叢集**

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

若要自動向 Data Catalog 註冊新建立的叢集，請提供用於建立和註冊 Data Catalog 的目錄名稱。`redshift-idc-application-arn` 參數是選用的 - 如果您想要將叢集與類型為 Lakehouse 的 Redshift IdC 應用程式連結，請加以包含。您也可以稍後建立此 IdC 應用程式關聯。

```
aws redshift create-cluster \
    --cluster-identifier 'redshift-cluster' \
   --catalog-name 'glue-data-catalog-name' \
   --redshift-idc-application-arn 'arn:aws:redshift:us-east-1:012345678912:redshiftidcapplication:3f966e50-f1b7-495c-8ace-bd0d6c3c3b17' \
   --<other_configurations_as_needed>
```

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

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)：// 開啟 Amazon Redshift 主控台。

1. 導覽至佈建叢集儀表板，然後選取**建立叢集**。

1. 設定您的一般叢集設定。

1. 在向 註冊 AWS Glue Data Catalog 區段中，選取**向 Amazon Redshift 註冊聯合許可**。
   + 輸入目錄名稱識別符。
   + （建議） 選取使用 AWS IAM Identity Center 與 Redshift IDC 應用程式建立關聯的 Amazon Redshift 聯合許可。

1. 完成剩餘的叢集設定，然後選擇**建立叢集**。

------

**使用 AWS Glue Data Catalog 註冊還原新的叢集**

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

若要將快照還原至具有 AWS Glue Data Catalog 整合的新叢集，請提供用於建立和註冊 AWS Glue 目錄的目錄名稱。`redshift-idc-application-arn` 參數是選用的 - 如果您想要將叢集與類型為 Lakehouse 的 Redshift IdC 應用程式連結，請加以包含。您也可以稍後建立此 IdC 集合關聯。

```
aws redshift restore-from-cluster-snapshot \
   --cluster-identifier 'redshift-cluster' \
   --catalog-name 'glue-data-catalog-name' \
   --snapshot-identifier 'redshift-cluster-snapshot' \
   --redshift-idc-application-arn 'arn:aws:redshift:us-east-1:012345678912:redshiftidcapplication:3f966e50-f1b7-495c-8ace-bd0d6c3c3b17' \
   --<other_configurations_as_needed>
```

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

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)：// 開啟 Amazon Redshift 主控台。

1. 導覽至佈建快照頁面。從快照資料表中，從還原**快照**下拉式功能表中選取**還原至佈建的叢集**。

1. 設定一般叢集設定。

1. 在註冊 AWS Glue Data Catalog 區段中，選取**向 Amazon Redshift 註冊聯合許可**。
   + 輸入目錄名稱識別符。
   + （建議） 選取使用 AWS IAM Identity Center 與 Redshift IDC 應用程式建立關聯的 Amazon Redshift 聯合許可。

1. 完成剩餘的叢集設定，然後選擇**建立叢集**。

------

**修改具有 AWS Glue Data Catalog 註冊的現有叢集**

如果您的 Redshift 叢集已與非 Lakehouse 類型的 Redshift IdC 應用程式相關聯， AWS Glue Data Catalog 則註冊期間會發生下列情況：
+ 未提供 Redshift IdC 應用程式 ARN 時，目錄中現有的 Redshift IdC 應用程式將設定為停用狀態。
+ 指定來自不同 AWS IAM Identity Center 執行個體的 Lakehouse 類型的 Redshift IdC 應用程式時，目前的 IdC 供應商會停用
+ 提供來自相同 AWS IAM Identity Center 執行個體的 Lakehouse 類型的 Redshift IdC 應用程式時
  + 目錄中的 Redshift IdC 應用程式 ARN 將變更為 Lakehouse 類型的 Redshift IdC 應用程式 ARN。可透過查詢 sv\$1identity\$1providers 來檢查更新的目錄。如需 svv\$1identity\$1providers 的詳細資訊，請參閱 [sv\$1identity\$1providers](https://docs.aws.amazon.com/redshift/latest/dg/r_SVV_IDENTITY_PROVIDERS.html)。
  + AWS IAM Identity Center 先前可存取 Redshift 叢集的聯合身分使用者，必須明確授予管理員存取叢集的 CONNECT 權限。如需授予 CONNECT 權限的詳細資訊，請參閱 [Connect 權限](federated-permissions-prereqs.md#federated-permissions-prereqs-connect)。
  + 向 AWS IAM Identity Center 註冊後 AWS Glue Data Catalog，您現有的聯合身分及其擁有的資源保持不變。這些聯合身分的命名空間關聯也會保留。

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

您可以使用 `modify-lakehouse-configuration`命令將您的叢集註冊到 AWS Glue Data Catalog， `catalog-name`用於建立和註冊您的 AWS Glue 目錄。若要支援 IdC 身分傳播，請指定您 Lakehouse 類型的 ARN RedshiftIdcApplication，這需要類型為 Lakehouse 的 Redshift IdC 應用程式，請參閱[使用聯合許可建立新的 Lakehouse 類型 Redshift IdC 應用程式：Redshift Warehouse 的 Identity Center 應用程式組態](https://docs.aws.amazon.com/redshift/latest/dg/federated-permissions-prereqs.html#federated-permissions-prereqs-configuration)。

```
aws redshift modify-lakehouse-configuration \
    --cluster-identifier 'redshift-cluster' \
    --lakehouse-registration Register \
    --catalog-name 'glue-data-catalog-name' \
    --lakehouse-idc-registration Associate \
    --lakehouse-idc-application-arn 'arn:aws:redshift:us-east-1:012345678912:redshiftidcapplication:3f966e50-f1b7-495c-8ace-bd0d6c3c3b17' \
```

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

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/) 開啟 Amazon Redshift 主控台。

1. 導覽至您要註冊的佈建叢集，然後選取它。

1. 從叢集的詳細資訊頁面，從**動作**下拉式功能表中選取**向 註冊 AWS Glue Data Catalog**。

1. 選取**向 Amazon Redshift 註冊聯合許可**選項和
   + 輸入目錄名稱識別符。
   + （建議） 選取 Amazon Redshift 聯合許可 AWS IAM Identity Center ，使用 與 Redshift IDC 應用程式建立關聯，然後選擇**註冊**。

------

## Redshift Serverless 命名空間註冊
<a name="federated-permissions-onboarding-namespace-registration"></a>

Redshift Serverless 可讓工作群組連接的 Serverless 命名空間註冊 AWS Glue Data Catalog。請注意，您的資料庫將在此更新期間重新啟動。

如果您的 Redshift Serverless 命名空間已與非 Lakehouse 類型的 Redshift IdC 應用程式相關聯，則 Glue Data Catalog 註冊期間會發生下列情況：
+ 未提供 Redshift IdC 應用程式 ARN 時，目錄中現有的 Redshift IdC 應用程式將設定為停用狀態。
+ 指定來自不同 AWS IAM Identity Center 執行個體的 Lakehouse 類型的 Redshift IdC 應用程式時，目前的 IdC 供應商會停用
+ 提供來自相同 AWS IAM Identity Center 執行個體的 Lakehouse 類型的 Redshift IdC 應用程式時
  + 目錄中的 Redshift IdC 應用程式 ARN 將變更為 Lakehouse 類型的 Redshift IdC 應用程式 ARN。可透過查詢 sv\$1identity\$1providers 來檢查更新的目錄。如需 svv\$1identity\$1providers 的詳細資訊，請參閱 [sv\$1identity\$1providers](https://docs.aws.amazon.com/redshift/latest/dg/r_SVV_IDENTITY_PROVIDERS.html)。
  + AWS IAM Identity Center 先前可存取 Redshift 叢集的聯合身分使用者，必須明確授予管理員存取叢集的 CONNECT 權限。如需授予 CONNECT 權限的詳細資訊，請參閱 [Connect 權限](federated-permissions-prereqs.md#federated-permissions-prereqs-connect)。
  + 向 AWS IAM Identity Center 註冊後 AWS Glue Data Catalog，您現有的聯合身分及其擁有的資源保持不變。這些聯合身分的命名空間關聯也會保留。

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

您可以使用 `update-lakehouse-configuration`命令向 註冊 Redshift Serverless 命名空間 AWS Glue Data Catalog， `catalog-name` 用於建立和註冊您的黏附目錄。若要支援 IdC 身分傳播，請指定類型為 Lakehouse 之 Redshift Idc 應用程式的 Arn。

```
aws redshift-serverless update-lakehouse-configuration \
    --namespace-name 'serverless-namespace-name' \
    --lakehouse-registration Register \
    --catalog-name 'glue-data-catalog-name' \
    --lakehouse-idc-registration Associate \
    --lakehouse-idc-application-arn 'arn:aws:redshift:us-east-1:012345678912:redshiftidcapplication:3f966e50-f1b7-495c-8ace-bd0d6c3c3b17'
```

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

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)：// 開啟 Amazon Redshift 主控台。

1. 導覽至您要註冊的佈建叢集，然後選取它。

1. 從叢集的詳細資訊頁面，從**動作**下拉式功能表中選取**向 註冊 AWS Glue Data Catalog**。

1. 選取**向 Amazon Redshift 註冊聯合許可**選項和
   + 輸入目錄名稱識別符。
   + （建議） 選取 Amazon Redshift 聯合許可 AWS IAM Identity Center ，使用 與 Redshift IDC 應用程式建立關聯，然後選擇**註冊**。

------

## 啟用 AWS IAM Identity Center 身分傳播
<a name="federated-permissions-onboarding-propagation"></a>

Amazon Redshift 支援 Identity Center (IdC) 身分傳播，以在 Redshift 執行個體和 AWS Lake Formation/AWS Glue 服務之間無縫傳遞 IdC 使用者身分。

**先決條件**
+ 您已建立 Lakehouse 類型的 Amazon Redshift IdC 應用程式，請參閱[AWS IAM Identity Center 具有聯合許可的 Redshift 倉儲的應用程式組態](https://docs.aws.amazon.com/redshift/latest/dg/federated-permissions-prereqs.html#federated-permissions-prereqs-configuration)。
+ 您有已註冊的 Amazon Redshift 叢集或 Amazon Redshift Serverless 命名空間 AWS Glue Data Catalog。
  + Redshift Serverless Namespace 需要連接工作群組才能執行相關操作。

如果您的 Redshift 叢集或 Redshift Serverless 命名空間已與 Lakehouse 以外的類型 Redshift IdC 應用程式相關聯， AWS Glue Data Catalog 則註冊期間會發生下列情況：
+ 未提供 Redshift IdC 應用程式 ARN 時，目錄中現有的 Redshift IdC 應用程式將設定為停用狀態。
+ 指定來自不同 AWS IAM Identity Center 執行個體的 Lakehouse 類型的 Redshift IdC 應用程式時，目前的 IdC 供應商會停用
+ 提供來自相同 AWS IAM Identity Center 執行個體的 Lakehouse 類型的 Redshift IdC 應用程式時
  + 目錄中的 Redshift IdC 應用程式 ARN 將變更為 Lakehouse 類型的 Redshift IdC 應用程式 ARN。可透過查詢 sv\$1identity\$1providers 來檢查更新的目錄。如需 svv\$1identity\$1providers 的詳細資訊，請參閱 [sv\$1identity\$1providers](https://docs.aws.amazon.com/redshift/latest/dg/r_SVV_IDENTITY_PROVIDERS.html)。
  + AWS IAM Identity Center 先前可存取 Redshift 叢集的聯合身分使用者，必須明確授予管理員存取叢集的 CONNECT 權限。如需授予 CONNECT 權限的詳細資訊，請參閱 [Connect 權限](federated-permissions-prereqs.md#federated-permissions-prereqs-connect)。
  + 向 AWS IAM Identity Center 註冊後 AWS Glue Data Catalog，您現有的聯合身分及其擁有的資源保持不變。這些聯合身分的命名空間關聯也會保留。

### 啟用 Amazon Redshift 佈建叢集的 AWS IAM Identity Center 身分傳播
<a name="federated-permissions-onboarding-propagation-cluster"></a>

對於註冊其命名空間的 Amazon Redshift 佈建叢集 AWS Glue Data Catalog，它需要 Lakehouse Amazon Redshift IdC 應用程式，不需要明確將 AWS IAM Identity Center 身分使用者指派給應用程式，IdC 使用者登入權限由 Redshift 倉儲上的 CONNECT 權限管理。

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

您可以使用 `modify-lakehouse-configuration`命令，為具有 Redshift 聯合許可的叢集啟用 IdC 身分傳播，指定您 Lakehouse 類型的 Arn RedshiftIdcApplication，這需要 Redshift Lakehouse IdC 應用程式，請參閱使用[聯合許可建立新的 Lakehouse 類型 Redshift IdC 應用程式：Redshift Warehouse 的 Identity Center 應用程式組態](https://docs.aws.amazon.com/redshift/latest/dg/federated-permissions-prereqs.html#federated-permissions-prereqs-configuration)。

```
aws redshift modify-lakehouse-configuration \
    --cluster-identifier 'redshift-cluster' \
    --lakehouse-idc-registration Associate \
    --lakehouse-idc-application-arn 'arn:aws:redshift:us-east-1:012345678912:redshiftidcapplication:3f966e50-f1b7-495c-8ace-bd0d6c3c3b17' \
```

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

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)：// 開啟 Amazon Redshift 主控台。

1. 導覽至您要註冊的佈建叢集，然後選取它。

1. 從叢集的詳細資訊頁面，從**動作**下拉式功能表中選取**向 註冊 AWS Glue Data Catalog**。

1. 使用 AWS IAM Identity Center 下拉式清單關聯 IDC 應用程式，從 Amazon Redshift 聯合許可中選取**啟用**，然後選擇**儲存變更**。

------

### 啟用 Amazon Redshift Serverless 命名空間的 AWS IAM Identity Center 身分傳播
<a name="federated-permissions-onboarding-propagation-namespace"></a>

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

您可以使用 `modify-lakehouse-configuration`命令，為具有 Redshift 聯合許可的命名空間啟用 IdC 身分傳播，指定您 Lakehouse 類型的 Arn RedshiftIdcApplication，這需要 Redshift Lakehouse IdC 應用程式，請參閱[建立新的 Lakehouse 類型 Redshift IdC 應用程式：具有聯合許可的 Redshift Warehouse 身分中心應用程式組態](https://docs.aws.amazon.com/redshift/latest/dg/federated-permissions-prereqs.html#federated-permissions-prereqs-configuration)。

```
aws redshift modify-lakehouse-configuration \
    --cluster-identifier 'redshift-cluster' \
    --lakehouse-idc-registration Associate \
    --lakehouse-idc-application-arn 'arn:aws:redshift:us-east-1:012345678912:redshiftidcapplication:3f966e50-f1b7-495c-8ace-bd0d6c3c3b17' \
```

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

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/) 開啟 Amazon Redshift 主控台。

1. 導覽至您要編輯註冊的無伺服器命名空間，並加以選取。

1. 從叢集的詳細資訊頁面，從**動作**下拉式功能表中選取**編輯 AWS Glue Data Catalog 註冊**。

1. 從 Amazon Redshift 聯合許可中選取**啟用** AWS IAM Identity Center ，使用下拉式清單關聯 IDC 應用程式，然後選擇**儲存變更**。

------

## 更改使用者集全域身分
<a name="federated-permissions-onboarding-alter-set-global-identity"></a>

除了 IAM 和 AWS IAM Identity Center 登入資料之外，對具有聯合許可的 Redshift Warehouses 執行查詢的使用者也可以使用 IAM 角色進行身分驗證。超級使用者可以為另一個非聯合身分使用者設定 IAM 角色，以在工作階段建立時自動建立關聯，並且在使用聯合身分許可對 Redshift 倉儲進行查詢時，將擔任此 IAM 角色。提供此功能是為了允許 AWS IdC 使用者以非互動方式進行身分驗證。

此功能適用於下列使用案例：
+ 除了具有全域身分的使用者之外，還有現有本機倉儲使用者的大型複雜設定的客戶。
+ 使用 IdC，但希望能夠在不使用互動式瀏覽器動作的情況下自動登入的客戶。

要求與限制
+ 只有超級使用者可以透過 設定 IAM 角色`ALTER USER`。
+ IAM 角色必須連接到叢集。
+ IAM 角色必須具有許可，才能存取在具有聯合許可的 Redshift 倉儲上執行查詢所需的資源。建議使用 `[AmazonRedshiftFederatedAuthorization](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftFederatedAuthorization.html)` AWS 受管政策。
+  透過 GLOBAL IDENTITY IAM 角色驗證的使用者可以使用聯合許可在 Redshift 倉儲中查詢檢視，但無法建立、ALTER、REFRESH 或 DROP。

### 語法
<a name="federated-permissions-onboarding-alter-set-global-identity-syntax"></a>

下列語法說明用於為非聯合資料庫使用者設定 IAM 角色的`ALTER USER SET GLOBAL IDENTITY`命令，以使用聯合許可對 Redshift Warehouses 執行查詢。

```
ALTER USER username SET
GLOBAL IDENTITY IAM_ROLE 'arn:aws:iam::<AWS-account-id>:role/<role-name>'
```

現在，當驗證為目標使用者時 （直接連接為*使用者名稱*，或使用 [SET SESSION AUTHORIZATION ](https://docs.aws.amazon.com/redshift/latest/dg/r_SET_SESSION_AUTHORIZATION.html))，您可以使用 檢查全域身分角色

```
SHOW GLOBAL IDENTITY
```

請注意，建立工作階段時，全域身分角色會與使用者建立關聯。如果您為目前登入的使用者設定全域身分，該使用者將需要重新連線，全域身分才會生效。

下列命令可用來移除相關聯的 IAM 角色。

```
ALTER USER username RESET GLOBAL IDENTITY
```

### Parameters
<a name="federated-permissions-onboarding-alter-set-global-identity-parameters"></a>

使用者名稱  
使用者的名稱。不能是聯合身分使用者，例如 IAM 使用者或 AWS IdC 使用者。

IAM\$1ROLE 'arn：aws：iam：：<account-id>：role/<role-name>'  
當使用者*使用者名稱*在具有聯合許可的 Redshift 倉儲上執行查詢時，請將 Amazon Resource Name (ARN) 用於叢集用於身分驗證和授權的 IAM 角色。此角色需要具有執行查詢所需的許可。建議使用 `[AmazonRedshiftFederatedAuthorization](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftFederatedAuthorization.html)` AWS 受管政策。

# 使用 AWS Glue Data Catalog Redshift 聯合許可查詢在 中註冊的目錄
<a name="federated-permissions-querying"></a>

當您 AWS Glue Data Catalog 使用 Amazon Redshift 聯合許可向 註冊 Amazon Redshift 資料倉儲時，該命名空間中的資料庫會自動掛載在該 AWS 帳戶 和 區域的所有 Amazon Redshift 執行個體中。這可讓您跨多倉儲環境進行查詢，同時透過全域身分和精細存取控制 (FGAC) 政策來維護安全性。

## 先決條件
<a name="federated-permissions-querying-prereqs"></a>

在查詢聯合資料庫之前，請確定您有：
+ 連接至 IAM 使用者或角色的 [AmazonRedshiftFederatedAuthorization](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftFederatedAuthorization.html) AWS 受管政策。對於精細存取控制，您可以從此政策授予特定 IAM 動作，而不是連接完整政策。
+ 為來源資料倉儲中的目錄物件設定的適當許可
+ 存取相同 AWS 帳戶 和 區域中的 Amazon Redshift 資料倉儲。

## 查詢聯合資料庫
<a name="federated-permissions-querying-federated-db"></a>

您可以使用三部分語法來存取資料表，在已註冊目錄下的資料庫中查詢物件：

```
database@namespace_catalog.schema.table
```

### 查詢範例
<a name="federated-permissions-querying-sample-query"></a>

```
SELECT * FROM my_database@my_namespace.sales.transactions  
WHERE transaction_date >= '2024-01-01';
```

此外，您可以透過 [USE](https://docs.aws.amazon.com/redshift/latest/dg/r_USE_command.html) 資料庫從聯合資料庫存取物件。

聯合資料庫也可用於[直接連線](https://docs.aws.amazon.com/redshift/latest/dg/database-direct-connect.html)。

## 安全與存取控制
<a name="federated-permissions-querying-security"></a>

**全域身分和 FGAC 強制執行**

當您使用聯合許可啟用 Amazon Redshift 資料倉儲時，在這些物件上定義的授予和 FGAC 政策會在取用倉儲中自動強制執行。這可確保跨多倉儲環境的一致安全性。

**支援的安全功能**

您可以在 Amazon Redshift 資料倉儲中的物件上設定下列安全控制，這會在所有取用倉儲中強制執行
+ **資料欄層級權限 (CLP)**：授予或限制對特定資料欄的存取
+ **資料列層級安全性 (RLS)**：根據使用者屬性控制對特定資料列的存取
+ **動態資料遮罩 (DDM)**：根據使用者許可自動遮罩敏感資料

# 管理 Amazon Redshift 聯合許可目錄上的存取控制
<a name="federated-permissions-managing-access"></a>

使用 Amazon Redshift 聯合許可，使用者可以定義來自 中任何 Redshift 倉儲的粗略和精細存取控制 AWS 帳戶。粗略分級許可可管理對資料表、檢視和資料庫物件的存取，包括範圍許可，而精細分級控制允許資料欄層級權限和安全政策的應用程式，例如資料列層級安全性 (RLS) 和動態資料遮罩 (DDM)。

## 授予/撤銷
<a name="federated-permissions-managing-access-grant-revoke"></a>

使用聯合許可，您可以定義資料表層級存取的許可，例如從任何 Redshift 倉儲讀取、在資料表中寫入資料，以及從 Redshift 聯合許可資料庫中檢視。

```
GRANT SELECT ON "sales_db@finance-catalog".sales_schema.sales_table TO "IAMR:sales_analyst";  

GRANT INSERT ON "sales_db@finance-catalog".sales_schema.sales_view TO "IAMR:sales_data_engineer";  

REVOKE UPDATE ON "sales_db@finance-catalog".sales_schema.us_sales_view FROM "IAMR:us_sales_analyst";  

REVOKE DELETE ON "sales_db@finance-catalog".sales_schema.us_sales_view FROM "IAMR:us_sales_analyst";
```

Amazon Redshift 聯合許可支援範圍許可，可讓您授予或撤銷資料庫或結構描述內類型之所有物件的許可。

```
GRANT SELECT FOR TABLES IN SCHEMA "sales_db@finance-catalog".sales_schema TO "IAMR:sales_manager";  

REVOKE UPDATE FOR TABLES IN SCHEMA sales_schmea DATABASE "sales_db@finance-catalog" FROM "IAMR:sales_analyst";
```

您可以在資料庫上定義授予/撤銷存取許可。

```
GRANT CREATE ON DATABASE "sales_db@finance-catalog" TO "IAMR:sales_admin";  

REVOKE TEMP ON DATABASE "sales_db@finance-catalog" FROM "IAMR:sales_analyst";
```

如需授予支援的 Amazon Redshift 聯合許可語法的詳細資訊，請參閱 [您可以在 Amazon Redshift 聯合許可目錄中授予的許可](#federated-permissions-managing-access-grant-allowed)。

## 精細定義存取控制
<a name="federated-permissions-managing-access-fgac"></a>

您可以使用資料欄層級存取控制、資料列層級安全性 (RLS) 和動態資料遮罩 (DDM)，在具有 Amazon Redshift 聯合許可的資料庫中定義對敏感資料的精細存取控制。資料欄層級存取控制允許在資料表和檢視上定義更精細的資料欄層級存取權限。在資料庫中具有 `sys:secadmin`角色的超級使用者和使用者或角色可以建立 RLS 和 DDM 政策，將這些政策連接到特定關係，並在關係上啟用 RLS。

### 資料欄層級存取控制：
<a name="federated-permissions-managing-access-column"></a>

您可以對資料表或檢視的個別資料欄授予或撤銷特定權限。

```
GRANT SELECT ON "sales_db@finance-catalog".sales_schema.sales_table(order_number, sales_date, purchase_amount, sale_amount) TO "IAMR:sales_revenue_analyst";  

REVOKE UPDATE ON "sales_db@finance-catalog".sales_schema.us_sales_view(order_number, sales_date, purchase_amount, sale_amount) FROM "IAMR:sales_revenue_analyst";
```

### 資料列層級安全性 (RLS)：
<a name="federated-permissions-managing-access-row"></a>

您可以開啟或關閉關係的資料列層級安全性。

```
ALTER TABLE "sales_db@finance-catalog".sales_schema.sales_table ROW LEVEL SECURITY ON;
```

您可以在資料庫上建立、更改、捨棄 RLS 政策。

```
-- Create an RLS policy  
CREATE RLS POLICY "sales_db@finance-catalog".policy_america  
WITH (region VARCHAR(10))   
USING (region = 'USA');  

-- Alter an RLS policy  
ALTER RLS POLICY "sales_db@finance-catalog".policy_america  
USING (region IN ('USA', 'CANADA', 'Mexico'));  

-- Drop an RLS policy  
DROP RLS POLICY "sales_db@finance-catalog".policy_america;
```

您可以在關係上連接或分離 RLS 政策。

```
-- Attach an RLS policy  
ATTACH RLS POLICY "sales_db@finance-catalog".policy_america  
ON "sales_db@finance-catalog".sales_schema.sales_table  
TO "IAMR:america_sales_analyst";  

-- Detach an RLS policy  
DETACH RLS POLICY "sales_db@finance-catalog".policy_america  
ON "sales_db@finance-catalog".sales_schema.sales_view_america  
FROM "IAMR:global_sales_analyst";
```

### 動態資料遮罩 (DDM)：
<a name="federated-permissions-managing-access-ddm"></a>

您可以在資料庫上建立、更改、捨棄遮罩政策。

```
-- Create a masking policy  
CREATE MASKING POLICY "sales_db@finance-catalog".hash_credit  
WITH (credit_card varchar(256))  
USING (sha2(credit_card + 'testSalt', 256));  

-- Alter an masking policy  
ALTER MASKING POLICY "sales_db@finance-catalog".hash_credit  
USING (sha2(credit_card + 'otherTestSalt', 256));  

-- Drop an masking policy  
DROP MASKING POLICY "sales_db@finance-catalog".hash_credit;
```

您可以在關係上連接或分離遮罩政策。

```
-- Attach a masking policy  
 ATTACH MASKING POLICY hash_credit  
ON "sales_db@finance-catalog".sales_schema.transaction_table (credit_card)  
TO "IAMR:sales_analyst" PRIORITY 30;   

-- Detach a masking policy  
DETACH MASKING POLICY hash_credit  
ON "sales_db@finance-catalog".sales_schema.transaction_view (credit_card)  
FROM "IAMR:transaction_analyst";
```

超級使用者或具有 `sys:secadmin`權限的使用者可以使用 [顯示政策](r_SHOW_POLICIES.md)命令，在具有聯合許可的關係上檢視 RLS 和 DDM 政策及其附件。

**注意**  
Amazon Redshift 聯合許可不支援 RLS 中的使用者定義函數 (UDF)、DDM 政策定義。
Amazon Redshift 聯合許可不支援 user\$1is\$1member\$1of、 role\$1is\$1member\$1of、user\$1is\$1member\$1of\$1role 等 Redshift SQL 函數。

### 您可以在 Amazon Redshift 聯合許可目錄中授予的許可
<a name="federated-permissions-managing-access-grant-allowed"></a>

SQL 陳述式支援對具有不同精細程度之資源的 Amazon Redshift 聯合許可的資料庫進行許可管理。語法支援本機資料表參考 （連線至包含 資源的資料庫時，或來源資料庫處於使用中時） 和完整跨資料庫參考。

**注意**
+ *username* 可以參考 IAM 使用者、IAM 角色或 IdC (AWS IAM Identity Center) 使用者。
+ *role\$1name* 可以參考 IdC 群組。不支援 IAM 群組。

#### 粗略分割許可
<a name="federated-permissions-managing-access-grant-allowed-coarse"></a>

```
GRANT { SELECT | INSERT | UPDATE | DELETE | TRUNCATE} ON   
[ TABLE ] { table_name | database@catalog.schema_name.table_name }  
TO { username | ROLE role_name | PUBLIC }  

REVOKE { SELECT | INSERT | UPDATE | DELETE | TRUNCATE } ON  
[ TABLE ] { table_name | database@catalog.schema_name.table_name }   
FROM { username | ROLE role_name | PUBLIC }
```

#### 資料欄層級權限
<a name="federated-permissions-managing-access-grant-allowed-column"></a>

```
GRANT { { SELECT | UPDATE | DELETE }   
( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) }  
ON { table_name | database@catalog.schema_name.table_name }  
TO { username | ROLE role_name | PUBLIC }  

REVOKE { { SELECT | UPDATE | DELETE }   
( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) }  
ON { table_name | database@catalog.schema_name.table_name }  
FROM { username | ROLE role_name | PUBLIC }
```

### 範圍許可
<a name="federated-permissions-managing-access-scoped"></a>

```
GRANT { CREATE | USAGE | ALTER | DROP } [,...] | ALL [ PRIVILEGES ] }  
FOR SCHEMAS IN  
DATABASE database@catalog   
TO { username [ WITH GRANT OPTION ] | ROLE role_name } [, ...]  

GRANT   
{ { SELECT | INSERT | UPDATE | DELETE | DROP | ALTER | TRUNCATE | REFERENCES } [, ...] } | ALL [ PRIVILEGES ] } }  
FOR TABLES IN  
{ SCHEMA schema_name [DATABASE database@catalog ] | DATABASE database@catalog }  
TO { username [ WITH GRANT OPTION ] | ROLE role_name } [, ...]  

REVOKE [ GRANT OPTION ] { CREATE | USAGE | ALTER | DROP } [,...] | ALL [ PRIVILEGES ] }   
FOR SCHEMAS IN   
DATABASE database@catalog   
FROM { username | ROLE role_name } [, ...]   

REVOKE [ GRANT OPTION ] { { SELECT | INSERT | UPDATE | DELETE | DROP | ALTER | TRUNCATE | REFERENCES } [, ...] } | ALL [ PRIVILEGES ] } }   
FOR TABLES IN   
{ SCHEMA schema_name [ DATABASE database@catalog ] | DATABASE database@catalog }   
FROM { username | ROLE role_name } [, ...]
```

# Amazon Redshift 聯合許可 - end-to-end範例
<a name="federated-permissions-end-examples"></a>

以下是end-to-end範例，示範如何使用 Amazon Redshift 聯合許可建立和管理完整的資料控管政策。這些政策包括資料列層級安全性 (RLS)、動態資料遮罩 (DDM) 和資料欄層級許可 (CLP)，這些政策可共同根據使用者角色和條件控制資料存取。

您必須是 `superuser`或具有 [sys：secadmin](https://docs.aws.amazon.com/redshift/latest/dg/r_roles-default.html) 角色，才能執行此範例。

## 先決條件
<a name="federated-permissions-end-examples-prereqs"></a>

這些範例假設下列「IAMR：role\$1name」角色已存在於帳戶中，否則請建立這些角色。此外，Redshift 資料倉儲使用 AWS Glue Data Catalog 名為 "catalog\$1name" 的 註冊，並具有 "db\$1name" 資料庫。

## 在目錄執行個體上，將 sys：secadmin 角色授予對應的 IAM 角色
<a name="federated-permissions-end-examples-catalog-grant"></a>

```
-- Grant sys:secadmin role to relevant user (must be run on Redshift catalog instance)   
        GRANT ROLE sys:secadmin TO "IAMR:AccountSecurityAdminrole_name";
```

### 靜態將在 Redshift 運算倉儲上執行
<a name="federated-permissions-end-examples-compute"></a>

如果您使用的是 IAM 或 IdC 使用者，您可以略過兩個步驟來建立本機倉儲使用者和全域身分映射。

#### 步驟 1：建立本機倉儲的必要使用者，以測試控管政策
<a name="federated-permissions-end-examples-users"></a>

```
-- Create test users.  
CREATE USER alice WITH PASSWORD 'Alice_pass_1';  
CREATE USER oscar WITH PASSWORD 'Oscar_pass_1';  
CREATE USER sierra WITH PASSWORD 'Sierra_pass_1';
```

#### 步驟 2：設定全域身分 IAM 角色映射
<a name="federated-permissions-end-examples-mapping"></a>

```
-- Map local users to IAM roles (executed by superuser).  
        
-- Make user sierra a sys:secadmin by setting the global identity  
-- to `IAMR:AccountSecurityAdmin`.  
-- This role has been granted secadmin privilege on Redshift catalog instance.  

ALTER USER sierra SET GLOBAL IDENTITY  
IAM_ROLE 'arn:aws:iam::123456789012:role/AccountSecurityAdmin';  

ALTER USER alice SET GLOBAL IDENTITY  
IAM_ROLE 'arn:aws:iam::123456789012:role/Analyst';  

ALTER USER oscar SET GLOBAL IDENTITY  
IAM_ROLE 'arn:aws:iam::123456789012:role/Operator';  

-- Verify global identity settings.  
SET SESSION AUTHORIZATION sierra;  
SHOW GLOBAL IDENTITY;  

SET SESSION AUTHORIZATION alice;  
SHOW GLOBAL IDENTITY;  

SET SESSION AUTHORIZATION oscar;  
SHOW GLOBAL IDENTITY;  

-- Reset to default session.  
RESET SESSION AUTHORIZATION;
```

## 設定環境
<a name="federated-permissions-end-examples-environment"></a>

首先，建立資料表，並填入範例客戶資料和查閱控管政策的資料表。

```
-- Create the main customer table.  
CREATE TABLE db_name@catalog_name.public.customers (  
    id INTEGER,  
    name VARCHAR(50),  
    email VARCHAR(100),  
    region VARCHAR(20),  
    revenue DECIMAL(10,2)  
);  

-- Populate with sample customer data.  
INSERT INTO db_name@catalog_name.public.customers VALUES  
(1, 'John Smith', 'john@email.com', 'US', 1000.00),  
(2, 'Jane Doe', 'jane@email.com', 'EU', 500.00),  
(3, 'Mike Johnson', 'mike@email.com', 'US', 2000.00);  

-- Grant basic table access.  
GRANT ALL ON db_name@catalog_name.public.customers TO PUBLIC;  

-- Create lookup table for region-based policies.  
CREATE TABLE db_name@catalog_name.public.lookup_regions (  
    region_code VARCHAR(20),  
    allowed BOOLEAN  
);  

INSERT INTO db_name@catalog_name.public.lookup_regions VALUES   
('US', TRUE),   
('EU', FALSE),   
('APAC', TRUE);  

GRANT ALL ON db_name@catalog_name.public.lookup_regions TO PUBLIC;  

-- Create lookup table for revenue-based masking.  
CREATE TABLE db_name@catalog_name.public.lookup_revenue_tiers (base_revenue INTEGER);  

INSERT INTO db_name@catalog_name.public.lookup_revenue_tiers VALUES (1000), (2000);  
GRANT ALL ON db_name@catalog_name.public.lookup_revenue_tiers TO PUBLIC;
```

## 設定資料欄層級許可 (CLP)
<a name="federated-permissions-end-examples-clp"></a>

設定不同使用者的資料欄層級存取，以控制使用者可以存取的資料欄。

```
-- Grant specific column access to Analyst i.e. `alice`.  
GRANT SELECT (id, region) ON db_name@catalog_name.public.customers  
    TO "IAMR:Analyst";  

-- Grant different column access to Operator i.e. `oscar`.  
GRANT SELECT (id, name, revenue) ON db_name@catalog_name.public.customers  
    TO "IAMR:operator";
```

## 建立資料列層級安全性 (RLS) 政策
<a name="federated-permissions-end-examples-rls"></a>

建立 RLS 政策，根據使用者授予和資料條件來控制使用者可以看到哪些資料列。

```
-- Switch to admin user to create policies.  
SET SESSION AUTHORIZATION sierra;  

-- Create simple RLS policy: Analysts see only US customers.  
CREATE RLS POLICY db_name@catalog_name.us_only   
WITH (region VARCHAR(20))   
USING (region = 'US');  

-- Attach the policy to the Analyst i.e. `alice`.  
ATTACH RLS POLICY db_name@catalog_name.us_only   
ON db_name@catalog_name.public.customers   
TO "IAMR:Analyst";  

-- Enable row level security on the table.  
ALTER TABLE db_name@catalog_name.public.customers ROW LEVEL SECURITY ON;  

-- Create advanced RLS policy using lookup table.  
CREATE RLS POLICY db_name@catalog_name.region_lookup_policy  
WITH (region VARCHAR(20)) AS r  
USING (r.region IN (  
    SELECT region_code   
    FROM public.lookup_regions   
    WHERE allowed = TRUE  
));  

-- Attach the lookup-based policy to Operator i.e. `oscar`.  
ATTACH RLS POLICY db_name@catalog_name.region_lookup_policy   
ON db_name@catalog_name.public.customers   
TO "IAMR:Operator";
```

## 建立動態資料遮罩 (DDM) 政策
<a name="federated-permissions-end-examples-ddm"></a>

建立遮罩政策，根據使用者角色和條件混淆敏感資料。

```
-- Create masking policy for PII data (names and emails).  
CREATE MASKING POLICY db_name@catalog_name.mask_pii   
WITH (DATA VARCHAR(100))  
USING (SHA2(DATA + 'secret', 256)::TEXT);  

-- Attach masking to name and email columns for all users.  
ATTACH MASKING POLICY db_name@catalog_name.mask_pii   
ON db_name@catalog_name.public.customers (name)   
TO PUBLIC;  

ATTACH MASKING POLICY db_name@catalog_name.mask_pii   
ON db_name@catalog_name.public.customers (email)   
TO PUBLIC;  

-- Create conditional masking policy for revenue data.  
CREATE MASKING POLICY db_name@catalog_name.conditional_mask  
WITH (revenue DECIMAL(10,2))  
USING (CASE WHEN revenue IN (SELECT base_revenue  
                                    FROM public.lookup_revenue_tiers)  
            THEN revenue ELSE 0.00 END);  

-- Attach conditional masking to Analyst i.e. `alice` with priority.  
ATTACH MASKING POLICY db_name@catalog_name.conditional_mask   
ON db_name@catalog_name.public.customers (revenue)   
TO "IAMR:Analyst"   
PRIORITY 20;
```

## 稽核可用/套用的政策
<a name="federated-permissions-end-examples-audit"></a>

使用 SHOW 命令來確認您的控管政策已正確設定。

```
-- Show all RLS policies in the database.  
SHOW RLS POLICIES FROM DATABASE db_name@catalog_name LIMIT 10;  

-- Show RLS policies for specific users and tables.  
SHOW RLS POLICIES ON db_name@catalog_name.public.customers FOR "IAMR:Analyst" LIMIT 10;  
SHOW RLS POLICIES ON db_name@catalog_name.public.customers FOR "IAMR:Operator" LIMIT 10;  
SHOW RLS POLICIES ON db_name@catalog_name.public.customers FOR PUBLIC LIMIT 10;  

-- Show all masking policies in the database.  
SHOW MASKING POLICIES FROM DATABASE db_name@catalog_name LIMIT 10;  

-- Show Masking policies for specific users and tables.  
SHOW MASKING POLICIES ON db_name@catalog_name.public.customers FOR "IAMR:Analyst" LIMIT 10;  
SHOW MASKING POLICIES ON db_name@catalog_name.public.customers FOR "IAMR:Operator" LIMIT 10;  
SHOW MASKING POLICIES ON db_name@catalog_name.public.customers FOR PUBLIC LIMIT 10;
```

## 測試存取模式
<a name="federated-permissions-end-examples-testing"></a>

測試不同的使用者如何根據其角色和套用的政策來查看資料。

```
-- Test as analyst: Only US customers, only id/region columns,  
-- conditional revenue masking.  
SET SESSION AUTHORIZATION alice;  
SELECT id, region FROM db_name@catalog_name.public.customers ORDER BY id;  
SELECT id, region, revenue FROM db_name@catalog_name.public.customers ORDER BY id;  

-- Test as operator: Allowed regions only, masked names, specific columns.  
SET SESSION AUTHORIZATION oscar;  
SELECT id, name, revenue FROM db_name@catalog_name.public.customers ORDER BY id;  
SELECT id, name, region FROM db_name@catalog_name.public.customers ORDER BY id;  

-- Test as admin: Full access to all data.  
SET SESSION AUTHORIZATION sierra;  
SELECT * FROM db_name@catalog_name.public.customers ORDER BY id;
```

## 變更政策
<a name="federated-permissions-end-examples-alter"></a>

修改現有政策以變更其行為，而無需重新建立它們。

```
-- Switch back to admin user.  
SET SESSION AUTHORIZATION sierra;  

-- Alter the PII masking policy to use simple string replacement.  
ALTER MASKING POLICY db_name@catalog_name.mask_pii  
USING ('***MASKED***'::TEXT);  

-- Alter the conditional masking policy to use different threshold.  
ALTER MASKING POLICY db_name@catalog_name.conditional_mask  
USING (CASE WHEN revenue >= 500.00 THEN revenue ELSE -1.00 END);  

-- Alter the RLS policy to show only disallowed regions.  
ALTER RLS POLICY db_name@catalog_name.region_lookup_policy  
USING (r.region IN (  
    SELECT region_code   
    FROM db_name@catalog_name.public.lookup_regions   
    WHERE allowed = FALSE  
));
```

## 分離和捨棄政策
<a name="federated-permissions-end-examples-detach"></a>

不再需要政策時將其移除。

```
-- Detach RLS policies from users.  
DETACH RLS POLICY db_name@catalog_name.us_only   
ON db_name@catalog_name.public.customers   
FROM "IAMR:Analyst";  

DETACH RLS POLICY db_name@catalog_name.region_lookup_policy   
ON db_name@catalog_name.public.customers   
FROM "IAMR:Operator";  

-- Detach masking policies.  
DETACH MASKING POLICY db_name@catalog_name.mask_pii   
ON db_name@catalog_name.public.customers (name)   
FROM PUBLIC;  

DETACH MASKING POLICY db_name@catalog_name.mask_pii   
ON db_name@catalog_name.public.customers (email)   
FROM PUBLIC;  

DETACH MASKING POLICY db_name@catalog_name.conditional_mask   
ON db_name@catalog_name.public.customers (revenue)   
FROM "IAMR:Analyst";
```

## 清除：關閉 RLS 和捨棄政策
<a name="federated-permissions-end-examples-cleanup"></a>

```
-- Turn off Row-level security.  
ALTER TABLE db_name@catalog_name.public.customers ROW LEVEL SECURITY OFF;  

-- Drop policies.  
DROP RLS POLICY db_name@catalog_name.us_only CASCADE;  
DROP RLS POLICY db_name@catalog_name.region_lookup_policy CASCADE;  
DROP MASKING POLICY db_name@catalog_name.mask_pii CASCADE;  
DROP MASKING POLICY db_name@catalog_name.conditional_mask CASCADE;  

-- Drop tables.  
DROP TABLE db_name@catalog_name.public.customers;  
DROP TABLE db_name@catalog_name.public.lookup_regions;  
DROP TABLE db_name@catalog_name.public.lookup_revenue_tiers;
```

## 重設全域身分
<a name="federated-permissions-end-examples-global"></a>

```
-- TO rest the global identity.  
ALTER USER alice RESET GLOBAL IDENTITY;  
ALTER USER oscar RESET GLOBAL IDENTITY;  
ALTER USER sierra RESET GLOBAL IDENTITY;
```

# 聯合身分使用者組態
<a name="federated-permissions-user-cofig"></a>

透過 Amazon Redshift 聯合許可，使用 IAM 或 IAM Identity Center (IdC) 登入資料進行身分驗證的使用者可以在所有 Amazon Redshift 倉儲中獲得一致的體驗。

當使用者連線到任何 Redshift 叢集時，其組態參數，例如日期格式、搜尋路徑和時區偏好設定，會自動套用至其工作階段。這可確保在所有叢集中維持相同的使用者體驗，而不需要手動重新設定，提供無縫且個人化的體驗。

**範例**

假設 **Alex** 是已在主要 Redshift 資料庫中設定偏好日期格式和時區的資料分析師。當 Alex 在那裡執行查詢時，所有日期值都會以偏好的格式顯示。

現在，Alex 連線到另一個 Redshift 倉儲上的**共用**或**自動掛載**資料庫時，會一致套用這些相同的偏好設定。Alex 在相同的日期格式和時區中看到結果，以確保跨環境的一致體驗。

## 跨 Amazon Redshift 倉儲一致的使用者組態
<a name="federated-user-config-settings"></a>

對於使用 **IAM** 或 **AWS IAM Identity Center (IdC)** 登入資料進行身分驗證的使用者，下列**使用者層級[組態](https://docs.aws.amazon.com/redshift/latest/dg/cm_chap_ConfigurationRef.html)**會自動跨 Redshift 叢集同步：
+ [datestyle](https://docs.aws.amazon.com/redshift/latest/dg/r_datestyle.html)
+ [enable\$1case\$1sensitive\$1identifier](https://docs.aws.amazon.com/redshift/latest/dg/r_enable_case_sensitive_identifier.html)
+ [extra\$1float\$1digits](https://docs.aws.amazon.com/redshift/latest/dg/r_extra_float_digits.html)
+ [search\$1path](https://docs.aws.amazon.com/redshift/latest/dg/r_search_path.html)
+ [cast\$1super\$1null\$1on\$1error](https://docs.aws.amazon.com/redshift/latest/dg/r_cast_super_null_on_error.html)
+ [default\$1geometry\$1encoding](https://docs.aws.amazon.com/redshift/latest/dg/r_default_geometry_encoding.html)
+ [describe\$1field\$1name\$1in\$1uppercase](https://docs.aws.amazon.com/redshift/latest/dg/r_describe_field_name_in_uppercase.html)
+ [downcase\$1delimited\$1identifier](https://docs.aws.amazon.com/redshift/latest/dg/r_downcase_delimited_identifier.html)
+ [enable\$1case\$1sensitive\$1super\$1attribute](https://docs.aws.amazon.com/redshift/latest/dg/r_enable_case_sensitive_super_attribute.html)
+ [enable\$1numeric\$1rounding](https://docs.aws.amazon.com/redshift/latest/dg/r_enable_numeric_rounding.html)
+ [enable\$1result\$1cache\$1for\$1session](https://docs.aws.amazon.com/redshift/latest/dg/r_enable_result_cache_for_session.html)
+ [error\$1on\$1nondeterministic\$1update](https://docs.aws.amazon.com/redshift/latest/dg/r_error_on_nondeterministic_update.html)
+ [interval\$1forbid\$1composite\$1literals](https://docs.aws.amazon.com/redshift/latest/dg/r_interval_forbid_composite_literals.html)
+ [json\$1serialization\$1enable](https://docs.aws.amazon.com/redshift/latest/dg/r_json_serialization_enable.html)
+ [json\$1serialization\$1parse\$1nested\$1strings](https://docs.aws.amazon.com/redshift/latest/dg/r_json_serialization_parse_nested_strings.html)
+ [mv\$1enable\$1aqmv\$1for\$1session](https://docs.aws.amazon.com/redshift/latest/dg/r_mv_enable_aqmv_for_session.html)
+ [navigate\$1super\$1null\$1on\$1error](https://docs.aws.amazon.com/redshift/latest/dg/r_navigate_super_null_on_error.html)
+ [parse\$1super\$1null\$1on\$1error](https://docs.aws.amazon.com/redshift/latest/dg/r_parse_super_null_on_error.html)
+ [spectrum\$1enable\$1pseudo\$1columns](https://docs.aws.amazon.com/redshift/latest/dg/r_spectrum_enable_pseudo_columns.html)
+ [enable\$1spectrum\$1oid](https://docs.aws.amazon.com/redshift/latest/dg/r_spectrum_enable_spectrum_oid.html)
+ [spectrum\$1query\$1maxerror](https://docs.aws.amazon.com/redshift/latest/dg/r_spectrum_query_maxerror.html)
+ [stored\$1proc\$1log\$1min\$1messages](https://docs.aws.amazon.com/redshift/latest/dg/r_stored_proc_log_min_messages.html)
+ [analyze\$1threshold\$1percent](https://docs.aws.amazon.com/redshift/latest/dg/r_analyze_threshold_percent.html)
+ [enable\$1vacuum\$1boost](https://docs.aws.amazon.com/redshift/latest/dg/r_enable_vacuum_boost.html)
+ [pg\$1federation\$1repeatable\$1read](https://docs.aws.amazon.com/redshift/latest/dg/r_pg_federation_repeatable_read.html)

## 連線和組態管理
<a name="federated-user-config-management"></a>
+ 使用 **JDBC** 連線至 Amazon Redshift 時，也可能會自動套用某些**工作階段層級組態**。如需詳細資訊，請參閱 JDBC 工作階段層級組態文件。
+ 使用者也可以使用 [ALTER USER](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_USER.html) 定義持久**性使用者層級組態**。

# 停用 AWS IAM Identity Center 傳播
<a name="federated-permissions-offboarding"></a>

您必須先讓 Amazon Redshift Cluster AWS IAM Identity Center 或 Amazon Redshift Serverless Namespace 向 Lakehouse Redshift IdC 應用程式註冊 AWS Glue Data Catalog 並與之建立關聯，才能停用傳播。Amazon Redshift Serverless 命名空間需要連接的工作群組才能執行相關操作。

## 停用 Amazon Redshift 佈建叢集的 AWS IAM Identity Center 身分傳播
<a name="federated-permissions-offboarding-clusters"></a>

停用 Amazon Redshift 佈建叢集的 AWS IAM Identity Center 身分傳播時，連接至叢集的 Lakehouse Redshift IdC 應用程式會在叢集中標示為已停用。

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

您可以使用 `modify-lakehouse-configuration`命令來停用具有 Redshift 聯合許可之叢集的 IdC 身分傳播，請注意，它不會從您的叢集刪除 IdC 供應商，而是將其置於停用模式。

```
aws redshift modify-lakehouse-configuration \
    --cluster-identifier 'redshift-cluster' \
    --lakehouse-idc-registration Disassociate \
```

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

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)：// 開啟 Amazon Redshift 主控台。

1. 導覽至您要編輯註冊的佈建叢集，然後選取它。

1. 從叢集的詳細資訊頁面，從**動作**下拉式功能表中選取**編輯 AWS Glue Data Catalog 註冊**。

1. 使用 AWS IAM Identity Center 下拉式清單從 Amazon Redshift 聯合許可中選取**停用**，以取消關聯 IDC 應用程式，然後選擇**儲存變更**。

------

## 停用 Amazon Redshift Serverless 命名空間的 AWS IAM Identity Center 身分傳播
<a name="federated-permissions-offboarding-namespace"></a>

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

您可以使用 `modify-lakehouse-configuration`命令來停用具有 Redshift 聯合許可之命名空間的 IdC 身分傳播，請注意，它不會從您的叢集刪除 IdC 供應商，而是將其置於停用模式。

```
aws redshift-serverless update-lakehouse-configuration \
--namespace-name 'serverless-namespace-name' \
--lakehouse-idc-registration Disassociate \
```

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

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)：// 開啟 Amazon Redshift 主控台。

1. 導覽至您要編輯註冊的無伺服器命名空間，並加以選取。

1. 從命名空間的詳細資訊頁面，從**動作**下拉式功能表中選取**編輯 AWS Glue Data Catalog 註冊**。

1. 使用 AWS IAM Identity Center 下拉式清單從 Amazon Redshift 聯合許可中選取**停用**，以取消關聯 IDC 應用程式，然後選擇**儲存變更**。

------

# 從 取消註冊 AWS Glue Data Catalog
<a name="federated-permisisons-offboarding-deregister-catalog"></a>

## Amazon Redshift 聯合許可取消註冊的 IAM 政策要求
<a name="federated-permisisons-offboarding-deregister-catalog-iam-reqs"></a>

 若要從 取消註冊叢集或無伺服器命名空間 AWS Glue Data Catalog，需要低於 IAM 許可。

對於 Redshift 佈建的叢集
+ `redshift:ModifyLakehouseConfiguration`
+ `redshift:DregisterNamespace`

對於 Redshift Serverless
+ `redshift-serverless:UpdateLakehouseConfiguration`
+ `redshift:DregisterNamespace`

用於 AWS Glue Data Catalog 整合
+ `glue:DeleteCatalog`
+ `glue:GetCatalog`

對於 Lake Formation 資源註冊
+ `lakeformation:DeregisterResource`

## 從 取消註冊 Redshift AWS Glue Data Catalog
<a name="federated-permisisons-offboarding-deregister-catalog-provisioned"></a>

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

您可以使用 `modify-lakehouse-configuration`命令來取消註冊叢集 AWS Glue Data Catalog，如果您有與叢集相關聯的 IdC 提供者，則會將叢集中的 IdC 提供者設為停用模式。

```
aws redshift modify-lakehouse-configuration \
--cluster-identifier 'redshift-cluster' \
--lakehouse-registration Deregister
```

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

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)：// 開啟 Amazon Redshift 主控台。

1. 導覽至您要取消註冊的佈建叢集，然後選取它。

1. 從叢集的詳細資訊頁面，從**動作**下拉式功能表中選取**取消註冊 AWS Glue Data Catalog**，然後選擇**取消註冊**。

------

## 從 取消註冊 Redshift Serverless 命名空間 AWS Glue Data Catalog
<a name="federated-permisisons-offboarding-deregister-catalog-namespace"></a>

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

您可以使用 `update-lakehouse-configuration`命令從中取消註冊 Redshift Serverless 命名空間 AWS Glue Data Catalog，如果您有與叢集相關聯的 IdC 提供者，則會將叢集中的 IdC 提供者設為停用模式。

```
aws redshift modify-lakehouse-configuration \
--cluster-identifier 'redshift-cluster' \
--lakehouse-registration Deregister
```

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

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)：// 開啟 Amazon Redshift 主控台。

1. 導覽至您要取消註冊的無伺服器命名空間叢集，並加以選取。

1. 從叢集的詳細資訊頁面，從**動作**下拉式功能表中選取**取消註冊 AWS Glue Data Catalog**，然後選擇**取消註冊**。

------