

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の 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 データウェアハウスにデータをレプリケートするには、まず次の 2 つのエンティティを追加する必要があります。
+ *認可されたプリンシパル* — データウェアハウスにゼロ ETL 統合を作成できるユーザーまたはロールを特定します。
+ *承認された統合ソース* – データウェアハウスを更新できるソースクラスターを識別します。

承認されたプリンシパルと承認された統合ソースは、Amazon Redshift コンソールの **[リソースポリシー]** タブから、または Amazon Redshift `PutResourcePolicy` API オペレーションを使用して設定できます。

## 承認されたプリンシパルを追加
<a name="zero-etl-using.redshift-iam-ap"></a>

Redshift Serverless ワークグループまたはプロビジョニングされたクラスターへのゼロ ETL 統合を作成するには、関連する名前空間またはプロビジョニングされたクラスターへのアクセスを許可します。

次の両方の条件に該当する場合は、このステップをスキップできます。
+ Redshift Serverless ワークグループまたはプロビジョンされたクラスターを所有する AWS アカウント は、ソースデータベースも所有しています。
+ そのプリンシパルは、この Redshift Serverless 名前空間またはプロビジョニングされたクラスターにゼロ ETL 統合を作成するアクセス許可を持つ ID ベースの IAM ポリシーに関連付けられています。

### Amazon Redshift Serverless 名前空間に許可されたプリンシパルを追加する
<a name="iam-ap-serverless"></a>

1. Amazon Redshift コンソールの左側のナビゲーションペインで、**[Redshift Serverless]** を選択します。

1. **[名前空間の設定]** を選択してから名前空間を選択して、**[リソースポリシー]** タブに移動します。

1. **[承認されたプリンシパルを追加]** を選択します。

1. 追加する承認されたプリンシパルごとに、ゼロ ETL 統合を作成するためにアクセス権限を付与する AWS ユーザーまたはロールの ARN、または AWS アカウント ID を名前空間に入力します。アカウント ID は ARN として保存されます。

1. **[Save changes]** (変更の保存) をクリックします。

### 許可されたプリンシパルを Amazon Redshift でプロビジョニングされたクラスターに追加する
<a name="iam-ap-cluster"></a>

1. Amazon Redshift コンソールの左側のナビゲーションペインで、**[プロビジョニングされたクラスターダッシュボード]** を選択します。

1. **[クラスター]** を選択してからクラスターを選択し、**[リソースポリシー]** タブに移動します。

1. **[承認されたプリンシパルを追加]** を選択します。

1. 追加する承認されたプリンシパルごとに、ゼロ ETL 統合を作成するためにアクセス権限を付与する AWS ユーザーまたはロールの ARN、または AWS アカウント ID をクラスターに入力します。アカウント ID は ARN として保存されます。

1. **[Save changes]** (変更の保存) をクリックします。

## 承認された統合ソースを追加
<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"
        }
    ]
}
```

------