

 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="zero-etl-using.redshift-iam"></a>

若要將資料從整合來源複寫到您的 Amazon Redshift 資料倉儲，您最初必須新增下列兩個實體：
+ *授權主體* — 識別可在資料倉儲中建立零 ETL 整合的使用者或角色。
+ *授權的整合來源* — 識別可更新資料倉儲的來源資料庫。

您可以從 Amazon Redshift 主控台上的**資源政策**索引標籤或使用 Amazon Redshift `PutResourcePolicy` API 作業，設定授權的整合來源。

## 新增授權主體
<a name="zero-etl-using.redshift-iam-ap"></a>

若要在 Redshift Serverless 工作群組或佈建叢集中建立零 ETL 整合，請授權相關聯命名空間或佈建叢集的存取權。

如果下列兩個情況都成立，則可以略過此步驟：
+  AWS 帳戶 擁有 Redshift Serverless 工作群組或佈建叢集的 也擁有來源資料庫。
+ 該主體與以身分為基礎的 IAM 政策相關聯，且具有可在此 Redshift Serverless 命名空間或佈建叢集中建立零 ETL 整合的許可。

### 將授權主體新增至 Amazon Redshift Serverless 命名空間
<a name="iam-ap-serverless"></a>

1. 在 Amazon Redshift 主控台中，從左側導覽窗格中選擇 **Redshift Serverless**。

1. 選擇**命名空間組態**，然後選擇您的命名空間，然後移至**資源政策**索引標籤。

1. 選擇**新增授權主體**。

1. 對於您要新增的每個授權委託人，在命名空間中輸入 AWS 使用者或角色的 ARN，或 AWS 帳戶 您要授予建立零 ETL 整合存取權的 的 ID。帳戶 ID 會儲存為 ARN。

1. 選擇**儲存變更**。

### 將授權主體新增至 Amazon Redshift 佈建叢集
<a name="iam-ap-cluster"></a>

1. 在 Amazon Redshift 主控台的左側導覽窗格中，選擇**佈建叢集儀表板**。

1. 選擇**叢集**，然後選擇叢集，接著前往**資源政策**索引標籤。

1. 選擇**新增授權主體**。

1. 針對您要新增的每個授權委託人，在叢集中輸入 AWS 使用者或角色的 ARN，或 AWS 帳戶 您要授予建立零 ETL 整合之存取權的 ID。帳戶 ID 會儲存為 ARN。

1. 選擇**儲存變更**。

## 新增授權的整合來源
<a name="zero-etl-using.redshift-iam-air"></a>

若要允許來源更新 Amazon Redshift 資料倉儲，您必須以授權的整合來源的形式將其新增至命名空間。

### 將授權的整合來源新增至 Amazon Redshift Serverless 命名空間
<a name="iam-air-serverless"></a>

1. 在 Amazon Redshift 主控台中，前往 **無伺服器儀表板**。

1. 選擇命名空間的名稱。

1. 前往**資源政策**索引標籤。

1. 選擇**新增授權的整合來源**。

1. 針對零 ETL 整合指定來源的 ARN。

**注意**  
移除授權的整合來源會讓系統不再將資料複寫至命名空間。此動作會停用從該來源到此命名空間的所有零 ETL 整合。

### 將授權的整合來源新增至 Amazon Redshift 佈建叢集
<a name="iam-air-cluster"></a>

1. 在 Amazon Redshift 主控台中，前往**佈建叢集儀表板**。

1. 選擇佈建叢集的名稱。

1. 前往**資源政策**索引標籤。

1. 選擇**新增授權的整合來源**。

1. 指定屬於零 ETL 整合資料來源之來源的 ARN。

**注意**  
移除授權的整合來源會讓系統不再將資料複寫至佈建叢集。此動作會停用從該來源到此 Amazon Redshift 佈建叢集的所有零 ETL 整合。

## 使用 Amazon Redshift API 設定授權
<a name="zero-etl-using.resource-policies"></a>

您可以使用 Amazon Redshift API 操作來設定與零 ETL 整合搭配使用的資源政策。

若要控制可以在命名空間中建立傳入整合的來源，請建立資源政策，並將其附加至命名空間。使用資源政策，您可以指定具有整合存取權的來源。資源政策會附加至目標資料倉儲的命名空間，以允許來源建立傳入整合，將即時資料從來源複寫到 Amazon Redshift。

以下是範例資源政策。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "redshift.amazonaws.com"
      },
      "Action": "redshift:AuthorizeInboundIntegration",
      "Resource": "arn:aws:redshift:*:*:integration:*",
      "Condition": {
        "StringEquals": {
          "aws:SourceArn": "arn:aws:rds:*:111122223333:cluster:*"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": {
       "AWS": "arn:aws:iam::111122223333:root"
      },
      "Action": "redshift:CreateInboundIntegration",
      "Resource": "arn:aws:redshift:*:*:integration:*"
    }
  ]
}
```

------

以下概述了適用於設定整合資源政策的 Amazon Redshift API 操作：
+ 使用 [PutResourcePolicy](https://docs.aws.amazon.com/redshift/latest/APIReference/API_PutResourcePolicy.html) API 作業來保留資源政策。當您提供其他資源政策時，會取代資源上先前的資源政策。使用上一個範本資源政策，該策略會授予下列動作的許可：
  + `CreateInboundIntegration` – 允許來源主體建立輸入整合，以便將資料從來源複寫到目標資料倉儲。
  + `AuthorizeInboundIntegration` – 允許 Amazon Redshift 持續驗證目標資料倉儲是否可以接收從來源 ARN 複寫的資料。
+ 使用 [GetResourcePolicy](https://docs.aws.amazon.com/redshift/latest/APIReference/API_GetResourcePolicy.html) API 操作是查看現有的資源政策。
+ 使用 [DeleteResourcePolicy](https://docs.aws.amazon.com/redshift/latest/APIReference/API_DeleteResourcePolicy.html) API 作業從資源中移除資源政策。

若要更新資源策略，您也可以使用 [put-resource-policy](https://docs.aws.amazon.com/cli/latest/reference/redshift/put-resource-policy.html) AWS CLI 命令。例如，若要將資源政策放在 DynamoDB 來源的 Amazon Redshift 命名空間 ARN 上，請執行類似以下的 AWS CLI 命令。

```
aws redshift put-resource-policy \
--policy file://rs-rp.json \
--resource-arn "arn:aws:redshift-serverless:us-east-1:123456789012:namespace/cc4ffe56-ad2c-4fd1-a5a2-f29124a56433"
```

其中 `rs-rp.json` 包含：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "redshift.amazonaws.com"
            },
            "Action": "redshift:AuthorizeInboundIntegration",
            "Resource": "arn:aws:redshift-serverless:us-east-1:123456789012:namespace/cc4ffe56-ad2c-4fd1-a5a2-f29124a56433",
            "Condition": {
                "StringEquals": {
                    "aws:SourceArn": "arn:aws:dynamodb:us-east-1:123456789012:table/test_ddb"
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:root"
            },
            "Action": "redshift:CreateInboundIntegration",
            "Resource": "arn:aws:redshift-serverless:us-east-1:123456789012:namespace/cc4ffe56-ad2c-4fd1-a5a2-f29124a56433"
        }
    ]
}
```

------