

 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="redshift-iam-access-control-overview"></a>

すべての AWS リソースは AWS アカウントによって所有され、リソースの作成またはアクセスは、アクセス許可のポリシーによって管理されます。アカウント管理者は、アクセス許可ポリシーを IAM ID (ユーザー、グループ、ロール) にアタッチできます。一部のサービス (AWS Lambda など) では、アクセス許可ポリシーをリソースにアタッチすることもできます。

**注記**  
*アカウント管理者* (または管理者ユーザー) は、管理者権限を持つユーザーです。詳細については、「*IAM ユーザーガイド*」の「[IAM ベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。

アクセス権限を付与する場合、アクセス権限を取得するユーザー、取得するアクセス権限の対象となるリソース、およびそれらのリソースに対して許可される特定のアクションを決定します。

## Amazon Redshift のリソースとオペレーション
<a name="redshift-iam-accesscontrol.actions-and-resources"></a>

Amazon Redshift には、IAM アクセス許可ポリシーで使用するサービス固有のリソース、アクション、条件コンテキストキーが用意されています。

### Amazon Redshift、Amazon Redshift Serverless、Amazon Redshift Data API、Amazon Redshift クエリエディタ v2 のアクセス許可
<a name="redshift-policy-resources.resource-permissions"></a>

[アクセスコントロール](redshift-iam-authentication-access-control.md#redshift-iam-accesscontrol) をセットアップするときに、IAM ID にアタッチできるアクセス権限ポリシー (ID ベースのポリシー) を記述します。詳細なリファレンスについては「**サービス認可リファレンスガイド」で以下のトピックを参照してください。
+ Amazon Redshift の場合、`redshift:` プレフィックスを使用する「[Amazon Redshift のアクション、リソース、および条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshift.html)」を参照してください。
+ Amazon Redshift Serverless の場合、`redshift-serverless:` プレフィックスを使用する「[Amazon Redshift Serverless のアクション、リソース、および条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftserverless.html)」を参照してください。
+ Amazon Redshift Data API の場合、`redshift-data:` プレフィックスを使用する「[Amazon Redshift Data API のアクション、リソース、および条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftdataapi.html)」を参照してください。
+ Amazon Redshift クエリエディタ v2 の場合、`sqlworkbench:` プレフィックスを使用する「[AWS SQL Workbench (Amazon Redshift クエリエディタ v2) のアクション、リソース、および条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssqlworkbench.html)」を参照してください。

  クエリエディタ v2 には、API オペレーションに直接対応しない権限のみのアクションが含まれています。こうしたアクションには、「**サービス認可リファレンス」で `[permission only]` と表示されています。

この「**サービス認可リファレンス」には、IAM ポリシーで使用できる API オペレーションに関する情報が記載されています。また、アクセス許可を付与できる AWS リソースや、きめ細かなアクセスコントロールに含めることができる条件キーも含まれています。条件の詳細については、「[詳細に設定されたアクセスコントロールのための IAM ポリシー条件の使用](#redshift-policy-resources.conditions)」を参照してください。

ポリシーの `Action` フィールドにアクションを、ポリシーの `Resource` フィールドにリソース値を、ポリシーの `Condition` フィールドに条件を指定します。Amazon Redshift のアクションを指定するには、API オペレーション名 (例: `redshift:CreateCluster` など) の前に `redshift:` プレフィックスを使用します。

## リソース所有権についての理解
<a name="redshift-iam-access-control-resource-ownership"></a>

*リソース所有者* は、リソースを作成した AWS アカウントです。つまり、リソース所有者とは、リソースの作成リクエストを認証する *プリンシパルエンティティ* (ルートアカウント、IAM ユーザー、または IAM ロール) の AWS アカウントです。以下の例は、このしくみを示しています。
+ AWS アカウントのルートアカウント認証情報を使用して DB クラスターを作成する場合、AWSアカウントは Amazon Redshift リソースの所有者です。
+ Amazon Redshift リソースを作成するためのアクセス許可を持つ AWS アカウントで IAM ロールを作成すると、ロールを引き受けることのできるユーザーなら誰でも Amazon Redshift リソースを作成できます。Amazon Redshift リソースは、ロールが属するお客様の AWS アカウントで所有されます。
+ AWS アカウントに IAM ユーザーを作成し、Amazon Redshift リソースを作成するアクセス許可をそのユーザーに付与すると、そのユーザーは Amazon Redshift リソースを作成できます。ただし Amazon Redshift リソースは、ユーザーが属するお客様の AWS アカウントで所有されます。ほとんどの場合、この方法はお勧めしません。代わりに IAM ロールを作成し、このロールにアクセス許可をアタッチしてユーザーに割り当てることをお勧めします。

## リソースへのアクセスの管理
<a name="redshift-iam-accesscontrol-managingaccess"></a>

*アクセス権限ポリシー* では、誰が何にアクセスできるかを記述します。以下のセクションで、アクセス許可ポリシーを作成するために使用可能なオプションについて説明します。

**注記**  
このセクションでは、Amazon Redshift のコンテキストでの IAM の使用について説明します。これは、IAM サービスに関する詳細情報を取得できません。IAM に関する詳細なドキュメントについては、「*IAM ユーザーガイド*」の「[What is IAM?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)」(IAM とは？) を参照してください。IAM ポリシー構文の詳細と説明については、「*IAM ユーザーガイド*」の「[AWS IAM ポリシーリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)」を参照してください。

IAM アイデンティティにアタッチされたポリシーは*アイデンティティベース*のポリシー (IAM ポリシー) と呼ばれ、リソースにアタッチされたポリシーは*リソースベースの*ポリシーと呼ばれます。Amazon Redshift では、アイデンティティベースのポリシー (IAM ポリシー）のみをサポートしています。

### アイデンティティベースのポリシー (IAM ポリシー）
<a name="redshift-iam-manage-access-identity-based"></a>

アクセス許可を割り当てるには、ポリシーを IAM ロールにアタッチし、このロールをユーザーまたはグループに割り当てます。次に示す例は、AWS アカウントで Amazon Redshift クラスターを作成、削除、変更、再起動するためのアクセス許可を含むポリシーを示しています。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid":"AllowManageClusters",
      "Effect":"Allow",
      "Action": [
        "redshift:CreateCluster",
        "redshift:DeleteCluster",
        "redshift:ModifyCluster",
        "redshift:RebootCluster"
      ],
      "Resource":"*"
    }
  ]
}
```

------

Amazon Redshift で ID ベースのポリシーを使用する場合の詳細については、「[Amazon Redshift でのアイデンティティベースのポリシー (IAM ポリシー) の使用](redshift-iam-access-control-identity-based.md)」を参照してください。ユーザー、グループ、ロール、アクセス許可の詳細については、[IAM ユーザーガイド](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)の「*アイデンティティ (ユーザー、グループ、ロール)*」を参照してください。

### リソースベースのポリシー
<a name="redshift-iam-access-control-resource-based"></a>

Simple Storage Service (Amazon S3) などの他のサービスでは、リソースベースの許可ポリシーもサポートされています。たとえば、ポリシーを S3 バケットにアタッチして、そのバケットに対するアクセス許可を管理できます。Amazon Redshift では、リソースベースのポリシーはサポートされていません。

## ポリシー要素の指定 : アクション、効果、リソース、プリンシパル
<a name="redshift-iam-access-control-specify-actions"></a>

サービスは、Amazon Redshift リソースごとに (「[Amazon Redshift のリソースとオペレーション](#redshift-iam-accesscontrol.actions-and-resources)」を参照)、一連の API オペレーションを定義します ([[アクション](https://docs.aws.amazon.com/redshift/latest/APIReference/API_Operations.html)]を参照）。これらの API オペレーションを実行するためのアクセス許可を付与するために、Amazon Redshift ではポリシーに一連のアクションを定義できます。1 つの API オペレーションの実行で、複数のアクションのアクセス権限が必要になる場合があります。

以下は、基本的なポリシーの要素です。
+ **リソース** – ポリシーで Amazon リソースネーム (ARN) を使用して、ポリシーを適用するリソースを識別します。詳細については、「[Amazon Redshift のリソースとオペレーション](#redshift-iam-accesscontrol.actions-and-resources)」を参照してください。
+ **アクション** - アクションのキーワードを使用して、許可または拒否するリソースオペレーションを識別します。たとえば、`redshift:DescribeClusters` 許可は、Amazon Redshift `DescribeClusters` オペレーションの実行をユーザーに許可します。
+ **効果** – ユーザーが特定のアクションを要求する際の効果を指定します。許可または拒否のいずれかになります。リソースへのアクセスを明示的に付与 (許可) していない場合、アクセスは暗黙的に拒否されます。また、明示的にリソースへのアクセスを拒否すると、別のポリシーによってアクセスが許可されている場合でも、ユーザーはそのリソースにアクセスできなくなります。
+ **プリンシパル** - ID ベースのポリシー (IAM ポリシー) で、ポリシーがアタッチされているユーザーが黙示的なプリンシパルとなります。リソースベースのポリシーでは、権限 (リソースベースのポリシーにのみ適用）を受け取りたいユーザー、アカウント、サービス、またはその他のエンティティを指定します。Amazon Redshift では、リソースベースのポリシーはサポートされていません。

IAM ポリシーの構文と説明の詳細はこちら *IAM ユーザーガイド*の [AWS IAM ポリシーリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)。

すべての Amazon Redshift API アクションとそれらが適用されるリソースの表については、「[Amazon Redshift、Amazon Redshift Serverless、Amazon Redshift Data API、Amazon Redshift クエリエディタ v2 のアクセス許可](#redshift-policy-resources.resource-permissions)」を参照してください。



## ポリシーでの条件を指定する
<a name="redshift-policy-resources.specifying-conditions"></a>

アクセス許可を付与するとき、アクセスポリシー言語を使用して、ポリシーが有効になる条件を指定できます。たとえば、特定の日付の後にのみ適用されるポリシーが必要になる場合があります。ポリシー言語での条件の指定の詳細については、「*IAM ユーザーガイド*」の「[IAM JSON ポリシー要素: 条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)」を参照してください。

アクセス権限ポリシーが適用される条件を指定するには、IAM アクセス権限ポリシーに `Condition` 要素を含めます。たとえば、`redshift:CreateCluster` アクションを使用してクラスターを作成することをユーザーに許可するポリシーを作成します。その後、特定のリージョンでのクラスターの作成のみにそのアクションを制限する `Condition` 要素を追加できます。詳細については、「[詳細に設定されたアクセスコントロールのための IAM ポリシー条件の使用](#redshift-policy-resources.conditions)」を参照してください。すべての条件キー値とそれらが適用される Amazon Redshift アクションとリソースを示すリストについては、「[Amazon Redshift、Amazon Redshift Serverless、Amazon Redshift Data API、Amazon Redshift クエリエディタ v2 のアクセス許可](#redshift-policy-resources.resource-permissions)」を参照してください。

### 詳細に設定されたアクセスコントロールのための IAM ポリシー条件の使用
<a name="redshift-policy-resources.conditions"></a>

Amazon Redshift では、条件キーを使用し、リソースのタグに基づいてリソースへのアクセスを制限できます。Amazon Redshift の一般的な条件キーは以下のとおりです。


| 条件キー | 説明 | 
| --- | --- | 
| `aws:RequestTag` | リソースの作成時にはタグのキー (名前）と値を含める必要があります。詳細については、「*IAM ユーザーガイド*」の「[aws:RequestTag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag)」を参照してください。 | 
| `aws:ResourceTag` | 特定のタグのキーと値に基づいてリソースへのユーザーアクセスを制限します。詳細については、「*IAM ユーザーガイド*」の「[aws:ResourceTag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag)」を参照してください。 | 
| `aws:TagKeys` | このキーを使用して、リクエスト内のタグキーとポリシーで指定したキーを比較します。詳細については、「*IAM ユーザーガイド*」の「[aws:TagKeys](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys)」を参照してください。 | 

タグの詳細については、「[Amazon Redshift のリソースのタグ付け](amazon-redshift-tagging.md)」を参照してください。

`redshift:RequestTag` と `redshift:ResourceTag` 条件キーをサポートする API アクションのリストについては、「[Amazon Redshift、Amazon Redshift Serverless、Amazon Redshift Data API、Amazon Redshift クエリエディタ v2 のアクセス許可](#redshift-policy-resources.resource-permissions)」を参照してください。

次の条件キーは Amazon Redshift の GetClusterCredentials アクションで使用できます。


| 条件キー | 説明 | 
| --- | --- | 
| `redshift:DurationSeconds` | 期間に対して指定できる秒数を制限します。 | 
| `redshift:DbName` | 指定できるデータベース名を制限します。 | 
| `redshift:DbUser` | 指定できるデータベースユーザー名を制限します。 | 

#### 例 1: aws:ResourceTag 条件キーを使用してアクセスを制限する
<a name="redshift-policy-resources.resource-permissions-example1"></a>

次の IAM ポリシーを使用すると、`us-west-2` リージョンで特定の AWS アカウントの Amazon Redshift クラスターにタグ (名前が `environment`、値が `test`）が含まれている場合に限り、クラスターを変更することをユーザーに許可できます。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Sid":"AllowModifyTestCluster",
        "Effect": "Allow",
        "Action": "redshift:ModifyCluster",
        "Resource": "arn:aws:redshift:us-west-2:123456789012:cluster:*",
        "Condition": {
            "StringEquals": {
                "aws:ResourceTag/environment": "test"
            }
        }
    }
}
```

------

#### 例 2: aws:RequestTag 条件キーを使用してアクセスを制限する
<a name="redshift-policy-resources.resource-permissions-example2"></a>

次の IAM ポリシーを使用すると、クラスターを作成するコマンドにタグ (名前が `usage` 、値が `production`）が含まれている場合に限り、Amazon Redshift クラスターを作成することが許可されます。`aws:TagKeys` と `ForAllValues` 修飾子との条件は、`costcenter` キーと `usage` キーのみを要求で指定できることを指定します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Sid":"AllowCreateProductionCluster",
        "Effect": "Allow",
        "Action": [
            "redshift:CreateCluster",
            "redshift:CreateTags"
        ],
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "aws:RequestTag/usage": "production"
            },
            "ForAllValues:StringEquals": {
                "aws:TagKeys": [
                    "costcenter",
                    "usage"
                ]
            }
        }
    }
}
```

------