

 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 でのアイデンティティベースのポリシー (IAM ポリシー) の使用
<a name="redshift-iam-access-control-identity-based"></a>

このトピックでは、アカウント管理者が IAM アイデンティティ (ユーザー、グループ、ロール）へのアクセス権限ポリシーをアタッチする、アイデンティティベースのポリシーの例を示します。

**重要**  
初めに、Amazon Redshift のリソースへのアクセスを管理するための基本概念と使用できるオプションについて説明する概要トピックをお読みになることをお勧めします。詳細については、「[Amazon Redshift リソースに対するアクセス許可の管理の概要](redshift-iam-access-control-overview.md)」を参照してください。

以下に示しているのは、アクセス権限ポリシーの例です。このポリシーでは、ユーザーはすべてのクラスターを作成、削除、変更、再起動できます。さらに、クラスター識別子が AWS リージョン `us-west-2` および AWS アカウント `123456789012` の `production` で始まるクラスターを削除または変更するアクセス権限が拒否されます。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid":"AllowClusterManagement",
      "Action": [
        "redshift:CreateCluster",
        "redshift:DeleteCluster",
        "redshift:ModifyCluster",
        "redshift:RebootCluster"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid":"DenyDeleteModifyProtected",
      "Action": [
        "redshift:DeleteCluster",
        "redshift:ModifyCluster"
      ],
      "Resource": [
        "arn:aws:redshift:us-west-2:123456789012:cluster:production*"
      ],
      "Effect": "Deny"
    }
  ]
}
```

------

このポリシーには以下の 2 つのステートメントがあります。
+ 最初のステートメントでは、ユーザーがクラスターを作成、削除、変更、再起動するユーザーのアクセス権限を付与します。ステートメントでは、ワイルドカード文字 (\$1) が `Resource` 値として指定されます。そうすることで、ルート AWS アカウントが所有するすべての Amazon Redshift リソースにポリシーを適用できます。
+ 2 番目のステートメントでは、クラスターの削除または変更するアクセス権限を拒否します。ステートメントではワイルドカード文字 (\$1) が含まれる `Resource` 値のためにクラスター Amazon リソースネーム (ARN) を指定します。その結果、クラスター識別子が `production`で始まり、ルート AWS アカウントが所有するすべての Amazon Redshift クラスターにこのステートメントが適用されます。

## Amazon Redshift の AWS 管理ポリシー
<a name="redshift-policy-resources.managed-policies"></a>

AWS は、によって作成され管理されるスタンドアロンの IAM ポリシーを提供することで、多くの一般的ユースケースに対応します。AWSマネージドポリシーは、一般的ユースケースに必要な許可を付与することで、どの許可が必要なのかをユーザーが調査する必要をなくすることができます。詳細については、「*IAM ユーザーガイド*」の「[AWS 管理ポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)」を参照してください。

独自のカスタム IAM ポリシーを作成して、Amazon Redshift API オペレーションとリソースのためのアクセス権限を許可することもできます。これらのカスタムポリシーは、それらのアクセス許可が必要な IAM ロールまたはグループにアタッチできます。

次のセクションで、アカウント内のユーザーにアタッチでき、Amazon Redshift に固有の AWS 管理ポリシーについて説明します。

## Amazon Redshift での AWS 管理ポリシーに関する更新
<a name="security-iam-awsmanpol-updates"></a>



Amazon Redshift で管理ポリシーの変更の追跡が開始されてからの分について、AWS 管理ポリシーの更新に関する詳細を表示します。このページの変更に関する自動アラートを入手するには、Amazon Redshift ドキュメントの履歴ページから、RSS フィードをサブスクライブしてください。




| 変更 | 説明 | 日付 | 
| --- | --- | --- | 
|  [AmazonRedshiftFederatedAuthorization](#redshift-policy-managed-policies-federated-authorization) - 新しいポリシー  |   Amazon Redshift は、Amazon Redshift フェデレーティッド認可でクエリを実行するための新しく使いやすいポリシーを追加しました。  | 2025 年 11 月 21 日 | 
|  [AmazonRedshiftServiceLinkedRolePolicy](#redshift-policy-managed-policies-service-linked-role-policy) – 既存ポリシーへの更新  |   管理ポリシーにアクション `lakeformation:GetDataAccess` に対するアクセス許可が追加されました。これを追加すると、AWS Lake Formation からカタログ情報を取得するアクセス許可が付与されます。 アクション `glue:GetCatalog` および `glue:GetCatalogs` の追加の条件が管理ポリシーに追加されました。  | 2025 年 3 月 13 日 | 
|  [AmazonRedshiftServiceLinkedRolePolicy](#redshift-policy-managed-policies-service-linked-role-policy) – 既存ポリシーへの更新  |   アクション `glue:GetCatalog` および `glue:GetCatalogs` に対するアクセス許可が管理ポリシーに追加されました。これらを追加すると、AWS Glue からカタログ情報を取得するアクセス許可が付与されます。  | 2024 年 12 月 3 日 | 
|  [AmazonRedshiftServiceLinkedRolePolicy](#redshift-policy-managed-policies-service-linked-role-policy) – 既存ポリシーへの更新  |  管理ポリシーにアクション `servicequotas:GetServiceQuota` に対するアクセス許可が追加されました。これにより、クォータまたは制限にアクセスするためのアクセス許可が付与されます。  | 2024 年 3 月 8 日 | 
|  [AmazonRedshiftQueryEditorV2FullAccess](#redshift-policy-managed-policies-query-editor-V2) – 既存ポリシーへの更新  |  アクション `redshift-serverless:ListNamespaces` および `redshift-serverless:ListWorkgroups` に対するアクセス許可が管理ポリシーに追加されました。これらの追加により、Amazon Redshift データウェアハウスのサーバーレス名前空間とサーバーレスワークグループを一覧表示する権限が付与されます。  | 2024 年 2 月 21 日 | 
|  [AmazonRedshiftQueryEditorV2NoSharing](#redshift-policy-managed-policies-query-editor-V2-no-sharing) – 既存ポリシーへの更新  |  アクション `redshift-serverless:ListNamespaces` および `redshift-serverless:ListWorkgroups` に対するアクセス許可が管理ポリシーに追加されました。これらの追加により、Amazon Redshift データウェアハウスのサーバーレス名前空間とサーバーレスワークグループを一覧表示する権限が付与されます。  | 2024 年 2 月 21 日 | 
|  [AmazonRedshiftQueryEditorV2ReadSharing](#redshift-policy-managed-policies-query-editor-V2-read-sharing) – 既存ポリシーへの更新  |  アクション `redshift-serverless:ListNamespaces` および `redshift-serverless:ListWorkgroups` に対するアクセス許可が管理ポリシーに追加されました。これらの追加により、Amazon Redshift データウェアハウスのサーバーレス名前空間とサーバーレスワークグループを一覧表示する権限が付与されます。  | 2024 年 2 月 21 日 | 
|  [AmazonRedshiftQueryEditorV2ReadWriteSharing](#redshift-policy-managed-policies-query-editor-V2-write-sharing) – 既存ポリシーへの更新  |  アクション `redshift-serverless:ListNamespaces` および `redshift-serverless:ListWorkgroups` に対するアクセス許可が管理ポリシーに追加されました。これらの追加により、Amazon Redshift データウェアハウスのサーバーレス名前空間とサーバーレスワークグループを一覧表示する権限が付与されます。  | 2024 年 2 月 21 日 | 
|  [AmazonRedshiftReadOnlyAccess](#redshift-policy-managed-policies-read-only) – 既存ポリシーへの更新  |  管理ポリシーにアクション `redshift:ListRecommendations` に対するアクセス許可が追加されました。これにより、Amazon Redshift Advisor のレコメンデーションを一覧表示するアクセス許可が付与されます。  | 2024 年 2 月 7 日 | 
|  [AmazonRedshiftServiceLinkedRolePolicy](#redshift-policy-managed-policies-service-linked-role-policy) – 既存ポリシーへの更新  |  アクション `ec2:AssignIpv6Addresses` および `ec2:UnassignIpv6Addresses` に対するアクセス許可が管理ポリシーに追加されました。これらを追加すると、IP アドレスの割り当てと割り当て解除を行うアクセス許可が付与されます。  | 2023 年 10 月 31 日 | 
|  [AmazonRedshiftQueryEditorV2NoSharing](#redshift-policy-managed-policies-query-editor-V2-no-sharing) – 既存ポリシーへの更新  |  アクション `sqlworkbench:GetAutocompletionMetadata` および `sqlworkbench:GetAutocompletionResource` に対するアクセス許可が管理ポリシーに追加されました。これらを追加すると、クエリの編集中に SQL をオートコンプリートするためのデータベース情報を生成および取得する権限が付与されます。  | 2023 年 8 月 16 日 | 
|  [AmazonRedshiftQueryEditorV2ReadSharing](#redshift-policy-managed-policies-query-editor-V2-read-sharing) – 既存ポリシーへの更新  |  アクション `sqlworkbench:GetAutocompletionMetadata` および `sqlworkbench:GetAutocompletionResource` に対するアクセス許可が管理ポリシーに追加されました。これらを追加すると、クエリの編集中に SQL をオートコンプリートするためのデータベース情報を生成および取得する権限が付与されます。  | 2023 年 8 月 16 日 | 
|  [AmazonRedshiftQueryEditorV2ReadWriteSharing](#redshift-policy-managed-policies-query-editor-V2-write-sharing) – 既存ポリシーへの更新  |  アクション `sqlworkbench:GetAutocompletionMetadata` および `sqlworkbench:GetAutocompletionResource` に対するアクセス許可が管理ポリシーに追加されました。これらを追加すると、クエリの編集中に SQL をオートコンプリートするためのデータベース情報を生成および取得する権限が付与されます。  | 2023 年 8 月 16 日 | 
|  [AmazonRedshiftServiceLinkedRolePolicy](#redshift-policy-managed-policies-service-linked-role-policy) – 既存ポリシーへの更新  |  シークレットを作成して管理するための AWS Secrets Manager のアクションのアクセス許可が管理ポリシーに追加されました。追加されたアクセス許可は、次のとおりです。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html)  | 2023 年 8 月 14 日 | 
|  [AmazonRedshiftServiceLinkedRolePolicy](#redshift-policy-managed-policies-service-linked-role-policy) – 既存ポリシーへの更新  |  セキュリティグループとルーティングルールの作成と管理のための Amazon EC2 でのアクションのアクセス許可がマネージドポリシーから削除されました。これらのアクセス許可は、サブネットと VPC の作成に関するものです。削除されたアクセス許可は以下の通りです。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html) これらは、Purpose:RedshiftMigrateToVpc リソースタグと関連付けられていました。このタグは、Amazon EC2 Classic から Amazon EC2 VPC に移行するためのタスクに対するアクセス許可の範囲を制限しました。リソースタグの詳細については、「[タグを使用した AWS リソースへのアクセスの制御](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)」を参照してください。 | 2023 年 5 月 8 日 | 
|  [AmazonRedshiftDataFullAccess](#redshift-policy-managed-policies-data-full-access) – 既存ポリシーへの更新  |  管理ポリシーにアクション `redshift:GetClusterCredentialsWithIAM` に対するアクセス許可が追加されました。指定された AWS アカウント によって Amazon Redshift データベースにアクセスするための詳細な一時的認証情報を取得する許可を付与します。  | 2023 年 4 月 7 日 | 
|  [AmazonRedshiftServiceLinkedRolePolicy](#redshift-policy-managed-policies-service-linked-role-policy) – 既存ポリシーへの更新  |  セキュリティグループルールの作成と管理のための Amazon EC2 でのアクションの許可が管理ポリシーに追加されました。これらのセキュリティグループとルールは、明確に Amazon Redshift `aws:RequestTag/Redshift` リソースタグに関連付けられます。これにより、アクセス許可の範囲は特定の Amazon Redshift のリソースに制限されます。  | 2023 年 4 月 6 日 | 
|  [AmazonRedshiftQueryEditorV2NoSharing](#redshift-policy-managed-policies-query-editor-V2-no-sharing) – 既存ポリシーへの更新  |  管理ポリシーにアクション `sqlworkbench:GetSchemaInference` に対するアクセス許可が追加されました。ファイルから推測される列とデータ型を取得する許可を付与します。  | 2023 年 3 月 21 日 | 
|  [AmazonRedshiftQueryEditorV2ReadSharing](#redshift-policy-managed-policies-query-editor-V2-read-sharing) – 既存ポリシーへの更新  |  管理ポリシーにアクション `sqlworkbench:GetSchemaInference` に対するアクセス許可が追加されました。ファイルから推測される列とデータ型を取得する許可を付与します。  | 2023 年 3 月 21 日 | 
|  [AmazonRedshiftQueryEditorV2ReadWriteSharing](#redshift-policy-managed-policies-query-editor-V2-write-sharing) – 既存ポリシーへの更新  |  管理ポリシーにアクション `sqlworkbench:GetSchemaInference` に対するアクセス許可が追加されました。ファイルから推測される列とデータ型を取得する許可を付与します。  | 2023 年 3 月 21 日 | 
|  [AmazonRedshiftQueryEditorV2NoSharing](#redshift-policy-managed-policies-query-editor-V2-no-sharing) – 既存ポリシーへの更新  |  管理ポリシーにアクション `sqlworkbench:AssociateNotebookWithTab` に対するアクセス許可が追加されました。これを追加すると、ユーザー自身のノートブックにリンクされたタブを作成および更新する権限が付与されます。  | 2023 年 2 月 2 日 | 
|  [AmazonRedshiftQueryEditorV2ReadSharing](#redshift-policy-managed-policies-query-editor-V2-read-sharing) – 既存ポリシーへの更新  |  管理ポリシーにアクション `sqlworkbench:AssociateNotebookWithTab` に対するアクセス許可が追加されました。これを追加すると、ユーザー自身のノートブックやユーザーと共有されているノートブックにリンクさごれたタブの作成と更新の権限が付与されます。  | 2023 年 2 月 2 日 | 
|  [AmazonRedshiftQueryEditorV2ReadWriteSharing](#redshift-policy-managed-policies-query-editor-V2-write-sharing) – 既存ポリシーへの更新  |  管理ポリシーにアクション `sqlworkbench:AssociateNotebookWithTab` に対するアクセス許可が追加されました。これを追加すると、ユーザー自身のノートブックやユーザーと共有されているノートブックにリンクさごれたタブの作成と更新の権限が付与されます。  | 2023 年 2 月 2 日 | 
|  [AmazonRedshiftQueryEditorV2NoSharing](#redshift-policy-managed-policies-query-editor-V2-no-sharing) – 既存ポリシーへの更新  |  ノートブックを使用するアクセス許可を付与するために、Amazon Redshift は次のアクションのアクセス許可を追加しました。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html)  | 2022 年 10 月 17 日 | 
|  [AmazonRedshiftQueryEditorV2ReadSharing](#redshift-policy-managed-policies-query-editor-V2-read-sharing) – 既存ポリシーへの更新  |  ノートブックを使用するアクセス許可を付与するために、Amazon Redshift は次のアクションのアクセス許可を追加しました。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html)  | 2022 年 10 月 17 日 | 
|  [AmazonRedshiftQueryEditorV2ReadWriteSharing](#redshift-policy-managed-policies-query-editor-V2-write-sharing) – 既存ポリシーへの更新  |  ノートブックを使用するアクセス許可を付与するために、Amazon Redshift は次のアクションのアクセス許可を追加しました。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html)  | 2022 年 10 月 17 日 | 
|  [AmazonRedshiftServiceLinkedRolePolicy](#redshift-policy-managed-policies-service-linked-role-policy) – 既存ポリシーへの更新  |  Amazon Redshift は、CloudWatch にメトリクスを公開できるように名前空間 `AWS/Redshift` を追加しました。  | 2022 年 9 月 7 日 | 
|  [AmazonRedshiftQueryEditorV2NoSharing](#redshift-policy-managed-policies-query-editor-V2-no-sharing) – 既存ポリシーへの更新  |  Amazon Redshift がアクション `sqlworkbench:ListQueryExecutionHistory` と `sqlworkbench:GetQueryExecutionHistory` にアクセス許可を追加しました。これにより、クエリ履歴を表示するアクセス許可が付与されます。  | 2022 年 8 月 30 日 | 
|  [AmazonRedshiftQueryEditorV2ReadSharing](#redshift-policy-managed-policies-query-editor-V2-read-sharing) – 既存ポリシーへの更新  |  Amazon Redshift がアクション `sqlworkbench:ListQueryExecutionHistory` と `sqlworkbench:GetQueryExecutionHistory` にアクセス許可を追加しました。これにより、クエリ履歴を表示するアクセス許可が付与されます。  | 2022 年 8 月 30 日 | 
|  [AmazonRedshiftQueryEditorV2ReadWriteSharing](#redshift-policy-managed-policies-query-editor-V2-write-sharing) – 既存ポリシーへの更新  |  Amazon Redshift がアクション `sqlworkbench:ListQueryExecutionHistory` と `sqlworkbench:GetQueryExecutionHistory` にアクセス許可を追加しました。これにより、クエリ履歴を表示するアクセス許可が付与されます。  | 2022 年 8 月 30 日 | 
|  [AmazonRedshiftFullAccess](#redshift-policy-managed-policies-full-access) – 既存ポリシーへの更新  |  Amazon Redshift サーバーレスのアクセス権限は、既存の AmazonRedshiftFullAccess マネージドポリシーに追加されます。  | 2022 年 7 月 22 日 | 
|  [AmazonRedshiftDataFullAccess](#redshift-policy-managed-policies-data-full-access) – 既存ポリシーへの更新  |  Amazon Redshift は、タグキー RedshiftDataFullAccess や任意のタグ値でタグ付けされたリソースへのアクセスを許可するために、aws:ResourceTag/RedshiftDataFullAccess タグのアクセス権限で redshift-serverless:GetCredentials のデフォルトの適用条件を StringEquals から StringLike に更新しました。 | 2022 年 7 月 11 日 | 
|  [AmazonRedshiftDataFullAccess](#redshift-policy-managed-policies-data-full-access) – 既存ポリシーへの更新  |  Amazon Redshift が新しいアクセス許可を追加し、Amazon Redshift サーバーレスへの一時的な認証情報に redshift-serverless:GetCredentials が許可されました。 | 2022 年 7 月 8 日 | 
|  [AmazonRedshiftQueryEditorV2NoSharing](#redshift-policy-managed-policies-query-editor-V2-no-sharing) – 既存ポリシーへの更新  |  Amazon Redshift がアクション `sqlworkbench:GetAccountSettings` にアクセス許可を追加しました。これによりアカウント設定を取得するアクセス許可が付与されます。  | 2022 年 6 月 15 日 | 
|  [AmazonRedshiftQueryEditorV2ReadSharing](#redshift-policy-managed-policies-query-editor-V2-read-sharing) – 既存ポリシーへの更新  |  Amazon Redshift がアクション `sqlworkbench:GetAccountSettings` にアクセス許可を追加しました。これによりアカウント設定を取得するアクセス許可が付与されます。  | 2022 年 6 月 15 日 | 
|  [AmazonRedshiftQueryEditorV2ReadWriteSharing](#redshift-policy-managed-policies-query-editor-V2-write-sharing) – 既存ポリシーへの更新  |  Amazon Redshift がアクション `sqlworkbench:GetAccountSettings` にアクセス許可を追加しました。これによりアカウント設定を取得するアクセス許可が付与されます。  | 2022 年 6 月 15 日 | 
|  [AmazonRedshiftServiceLinkedRolePolicy](#redshift-policy-managed-policies-service-linked-role-policy) – 既存ポリシーへの更新  |  新しい Amazon Redshift サーバーレスエンドポイントへのパブリックアクセスを有効にするため、Amazon Redshift ではカスタマーアカウントの VPC エンドポイントの Elastic ネットワークインターフェイスに Elastic IP アドレスを割り当てて、関連付けます。これは、サービスにリンクされたロールを介して提供される権限によって行われます。このユースケースを有効にするため、Elastic IP アドレスを割り当てて解放するアクションが Amazon Redshift サーバーレスのサービスにリンクされたロールに追加されます。  | 2022 年 5 月 26 日 | 
|  [AmazonRedshiftQueryEditorV2FullAccess](#redshift-policy-managed-policies-query-editor-V2) – 既存ポリシーへの更新  |  アクション `sqlworkbench:ListTaggedResources` に対するアクセス許可。これは、Amazon Redshift クエリエディタ v2 のリソース専用に設定されています。このポリシーの更新により、クエリエディタ v2 からのみ `tag:GetResources` の呼び出しを行う権利が与えられます。  | 2022 年 2 月 22 日 | 
|  [AmazonRedshiftQueryEditorV2NoSharing](#redshift-policy-managed-policies-query-editor-V2-no-sharing) – 既存ポリシーへの更新  |  アクション `sqlworkbench:ListTaggedResources` に対するアクセス許可。これは、Amazon Redshift クエリエディタ v2 のリソース専用に設定されています。このポリシーの更新により、クエリエディタ v2 からのみ `tag:GetResources` の呼び出しを行う権利が与えられます。  | 2022 年 2 月 22 日 | 
|  [AmazonRedshiftQueryEditorV2ReadSharing](#redshift-policy-managed-policies-query-editor-V2-read-sharing) – 既存ポリシーへの更新  |  アクション `sqlworkbench:ListTaggedResources` に対するアクセス許可。これは、Amazon Redshift クエリエディタ v2 のリソース専用に設定されています。このポリシーの更新により、クエリエディタ v2 からのみ `tag:GetResources` の呼び出しを行う権利が与えられます。  | 2022 年 2 月 22 日 | 
|  [AmazonRedshiftQueryEditorV2ReadWriteSharing](#redshift-policy-managed-policies-query-editor-V2-write-sharing) – 既存ポリシーへの更新  |  アクション `sqlworkbench:ListTaggedResources` に対するアクセス許可。これは、Amazon Redshift クエリエディタ v2 のリソース専用に設定されています。このポリシーの更新により、クエリエディタ v2 からのみ `tag:GetResources` の呼び出しを行う権利が与えられます。  | 2022 年 2 月 22 日 | 
|  [AmazonRedshiftQueryEditorV2ReadSharing](#redshift-policy-managed-policies-query-editor-V2-read-sharing) – 既存ポリシーへの更新  |  管理ポリシーにアクション `sqlworkbench:AssociateQueryWithTab` に対するアクセス許可が追加されました。これにより、お客様は共有するクエリにリンクされたエディタタブを作成できます。  | 2022 年 2 月 22 日 | 
|  [AmazonRedshiftServiceLinkedRolePolicy](#redshift-policy-managed-policies-service-linked-role-policy) – 既存ポリシーへの更新  |  Amazon Redshift に、Amazon Redshift ネットワークおよび VPC リソースの管理を有効化するための、新しいアクションに対するアクセス許可を追加しました。  | 2021 年 11 月 22 日 | 
|  [AmazonRedshiftAllCommandsFullAccess](#redshift-policy-managed-policies-service-linked-role-commands) - 新しいポリシー  |  Amazon Redshift に、Amazon Redshift コンソールから作成された IAM ロールの使用を許可する新しいポリシーが追加されました。同時にこのポリシーを、Amazon S3 からの COPY、UNLOAD、CREATE EXTERNAL SCHEMA、CREATE EXTERNAL FUNCTION、CREATE MODEL、および CREATE LIBRARY の各コマンドを、クラスターが実行するためのデフォルトとして設定しました。  | 2021 年 11 月 18 日 | 
|  [AmazonRedshiftServiceLinkedRolePolicy](#redshift-policy-managed-policies-service-linked-role-policy) – 既存ポリシーへの更新  |  Amazon Redshift に、監査ログのエクスポートを含む Amazon Redshift CloudWatch ロググループとログストリームの管理を有効化するための、新しいアクションに対するアクセス許可を追加しました。  | 2021 年 11 月 15 日 | 
|  [AmazonRedshiftFullAccess](#redshift-policy-managed-policies-full-access) – 既存ポリシーへの更新  |  Amazon Redshift に、モデルの説明可能性、DynamoDB、Redshift Spectrum、および Amazon RDS フェデレーションを有効化するための、新しいアクセス許可を追加しました。 | 2021 年 10 月 7 日 | 
|  [AmazonRedshiftQueryEditorV2FullAccess](#redshift-policy-managed-policies-query-editor-V2) - 新しいポリシー  |  Amazon Redshift では、Amazon Redshift クエリエディタ v2 へのフルアクセスを許可する新しいポリシーが追加されました。  | 2021 年 9 月 24 日 | 
|  [AmazonRedshiftQueryEditorV2NoSharing](#redshift-policy-managed-policies-query-editor-V2-no-sharing) - 新しいポリシー  |  Amazon Redshift は、リソースを共有せずに Amazon Redshift クエリエディタ v2 を使用できるようにする新しいポリシーを追加しました。  | 2021 年 9 月 24 日 | 
|  [AmazonRedshiftQueryEditorV2ReadSharing](#redshift-policy-managed-policies-query-editor-V2-read-sharing) - 新しいポリシー  |  Amazon Redshift は、Amazon Redshift クエリエディタ v2 での読み取り共有を許可する新しいポリシーを追加しました。  | 2021 年 9 月 24 日 | 
|  [AmazonRedshiftQueryEditorV2ReadWriteSharing](#redshift-policy-managed-policies-query-editor-V2-write-sharing) - 新しいポリシー  |  Amazon Redshift は、Amazon Redshift クエリエディタ v2 での読み取りと更新の共有を許可する新しいポリシーを追加しました。  | 2021 年 9 月 24 日 | 
|  [AmazonRedshiftFullAccess](#redshift-policy-managed-policies-full-access) – 既存ポリシーへの更新  |  Amazon Redshift が新しいアクセス許可を追加し、`sagemaker:*Job*`を許可しました。  | 2021 年 8 月 18 日 | 
|  [AmazonRedshiftDataFullAccess](#redshift-policy-managed-policies-data-full-access) – 既存ポリシーへの更新  |  Amazon Redshift が新しいアクセス許可を追加し、`AuthorizeDataShare`を許可しました。  | 2021 年 8 月 12 日 | 
|  [AmazonRedshiftDataFullAccess](#redshift-policy-managed-policies-data-full-access) – 既存ポリシーへの更新  |  Amazon Redshift が新しいアクセス許可を追加し、`BatchExecuteStatement`を許可しました。  | 2021 年 7 月 27 日 | 
|  Amazon Redshift が変更の追跡を開始  |  Amazon Redshift が AWS 管理ポリシーの変更の追跡を開始しました。  | 2021 年 7 月 27 日 | 

## AmazonRedshiftReadOnlyAccess
<a name="redshift-policy-managed-policies-read-only"></a>

AWS アカウントにあるすべての Amazon Redshift リソースに対する、読み取り専用のアクセス権を付与します。

[AmazonRedshiftReadOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonRedshiftReadOnlyAccess) ポリシーは IAM コンソールに、[AmazonRedshiftReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftReadOnlyAccess.html) は*AWS管理ポリシーリファレンスガイド*に記載されています。

## AmazonRedshiftFullAccess
<a name="redshift-policy-managed-policies-full-access"></a>

AWS アカウントの内のすべての Amazon Redshift リソースに対する、完全なアクセス権を付与します。さらに、このポリシーは全ての Amazon Redshift サーバーレスリソースへの完全なアクセスを許可します。

[AmazonRedshiftFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonRedshiftFullAccess) ポリシーは IAM コンソールに、[AmazonRedshiftFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftFullAccess.html) は*AWS管理ポリシーリファレンスガイド*に記載されています。

## AmazonRedshiftQueryEditor
<a name="redshift-policy-managed-policies-query-editor"></a>

Amazon Redshift コンソールのクエリエディタへの、完全なアクセス権を付与します。

[AmazonRedshiftQueryEditor](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonRedshiftQueryEditor) ポリシーは IAM コンソールに、[AmazonRedshiftQueryEditor](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftQueryEditor.html) は*AWS管理ポリシーリファレンスガイド*に記載されています。

## AmazonRedshiftDataFullAccess
<a name="redshift-policy-managed-policies-data-full-access"></a>

AWS アカウントの Amazon Redshift Data API オペレーション、およびリソースに対する完全なアクセス権を付与します。

[AmazonRedshiftDataFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonRedshiftDataFullAccess) ポリシーは IAM コンソールに、[AmazonRedshiftDataFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftDataFullAccess.html) は*AWS管理ポリシーリファレンスガイド*に記載されています。

## AmazonRedshiftQueryEditorV2FullAccess
<a name="redshift-policy-managed-policies-query-editor-V2"></a>

Amazon Redshift クエリエディタ v2 のオペレーションとリソースに対する、完全なアクセス権を付与します。このポリシーは、その他の必要なサービスへのアクセス権限も付与します。

[AmazonRedshiftQueryEditorV2FullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonRedshiftQueryEditorV2FullAccess) ポリシーは IAM コンソールにあり、[AmazonRedshiftQueryEditorV2FullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftQueryEditorV2FullAccess.html) は*AWSマネージドポリシーリファレンスガイド*に記載されています。

## AmazonRedshiftQueryEditorV2NoSharing
<a name="redshift-policy-managed-policies-query-editor-V2-no-sharing"></a>

リソースを共有せずに Amazon Redshift クエリエディタ v2 を操作するための権限を付与します。このポリシーは、その他の必要なサービスへのアクセス権限も付与します。このポリシーを使用しているプリンシパルは、リソース (クエリなど）にタグ付けして、同じ AWS アカウントにあるその他のプリンシパルと共有することができません。

[AmazonRedshiftQueryEditorV2NoSharing](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonRedshiftQueryEditorV2NoSharing) 禁止ポリシーは IAM コンソールに、[AmazonRedshiftQueryEditorV2NoSharing](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftQueryEditorV2NoSharing.html) は*AWSマネージドポリシーリファレンスガイド*に記載されています。

## AmazonRedshiftQueryEditorV2ReadSharing
<a name="redshift-policy-managed-policies-query-editor-V2-read-sharing"></a>

限定されたリソースを共有しながら、Amazon Redshift クエリエディタ v2 を操作できる権限を付与します。このポリシーは、その他の必要なサービスへのアクセス権限も付与します。このポリシーを使用しているプリンシパルは、リソース (クエリなど）にタグ付けして、同じ AWS アカウントにあるその他のプリンシパルと共有することができます。付与されたプリンシパルは、チームと共有されているリソースの読み取りはできますが、更新はできません。

[AmazonRedshiftQueryEditorV2ReadSharing](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonRedshiftQueryEditorV2ReadSharing) ポリシーは IAM コンソールに、[AmazonRedshiftQueryEditorV2ReadSharing](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftQueryEditorV2ReadSharing.html) は*AWS管理ポリシーリファレンスガイド*に記載されています。

## AmazonRedshiftQueryEditorV2ReadWriteSharing
<a name="redshift-policy-managed-policies-query-editor-V2-write-sharing"></a>

リソースを共有して、Amazon Redshift クエリエディタ v2 を操作できる権限を付与します。このポリシーは、その他の必要なサービスへのアクセス権限も付与します。このポリシーを使用しているプリンシパルは、リソース (クエリなど）にタグ付けして、同じ AWS アカウントにあるその他のプリンシパルと共有することができます。付与されたプリンシパルは、そのチームと共有されているリソースを読み取り、更新することができます。

[AmazonRedshiftQueryEditorV2ReadWriteSharing](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonRedshiftQueryEditorV2ReadWriteSharing) ポリシーは IAM コンソールに、[AmazonRedshiftQueryEditorV2ReadWriteSharing](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftQueryEditorV2ReadWriteSharing.html) は*AWS管理ポリシーリファレンスガイド*に記載されています。

## AmazonRedshiftServiceLinkedRolePolicy
<a name="redshift-policy-managed-policies-service-linked-role-policy"></a>

IAM エンティティに AmazonRedshiftServiceLinkedRolePolicy をアタッチすることはできません。このポリシーは、Amazon Redshift がアカウントリソースにアクセスすることを許可する、サービスにリンクされたロールにアタッチされます。詳細については、「[Amazon Redshift でのサービスにリンクされたロールの使用](https://docs.aws.amazon.com/redshift/latest/mgmt/using-service-linked-roles.html)」を参照してください。

[AmazonRedshiftServiceLinkedRolePolicy](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonRedshiftServiceLinkedRolePolicy) ポリシーは IAM コンソールに、[AmazonRedshiftServiceLinkedRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftServiceLinkedRolePolicy.html) は*AWS管理ポリシーリファレンスガイド*に記載されています。

## AmazonRedshiftAllCommandsFullAccess
<a name="redshift-policy-managed-policies-service-linked-role-commands"></a>

Amazon Redshift コンソールから作成された IAM ロールを使用するための機能を付与します。このロールは、Amazon S3 からの COPY に加え、UNLOAD、CREATE EXTERNAL SCHEMA、CREATE EXTERNAL FUNCTION、および CREATE MODEL の各コマンドをクラスターが実行するためのデフォルトとして設定されす。同時にこのポリシーは、Amazon S3、CloudWatch Logs、Amazon SageMaker AI、AWS Glue などの関連サービスで、SELECT ステートメントを実行することも許可します。

[AmazonRedshiftAllCommandsFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonRedshiftAllCommandsFullAccess) ポリシーは IAM コンソールに、[AmazonRedshiftAllCommandsFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftAllCommandsFullAccess.html) は*AWS管理ポリシーリファレンスガイド*に記載されています。

## AmazonRedshiftFederatedAuthorization
<a name="redshift-policy-managed-policies-federated-authorization"></a>

 このポリシーは、Amazon Redshift フェデレーティッドアクセス許可を持つ Glue Data Catalog データベースに対してクエリを実行するために必要な IAM アクションを統合します。このようなクエリは AWS Glue を通過するため、オブジェクトを検出するためにカタログオブジェクトに対する Get アクションが必要であり、オブジェクトを変更するために Create、Update、Rename、Delete アクションが必要です。リソースは Amazon Redshift によって管理されるため、プリンシパルにはクエリを完了するための Redshift アクセス許可も必要です。`glue:FederateAuthorization` アクションにより AWS Glue はカタログオブジェクトの承認決定を Amazon Redshift に委任できます。

 このポリシーでは、プリンシパルは Amazon Redshift フェデレーティッドアクセス許可を持つカタログに対してクエリを実行できますが、Amazon Redshift 名前空間を AWS Glue に登録および登録解除することはできません。Amazon Redshift フェデレーティッドアクセス許可設定については、IAM ポリシー要件に関するドキュメントを参照してください。

[AmazonRedshiftFederatedAuthorization](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonRedshiftFederatedAuthorization) ポリシーは IAM コンソールに、[AmazonRedshiftFederatedAuthorization](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftFederatedAuthorization.html) は「*AWS マネージドポリシーリファレンスガイド*」に記載されています。

独自のカスタム IAM ポリシーを作成して、Amazon Redshift API オペレーションとリソースのためのアクセス権限を許可することもできます。これらのカスタムポリシーは、それらのアクセス許可が必要な IAM ロールまたはグループにアタッチできます。





## Redshift Spectrum を使用するために必要なアクセス許可
<a name="redshift-spectrum-policy-resources"></a>

Amazon Redshift Spectrum には、リソースにアクセスするためのその他の AWS サービスへのアクセス許可が必要です。Redshift Spectrum での IAM ポリシーのアクセス許可の詳細については、「*Amazon Redshift データベースデベロッパーガイド*」から「[Amazon Redshift Spectrum 用 IAM ポリシー](https://docs.aws.amazon.com/redshift/latest/dg/c-spectrum-iam-policies.html)」を参照してください。

## Amazon Redshift コンソールの使用に必要なアクセス許可
<a name="redshift-policy-resources.required-permissions.console"></a>

Amazon Redshift コンソールを使用するユーザーは、AWS アカウントの Amazon Redshift リソースを記述できる最小限のアクセス許可のセットを持つ必要があります。また、それらのアクセス許可では、Amazon EC2 セキュリティ、Amazon CloudWatch、Amazon SNS、ネットワーク情報など、その他の関連情報の記述も許可される必要があります。

これらの最小限必要なアクセス権限よりも制限された IAM ポリシーを作成している場合、その IAM ポリシーを使用するユーザーに対してコンソールは意図したとおりには機能しません。これらのユーザーが引き続き Amazon Redshift コンソールを使用できるようにするには、`AmazonRedshiftReadOnlyAccess` 管理ポリシーもユーザーにアタッチしてください これを行う方法については、[Amazon Redshift の AWS 管理ポリシー](#redshift-policy-resources.managed-policies)に記載されています。

Amazon Redshift コンソールのクエリエディタへのアクセス権をユーザーに付与するには、「[Amazon Redshift コンソールのクエリエディタを使用するために必要なアクセス許可](#redshift-policy-resources.required-permissions.query-editor)」を参照してください。

AWS CLI または Amazon Redshift API のみを呼び出すユーザーには、最小限のコンソールのアクセス許可を付与する必要はありません。

## Amazon Redshift コンソールのクエリエディタを使用するために必要なアクセス許可
<a name="redshift-policy-resources.required-permissions.query-editor"></a>

ユーザーが Amazon Redshift クエリエディタを操作するには、そのユーザーが Amazon Redshift および Amazon Redshift データ API オペレーションに対する最低限のアクセス権限を持っている必要があります。秘密を使用してデータベースに接続するには、Secrets Manager の権限も必要です。

ユーザーに Amazon Redshift コンソールのクエリエディタへのアクセス許可を付与するには、`AmazonRedshiftQueryEditor` と `AmazonRedshiftReadOnlyAccess` AWS 管理ポリシーをアタッチします。`AmazonRedshiftQueryEditor` ポリシーでは、ユーザーが SQL ステートメントの結果のみを取得することを許可しています。つまり、`AmazonRedshiftQueryEditor` AWS 管理ポリシーのこのセクションに示されているのと同じ `aws:userid` によって送信されるステートメントです。

```
{
    "Sid":"DataAPIIAMStatementPermissionsRestriction",
    "Action": [
        "redshift-data:GetStatementResult",
        "redshift-data:CancelStatement",
        "redshift-data:DescribeStatement",
        "redshift-data:ListStatements"
    ],
    "Effect": "Allow",
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "redshift-data:statement-owner-iam-userid": "${aws:userid}"
        }
    }
}
```

ユーザーが同じ IAM ロール内の他のユーザーの SQL ステートメントの結果を取得できるようにするには、現在のユーザーへのアクセスを制限する条件を指定せずに、独自のポリシーを作成します。また、ポリシーを変更するためのアクセスを制限します。

## クエリエディタv2 を使用するために必要なアクセス許可
<a name="redshift-policy-resources.required-permissions.query-editor-v2"></a>

ユーザーが Amazon Redshift クエリエディタ v2 を操作するには、そのユーザーが Amazon Redshift、クエリエディタ v2 オペレーションに対する最低限のアクセス権限を持っている必要があります。 AWS などのサービス AWS Key Management Service、AWS Secrets Manager、タグ付けサービスなどがあります。

ユーザーにクエリエディタ v2 へのフルアクセス権限を付与するには、`AmazonRedshiftQueryEditorV2FullAccess` AWS 管理ポリシーをアタッチします。`AmazonRedshiftQueryEditorV2FullAccess` ポリシーでは、クエリエディタ v2 リソース (クエリなど) を同じチーム内のその他のユーザーと共有する権限をユーザーに許可します。クエリエディタ v2 リソースへのアクセスを制御する方法の詳細については、IAM コンソールでクエリエディタ v2 の特定の管理ポリシーの定義を参照してください。

Amazon Redshift クエリエディタの v2 AWS 管理ポリシーでは、条件内で AWS タグを使用して、リソースへのアクセスをスコープします。クエリエディタ v2 の場合、クエリの共有は、プリンシパル (IAM ロール) にアタッチした IAM ポリシーのタグキーおよび値 `"aws:ResourceTag/sqlworkbench-team": "${aws:PrincipalTag/sqlworkbench-team}"` に基づいて行われます。クエリエディタ v2 では、同じ AWS アカウント内で同じタグ値 (`accounting-team` など) を持つプリンシパルは、同じチームに属しています。一度に 1 つのチームにのみ関連付けることができます。管理者権限を持つユーザーは、IAM コンソールで、すべてのチームメンバーに同じ値の `sqlworkbench-team` タグを付与してチームを設定することができます。`sqlworkbench-team` のタグ値が IAM ユーザーまたは IAM ロールに対して変更された場合、変更が共有リソースに反映されるまで遅延が発生する可能性があります。リソース (クエリなど) のタグ値が変更された場合は、変更が反映されるまで遅延が発生する可能性があります。また、チームメンバーは `tag:GetResources` のアクセス許可を共有します。

**例 : IAM ロールの `accounting-team` タグを追加する**

1. AWS マネジメントコンソール にサインインして、IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. コンソールのナビゲーションペインで、**ロール** を選択し、編集するロールの名前を選択します。

1. **タグ** タブを選択し、**タグ管理**を選択します。

1. タグキー **sqlworkbench-team** と値 `accounting-team`を追加。

1. **変更を保存**を選択します。

   これで、IAM プリンシパル (この IAM ロールがアタッチされた）がチームとクエリを共有すると、その他の `accounting-team` タグ値は、クエリを表示することができます。

IAM ロールや IAM ユーザーなど、プリンシパルにタグをアタッチする方法については、「*IAM ユーザーガイド*」の「[IAM リソースのタグ付け](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)」を参照してください。

ID プロバイダ (IdP) を使用して、セッションレベルでチームを設定することもできます。これにより、同じ IAM ロールを使用する複数のユーザーが異なるチームを持つことができます。IAM ロール信頼ポリシーが `sts:TagSession` オペレーションを許可している必要があります。詳しくは、「*IAM ユーザーガイド*」の「[セッションタグの追加に必要な権限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_permissions-required)」を参照してください。IdP によって提供される SAML アサーションにプリンシパルタグ属性を追加します。

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:sqlworkbench-team">
    <AttributeValue>accounting-team</AttributeValue>
</Attribute>
```

ID プロバイダ (IdP) の指示に従って、ディレクトリから取得したコンテンツを SAML 属性に設定します。アイデンティティプロバイダー (IdPs) と Amazon Redshift の詳細については、 *IAM ユーザーガイド* の [IAM 認証を使用したデータベースユーザー認証情報の生成](generating-user-credentials.md) と [アイデンティティプロバイダーとフェデレーション](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html)を参照してください。

`sqlworkbench:CreateNotebookVersion` は、ノートブックセルの現在のコンテンツを取得し、アカウントにノートブックバージョンを作成するアクセス許可を付与します。つまり、バージョン作成時には、ノートブックの現在のコンテンツはバージョンのコンテンツと同じです。その後、バージョンのセルのコンテンツは、現在のノートブックが更新されたときと同じままになります。`sqlworkbench:GetNotebookVersion` は、ノートブックのバージョンを取得するアクセス許可を付与します。`sqlworkbench:BatchGetNotebookCell` アクセス許可は持っていないものの、ノートブックに対する `sqlworkbench:CreateNotebookVersion` および `sqlworkbench:GetNotebookVersion` アクセス許可を持っているユーザーは、そのバージョンのノートブックセルにアクセスできます。`sqlworkbench:BatchGetNotebookCell` アクセス許可を持っていないこのユーザーは、最初にバージョンを作成してから取得することで、ノートブックのセルのコンテンツを取得できます。

## Amazon Redshift スケジューラを使用するために必要なアクセス許可
<a name="iam-permission-scheduler"></a>

Amazon Redshift スケジューラを使用する際、スケジューラがユーザーに代わってアクセス許可を引き受けることができるよう、Amazon Redshift スケジューラ (**scheduler.redshift.amazonaws.com**) に対して信頼関係を持つ IAM ロールをセットアップします。また、スケジュールする Amazon Redshift API オペレーションのロールに対してポリシー (アクセス許可）をアタッチすることもできます。

次の例は、Amazon Redshift スケジューラと Amazon Redshift との信頼関係をセットアップする JSON フォーマットでのポリシードキュメントを示しています。

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

****  

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

------

信頼エンティティの詳細については、「*IAM ユーザーガイド*」の「[AWS サービスに権限を委譲するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)」を参照してください。

また、スケジュールする Amazon Redshift オペレーションに対してもアクセス許可を追加する必要があります。

スケジューラで `ResizeCluster` オペレーションを使用するには、次に類似したアクセス許可を IAM ポリシーに追加します。環境によって、ポリシーをより限定的にする必要がある場合もあります。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "redshift:ResizeCluster",
            "Resource": "*"
        }
    ]
}
```

------

Amazon Redshift のスケジューラ用のロールを作成する手順については、「*IAM ユーザーガイド*[」の「AWS サービスのロールの作成 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console)」を参照してください。IAM コンソールでロールを作成する際は、次の選択を行います。
+ **このロールを使用するサービスを選択**で、**Redshift**を選択します。
+ **ユースケースの選択**で **Redshift - スケジューラ**を選択します。
+ Amazon Redshift オペレーションがスケジュールされるのを許可するロールにポリシーを作成またはアタッチします。**ポリシーの作成** を選択するか、ポリシーをアタッチするロールを変更します。スケジュールするオペレーションに対して JSON ポリシーを入力します。
+ ロールを作成したら、`redshift.amazonaws.com`サービスを含むIAM ロールの **信頼関係** を編集します。

作成する IAM ロールには、`scheduler.redshift.amazonaws.com`と `redshift.amazonaws.com` という信頼されているエンティティがあります。また、`"redshift:ResizeCluster"`などのサポートされた Amazon Redshift API アクションを許可するポリシーがアタッチされています。

## Amazon EventBridge スケジューラを使用するために必要なアクセス許可
<a name="iam-permission-eventbridge-scheduler"></a>

Amazon EventBridge スケジューラを使用する際、スケジューラがユーザーに代わってアクセス許可を引き受けることができるよう、EventBridge スケジューラ (**events.amazonaws.com**) に対して信頼関係を持つ IAM ロールをセットアップします。また、スケジュールする Amazon Redshift Data API オペレーションのロールと Amazon EventBridge オペレーションのポリシーに、ポリシー (アクセス許可）をアタッチすることもできます。

EventBridge スケジューラは、コンソールの Amazon Redshift クエリエディタを使用してスケジュールされたクエリを作成するときに使用します。

IAM ロールを作成して、IAM コンソールでスケジュールされたクエリを実行できます。この IAM ロールで、`AmazonEventBridgeFullAccess` と `AmazonRedshiftDataFullAccess`をアタッチします。

次の例は、EventBridge スケジューラとの信頼関係をセットアップする JSON フォーマットでのポリシードキュメントを示しています。

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

****  

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

------

信頼エンティティの詳細については、「*IAM ユーザーガイド*」の「[AWS のサービスにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)」を参照してください。

EventBridge スケジューラのロールを作成する手順については、「*IAM ユーザーガイド*」から「[AWS のサービス用ロールの作成 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console)」を参照してください。IAM コンソールでロールを作成する際は、次の選択を行います。
+ **このロールを使用するサービスを選択**で、**CloudWatch Events**を選択します。
+ **ユースケースの選択**で **CloudWatch Events**を選択します。
+ 次のアクセス許可ポリシー : `AmazonEventBridgeFullAccess` と `AmazonRedshiftDataFullAccess`をアタッチします。

作成する IAM ロールには、`events.amazonaws.com`という信頼されたエンティティがあります。また、`"redshift-data:*"`などのサポートされた Amazon Redshift API アクションを許可するポリシーがアタッチされています。

## Amazon Redshift 機械学習 (ML) を使用するために必要なアクセス許可
<a name="iam-permission-ml"></a>

Amazon Redshift 機械学習 (ML) を使用するために必要なアクセス権限の記述を以下に示します。

Amazon SageMaker AI で Amazon Redshift ML を使用するには、デフォルトよりも制限の厳しいポリシーをアタッチした IAM ロールを作成します。以下のフォーマットを使用できます。必要に応じてこのポリシーを変更することもできます。

次のポリシーは、Amazon Redshift のモデルの説明可能性機能を使用して SageMaker AI Autopilot を実行するために必要なアクセス許可を示しています。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreateTrainingJob",
                "sagemaker:CreateAutoMLJob",
                "sagemaker:CreateCompilationJob",
                "sagemaker:CreateEndpoint",
                "sagemaker:DescribeAutoMLJob",
                "sagemaker:DescribeTrainingJob",
                "sagemaker:DescribeCompilationJob",
                "sagemaker:DescribeProcessingJob",
                "sagemaker:DescribeTransformJob",
                "sagemaker:ListCandidatesForAutoMLJob",
                "sagemaker:StopAutoMLJob",
                "sagemaker:StopCompilationJob",
                "sagemaker:StopTrainingJob",
                "sagemaker:DescribeEndpoint",
                "sagemaker:InvokeEndpoint",
                "sagemaker:StopProcessingJob",
                "sagemaker:CreateModel",
                "sagemaker:CreateProcessingJob"
            ],
            "Resource": [
                "arn:aws:sagemaker:*:*:model/*redshift*",
                "arn:aws:sagemaker:*:*:training-job/*redshift*",
                "arn:aws:sagemaker:*:*:automl-job/*redshift*",
                "arn:aws:sagemaker:*:*:compilation-job/*redshift*",
                "arn:aws:sagemaker:*:*:processing-job/*redshift*",
                "arn:aws:sagemaker:*:*:transform-job/*redshift*",
                "arn:aws:sagemaker:*:*:endpoint/*redshift*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:DescribeLogStreams",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:/aws/sagemaker/Endpoints/*redshift*",
                "arn:aws:logs:*:*:log-group:/aws/sagemaker/ProcessingJobs/*redshift*",
                "arn:aws:logs:*:*:log-group:/aws/sagemaker/TrainingJobs/*redshift*",
                "arn:aws:logs:*:*:log-group:/aws/sagemaker/TransformJobs/*redshift*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:PutMetricData"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "cloudwatch:namespace": [
                        "SageMaker",
                        "/aws/sagemaker/Endpoints",
                        "/aws/sagemaker/ProcessingJobs",
                        "/aws/sagemaker/TrainingJobs",
                        "/aws/sagemaker/TransformJobs"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:BatchGetImage",
                "ecr:GetAuthorizationToken",
                "ecr:GetDownloadUrlForLayer"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetBucketAcl",
                "s3:GetBucketCors",
                "s3:GetEncryptionConfiguration",
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:ListAllMyBuckets",
                "s3:ListMultipartUploadParts",
                "s3:ListBucketMultipartUploads",
                "s3:PutObject",
                "s3:PutBucketAcl",
                "s3:PutBucketCors",
                "s3:DeleteObject",
                "s3:AbortMultipartUpload",
                "s3:CreateBucket"
            ],
            "Resource": [
                "arn:aws:s3:::redshift-downloads",
                "arn:aws:s3:::redshift-downloads/*",
                "arn:aws:s3:::*redshift*",
                "arn:aws:s3:::*redshift*/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetBucketAcl",
                "s3:GetBucketCors",
                "s3:GetEncryptionConfiguration",
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:ListAllMyBuckets",
                "s3:ListMultipartUploadParts",
                "s3:ListBucketMultipartUploads",
                "s3:PutObject",
                "s3:PutBucketAcl",
                "s3:PutBucketCors",
                "s3:DeleteObject",
                "s3:AbortMultipartUpload",
                "s3:CreateBucket"
            ],
            "Resource": "*",
            "Condition": {
                "StringEqualsIgnoreCase": {
                    "s3:ExistingObjectTag/Redshift": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "arn:aws:iam::*:role/*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "redshift.amazonaws.com",
                        "sagemaker.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

次のポリシーに、Amazon DynamoDB、Redshift Spectrum、および Amazon RDS フェデレーションへのアクセスを可能にするため必要な、完全かつ最小限のアクセス許可を示します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreateTrainingJob",
                "sagemaker:CreateAutoMLJob",
                "sagemaker:CreateCompilationJob",
                "sagemaker:CreateEndpoint",
                "sagemaker:DescribeAutoMLJob",
                "sagemaker:DescribeTrainingJob",
                "sagemaker:DescribeCompilationJob",
                "sagemaker:DescribeProcessingJob",
                "sagemaker:DescribeTransformJob",
                "sagemaker:ListCandidatesForAutoMLJob",
                "sagemaker:StopAutoMLJob",
                "sagemaker:StopCompilationJob",
                "sagemaker:StopTrainingJob",
                "sagemaker:DescribeEndpoint",
                "sagemaker:InvokeEndpoint",
                "sagemaker:StopProcessingJob",
                "sagemaker:CreateModel",
                "sagemaker:CreateProcessingJob"
            ],
            "Resource": [
                "arn:aws:sagemaker:*:*:model/*redshift*",
                "arn:aws:sagemaker:*:*:training-job/*redshift*",
                "arn:aws:sagemaker:*:*:automl-job/*redshift*",
                "arn:aws:sagemaker:*:*:compilation-job/*redshift*",
                "arn:aws:sagemaker:*:*:processing-job/*redshift*",
                "arn:aws:sagemaker:*:*:transform-job/*redshift*",
                "arn:aws:sagemaker:*:*:endpoint/*redshift*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:DescribeLogStreams",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:/aws/sagemaker/Endpoints/*redshift*",
                "arn:aws:logs:*:*:log-group:/aws/sagemaker/ProcessingJobs/*redshift*",
                "arn:aws:logs:*:*:log-group:/aws/sagemaker/TrainingJobs/*redshift*",
                "arn:aws:logs:*:*:log-group:/aws/sagemaker/TransformJobs/*redshift*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:PutMetricData"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "cloudwatch:namespace": [
                        "SageMaker",
                        "/aws/sagemaker/Endpoints",
                        "/aws/sagemaker/ProcessingJobs",
                        "/aws/sagemaker/TrainingJobs",
                        "/aws/sagemaker/TransformJobs"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:BatchGetImage",
                "ecr:GetAuthorizationToken",
                "ecr:GetDownloadUrlForLayer"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetBucketAcl",
                "s3:GetBucketCors",
                "s3:GetEncryptionConfiguration",
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:ListAllMyBuckets",
                "s3:ListMultipartUploadParts",
                "s3:ListBucketMultipartUploads",
                "s3:PutObject",
                "s3:PutBucketAcl",
                "s3:PutBucketCors",
                "s3:DeleteObject",
                "s3:AbortMultipartUpload",
                "s3:CreateBucket"
            ],
            "Resource": [
                "arn:aws:s3:::redshift-downloads",
                "arn:aws:s3:::redshift-downloads/*",
                "arn:aws:s3:::*redshift*",
                "arn:aws:s3:::*redshift*/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetBucketAcl",
                "s3:GetBucketCors",
                "s3:GetEncryptionConfiguration",
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:ListAllMyBuckets",
                "s3:ListMultipartUploadParts",
                "s3:ListBucketMultipartUploads",
                "s3:PutObject",
                "s3:PutBucketAcl",
                "s3:PutBucketCors",
                "s3:DeleteObject",
                "s3:AbortMultipartUpload",
                "s3:CreateBucket"
            ],
            "Resource": "*",
            "Condition": {
                "StringEqualsIgnoreCase": {
                    "s3:ExistingObjectTag/Redshift": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:Scan",
                "dynamodb:DescribeTable",
                "dynamodb:Getitem"
            ],
            "Resource": [
                "arn:aws:dynamodb:*:*:table/*redshift*",
                "arn:aws:dynamodb:*:*:table/*redshift*/index/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "elasticmapreduce:ListInstances"
            ],
            "Resource": [
                "arn:aws:elasticmapreduce:*:*:cluster/*redshift*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "elasticmapreduce:ListInstances"
            ],
            "Resource": "*",
            "Condition": {
                "StringEqualsIgnoreCase": {
                    "elasticmapreduce:ResourceTag/Redshift": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction"
            ],
            "Resource": "arn:aws:lambda:*:*:function:*redshift*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "glue:CreateDatabase",
                "glue:DeleteDatabase",
                "glue:GetDatabase",
                "glue:GetDatabases",
                "glue:UpdateDatabase",
                "glue:CreateTable",
                "glue:DeleteTable",
                "glue:BatchDeleteTable",
                "glue:UpdateTable",
                "glue:GetTable",
                "glue:GetTables",
                "glue:BatchCreatePartition",
                "glue:CreatePartition",
                "glue:DeletePartition",
                "glue:BatchDeletePartition",
                "glue:UpdatePartition",
                "glue:GetPartition",
                "glue:GetPartitions",
                "glue:BatchGetPartition"
            ],
            "Resource": [
                "arn:aws:glue:*:*:table/*redshift*/*",
                "arn:aws:glue:*:*:catalog",
                "arn:aws:glue:*:*:database/*redshift*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetResourcePolicy",
                "secretsmanager:GetSecretValue",
                "secretsmanager:DescribeSecret",
                "secretsmanager:ListSecretVersionIds"
            ],
            "Resource": [
                "arn:aws:secretsmanager:*:*:secret:*redshift*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetRandomPassword",
                "secretsmanager:ListSecrets"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "secretsmanager:ResourceTag/Redshift": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "arn:aws:iam::*:role/*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "redshift.amazonaws.com",
                        "glue.amazonaws.com",
                        "sagemaker.amazonaws.com",
                        "athena.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

オプションとして、暗号化用に AWS KMS キーを使用するために、以下のアクセス許可をポリシーに追加します。

```
{
    "Effect": "Allow",
    "Action": [
        "kms:CreateGrant",
        "kms:Decrypt",
        "kms:DescribeKey",
        "kms:Encrypt",
        "kms:GenerateDataKey*"
    ],
    "Resource": [
        "arn:aws:kms:<your-region>:<your-account-id>:key/<your-kms-key>"
    ]
}
```

Amazon Redshift と SageMaker AI が前述のロールを引き受けて他のサービスとやり取りできるようにするには、IAM ロールに以下の信頼ポリシーを追加します。

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

****  

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

------

Amazon S3 バケット `redshift-downloads/redshift-ml/` は、他のステップや例で使用されるサンプルデータが保存される場所です。Amazon S3 からデータをロードする必要がない場合は、削除できます。または、Amazon Redshift にデータをロードするために使用する他の Amazon S3 バケットに置き換えます。

**your-account-id**、**your-role**、および **your-s3-bucket** の値は、CREATE MODEL コマンドで指定したアカウント ID、ロール、およびバケットです。

 (任意）Amazon Redshift ML で使用する AWS KMS キーを指定する場合は、サンプルポリシーの AWS KMS キーセクションを使用できます。**your-kms-key** 値は、CREATE MODEL コマンドの一部として使用するキーです。

ハイパーパラメータ調整ジョブにプライベート仮想プライベートクラウド (VPC) を指定する場合は、次のアクセス許可を追加します。

```
{
            "Effect": "Allow",
            "Action": [
            "ec2:CreateNetworkInterface",
            "ec2:CreateNetworkInterfacePermission",
            "ec2:DeleteNetworkInterface",
            "ec2:DeleteNetworkInterfacePermission",
            "ec2:DescribeNetworkInterfaces",
            "ec2:DescribeVpcs",
            "ec2:DescribeDhcpOptions",
            "ec2:DescribeSubnets",
            "ec2:DescribeSecurityGroups"
            ]
}
```

モデルの説明を使用するには、SageMaker AI API オペレーションを呼び出すためのアクセス許可があることを確認します。`AmazonSageMakerFullAccess` 管理ポリシーを使用することをお勧めします。より制限の厳しいポリシーを持つ IAM ロールを作成する場合、以下のポリシーを使用します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateEndpoint",
        "sagemaker:CreateEndpointConfig",
        "sagemaker:DeleteEndpoint",
        "sagemaker:DeleteEndpointConfig",
        "sagemaker:DescribeEndpoint",
        "sagemaker:DescribeEndpointConfig",
        "sagemaker:DescribeModel",
        "sagemaker:InvokeEndpoint",
        "sagemaker:ListTags"
      ],
      "Resource": "*"
    }
  ]
}
```

------

`AmazonSageMakerFullAccess` マネージドポリシーの詳細については、「*Amazon SageMaker 開発者ガイド*」の「[AmazonSageMakerFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol.html#security-iam-awsmanpol-AmazonSageMakerFullAccess)」を参照してください。

予測モデルを作成する場合は、`AmazonForecastFullAccess` マネージドポリシーを使用することをお勧めします。より制限の厳しいポリシーを使用する場合、IAM ロールに以下のポリシーを追加します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "forecast:CreateAutoPredictor",
                "forecast:CreateDataset",
                "forecast:CreateDatasetGroup",
                "forecast:CreateDatasetImportJob",
                "forecast:CreateForecast",
                "forecast:CreateForecastExportJob",
                "forecast:DeleteResourceTree",
                "forecast:DescribeAutoPredictor",
                "forecast:DescribeDataset",
                "forecast:DescribeDatasetGroup",
                "forecast:DescribeDatasetImportJob",
                "forecast:DescribeForecast",
                "forecast:DescribeForecastExportJob",
                "forecast:StopResource",
                "forecast:TagResource",
                "forecast:UpdateDatasetGroup"
             ],
             "Resource": "*"
         }
    ]
}
```

------

Amazon Bedrock モデルを作成する場合は、`AmazonBedrockFullAccess` マネージドポリシーを使用することをお勧めします。より制限の厳しいポリシーを使用する場合、IAM ロールに以下のポリシーを追加します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "bedrock:InvokeModel",
            "Resource": [
                "*",
                "arn:aws:bedrock:us-east-1::foundation-model/*"
            ]
        }
    ]
}
```

------

Amazon Redshift ML の詳細については、「[Amazon Redshift での機械学習の使用](https://docs.aws.amazon.com/redshift/latest/dg/machine_learning.html)」、「[CREATE MODEL](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_MODEL.html)」、または「[CREATE EXTERNAL MODEL](https://docs.aws.amazon.com/redshift/latest/dg/r_create_external_model.html)」を参照してください。

## ストリーミング取り込みのアクセス許可
<a name="iam-permission-streaming-ingestion"></a>

ストリーミング取り込みは 2 つのサービスで機能します。Kinesis Data Streams と Amazon MSK です。

### Kinesis Data Streams でストリーミング取り込みを使用するために必要なアクセス許可
<a name="iam-permission-streaming-ingestion-kinesis"></a>

マネージド ポリシーの例を含む手順については、「[Amazon Kinesis Data Streams からストリーミング取り込みを開始する方法](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion-getting-started.html)」を参照してください。

### Amazon MSK でストリーミング取り込みを使用するために必要なアクセス許可
<a name="iam-permission-streaming-ingestion-kafka"></a>

マネージド ポリシーの例を含む手順については、「[Amazon Managed Streaming for Apache Kafka からのストリーミング取り込みを開始する](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion-getting-started-MSK.html)」を参照してください。

## データ共有 API オペレーションを使用するために必要な許可
<a name="iam-permission-datasharing"></a>

データ共有 API オペレーションへのアクセスを制御するには、IAM アクションベースのポリシーを使用します。IAM ポリシーの管理方法については、「[IAM ユーザーガイド](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html)」の「*IAM ポリシーの管理*」を参照してください。

特に、プロデューサークラスターの管理者が、AWS アカウントアカウント外のデータ共有のエグレスを承認するために `AuthorizeDataShare` 呼び出しを使用する必要があるとします。この場合、IAM アクションベースのポリシーを設定して、必要なアクセス許可を付与します。エグレスの取り消しには、`DeauthorizeDataShare` 呼び出しを使用します。

IAM アクションベースのポリシーを使用するときは、ポリシーで `DataShareARN`などの IAM リソースを指定することもできます。以下は、`DataShareARN`の形式と例を示しています。

```
arn:aws:redshift:region:account-id:datashare:namespace-guid/datashare-name
arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/SalesShare
```

IAM ポリシーでデータ共有名を指定することで、特定のデータ共有への `AuthorizeDataShare` アクセスを制限することができます。

```
{
  "Statement": [
    {
      "Action": [
        "redshift:AuthorizeDataShare",
      ],
      "Resource": [
        "arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/SalesShare"
      ],
      "Effect": "Deny"
    }
  ]
}
```

また、IAM ポリシーを、特定のプロデューサクラスターが所有するすべてのデータ共有に制限して使用することも可能です。これを行うには、そのポリシー内の **datashare-name** 値を、ワイルドカードまたはアスタリスクに置き換えます。クラスターの `namespace-guid` 値はそのままにしておきます。

```
arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/*
```

以下は、エンティティが、特定のプロデューサークラスターが所有するデータ共有上の `AuthorizeDataShare` を呼び出せないようにする IAM ポリシーの例です。

```
{
  "Statement": [
    {
      "Action": [
        "redshift:AuthorizeDataShare",
      ],
      "Resource": [
        "arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/*"
      ],
      "Effect": "Deny"
    }
  ]
}
```

`DataShareARN` は、データ共有名と、所有クラスターの名前空間のグローバル一意 ID (GUID) の両方に基づいてアクセスを制限します。この制限は、名前をアスタリスクにより指定することによって実施されています。

## GetClusterCredentials のリソースポリシー
<a name="redshift-policy-resources.getclustercredentials-resources"></a>

JDBC または ODBC 接続と IAM データベース認証情報を使用してクラスターデータベースに接続するか、`GetClusterCredentials` アクションをプログラムで呼び出すには、`redshift:GetClusterCredentials` アクションを呼び出すアクセス許可と `dbuser` リソースへのアクセス権が必要です。

JDBC または ODBC 接続を使用する場合、`server`と `port` の代わりに `cluster_id` と `region`を指定できますが、そのためには、ポリシーで `redshift:DescribeClusters` アクションと `cluster` リソースへのアクセス権を許可する必要があります。

オプションパラメータ `Autocreate`、`DbGroups`、および `DbName`を使用して `GetClusterCredentials` を呼び出す場合は、アクションも許可し、以下の表に一覧表示されているリソースへのアクセスを許可してください。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html)

リソースの詳細については、「[Amazon Redshift のリソースとオペレーション](redshift-iam-access-control-overview.md#redshift-iam-accesscontrol.actions-and-resources)」を参照してください。

また、次の条件をポリシーに含めることもできます。
+ `redshift:DurationSeconds`
+ `redshift:DbName`
+ `redshift:DbUser`

**重要**  
SAML SSO 統合では、`${redshift:DbUser}` 変数を使用して IAM ポリシーを指定する必要がある場合があります。このような場合は、発信者が AWS ユーザー ID と一致しないユーザーの認証情報を取得できないようにする条件ステートメントを使用することを強くお勧めします。例: `"StringEquals": {"aws:userid":"AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}"}"` 「[例 8: GetClusterCredentials を使用する IAM ポリシー](#redshift-policy-examples-getclustercredentials)」を参照してください。条件の詳細については、「[ポリシーでの条件を指定する](redshift-iam-access-control-overview.md#redshift-policy-resources.specifying-conditions)」を参照してください 

## お客様が管理するポリシーの例
<a name="redshift-iam-accesscontrol.examples"></a>

このセクションでは、さまざまな Amazon Redshift アクションのアクセス権限を付与するユーザーポリシー例を示しています。これらのポリシーは、Amazon Redshift API、AWS SDK、または AWS CLIを使用しているときに機能します。

**注記**  
すべての例で、米国西部 (オレゴン) リージョン (`us-west-2`) を使用し、架空のアカウント ID を使用しています。

### 例 1: ユーザーにすべての Amazon Redshift アクションとリソースへの完全アクセスを許可する
<a name="redshift-policy-example-allow-full-access"></a>

次のポリシーでは、すべてのリソースですべての Amazon Redshift アクションにアクセスできます。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid":"AllowRedshift",
      "Action": [
        "redshift:*"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}
```

------

`Action` 要素の値 `redshift:*` は、Amazon Redshift のすべてのアクションを示します。

### 例 2: 一連の Amazon Redshift アクションへのユーザーアクセスを拒否する
<a name="redshift-policy-example-deny-specific-actions"></a>

デフォルトでは、すべてのアクセス権が拒否されます。ただし、特定のアクションまたは一連のアクションへのアクセスを明示的に拒否しなければならない場合もあります。次のポリシーでは、すべての Amazon Redshift アクションへのアクセスが許可され、名前が `Delete`で始まる Amazon Redshift アクションへのアクセスが明示的に拒否されます。このポリシーは、`us-west-2`のすべての Amazon Redshift リソースに適用されます。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid":"AllowUSWest2Region",
      "Action": [
        "redshift:*"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:redshift:us-east-1:111122223333:*"
    },
   {
     "Sid":"DenyDeleteUSWest2Region",
     "Action": [
        "redshift:Delete*"
      ],
      "Effect": "Deny",
      "Resource": "arn:aws:redshift:us-east-1:111122223333:*"
   }
  ]
}
```

------

### 例 3: ユーザーがクラスターを管理することを許可する
<a name="redshift-policy-example-allow-manage-clusters"></a>

次のポリシーでは、ユーザーはすべてのクラスターを作成、削除、変更、再起動できます。さらに、名前が `protected`で始まるクラスターを削除するアクセス権限が拒否されます。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid":"AllowClusterManagement",
      "Action": [
        "redshift:CreateCluster",
        "redshift:DeleteCluster",
        "redshift:ModifyCluster",
        "redshift:RebootCluster"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid":"DenyDeleteProtected",
      "Action": [
        "redshift:DeleteCluster"
      ],
      "Resource": [
        "arn:aws:redshift:us-west-2:123456789012:cluster:protected*"
      ],
      "Effect": "Deny"
    }
  ]
}
```

------

### 例 4: ユーザーにスナップショットアクセスの許可と取り消し
<a name="redshift-policy-example-allow-authorize-revoke-snapshot"></a>

次のポリシーでは、ユーザー (例: ユーザー A）に次の操作を許可します。
+ `shared`というクラスターから作成されたスナップショットへのアクセスを許可します。
+ `shared` クラスターから作成されたスナップショット (スナップショット名の先頭が `revokable`）のスナップショットアクセスを取り消します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid":"AllowSharedSnapshots",
      "Action": [
        "redshift:AuthorizeSnapshotAccess"
      ],
      "Resource": [
        "arn:aws:redshift:us-west-2:123456789012:shared/*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid":"AllowRevokableSnapshot",
      "Action": [
        "redshift:RevokeSnapshotAccess"
      ],
      "Resource": [
        "arn:aws:redshift:us-west-2:123456789012:snapshot:*/revokable*"
      ],
      "Effect": "Allow"
    }
  ]
}
```

------

ユーザー A がスナップショットへのアクセスをユーザー B に許可した場合、スナップショットからクラスターを復元できるように、ユーザー B には次のようなポリシーを与える必要があります。次のポリシーでは、ユーザー B はスナップショットを表現したり、スナップショットから復元したり、クラスターを作成したりできます。これらのクラスター名の先頭は `from-other-account`にする必要があります。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid":"AllowDescribeSnapshots",
      "Action": [
        "redshift:DescribeClusterSnapshots"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid":"AllowUserRestoreFromSnapshot",
      "Action": [
        "redshift:RestoreFromClusterSnapshot"
      ],
      "Resource": [
        "arn:aws:redshift:us-west-2:123456789012:snapshot:*/*",
        "arn:aws:redshift:us-west-2:444455556666:cluster:from-other-account*"
      ],
      "Effect": "Allow"
    }
  ]
}
```

------

### 例 5: クラスタースナップショットのコピーとスナップショットからのクラスターの復元をユーザーに許可する
<a name="redshift-policy-example-allow-copy-restore-snapshot"></a>

次のポリシーでは、ユーザーは `big-cluster-1`という名前のクラスターから作成したスナップショットをコピーし、名前が `snapshot-for-restore`で始まるスナップショットを復元できます。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid":"AllowCopyClusterSnapshot",
      "Action": [
        "redshift:CopyClusterSnapshot"
      ],
      "Resource": [
        "arn:aws:redshift:us-west-2:123456789012:snapshot:big-cluster-1/*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid":"AllowRestoreFromClusterSnapshot",
      "Action": [
        "redshift:RestoreFromClusterSnapshot"
      ],
      "Resource": [
        "arn:aws:redshift:us-west-2:123456789012:snapshot:*/snapshot-for-restore*",
        "arn:aws:redshift:us-west-2:123456789012:cluster:*"
      ],
      "Effect": "Allow"
    }
  ]
}
```

------

### 例 6: ユーザーの Amazon Redshift と関連する AWS のサービスの一般的なアクションとリソースへのアクセスを許可する
<a name="redshift-policy-example-allow-related-services"></a>

 次のポリシー例では、Amazon Redshift、Amazon Simple Notification Service (Amazon SNS)、および Amazon CloudWatch のすべてのアクションとリソースへのアクセスを許可します。アカウントにおける関連する Amazon EC2 リソースでの指定されたアクションも許可します。

**注記**  
 リソースレベルのアクセス権限は、このサンプルポリシーで指定された Amazon EC2 アクションではサポートされません。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid":"AllowRedshift",
      "Effect": "Allow",
      "Action": [
        "redshift:*"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid":"AllowSNS",
      "Effect": "Allow",
        "Action": [
          "sns:*"
        ],
        "Resource": [
          "*"
        ]
      },
    {
      "Sid":"AllowCloudWatch",
      "Effect": "Allow",
      "Action": [
        "cloudwatch:*"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid":"AllowEC2Actions",
      "Effect": "Allow",
      "Action": [
        "ec2:AllocateAddress",
        "ec2:AssociateAddress",
        "ec2:AttachNetworkInterface",
        "ec2:DescribeAccountAttributes",
        "ec2:DescribeAddresses",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeInternetGateways",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSubnets",
        "ec2:DescribeVpcs"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------

### 例 7: ユーザーが Amazon Redshift コンソールを使用してリソースにタグを付けることを許可する
<a name="redshift-policy-example-allow-tagging-with-console"></a>

次のポリシー例では、ユーザーが AWS Resource Groupsを使用して Amazon Redshift コンソールでリソースにタグを付けることを許可しています。このポリシーは、新しい Amazon Redshift コンソールを呼び出すユーザーロールにアタッチできます。タグ付けの詳細については、「[Amazon Redshift のリソースのタグ付け](amazon-redshift-tagging.md)」を参照してください。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid":"TaggingPermissions",
            "Effect": "Allow",
            "Action": [
                "redshift:DeleteTags",
                "redshift:CreateTags",
                "redshift:DescribeTags",
                "tag:UntagResources",
                "tag:TagResources"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## 例 8: GetClusterCredentials を使用する IAM ポリシー
<a name="redshift-policy-examples-getclustercredentials"></a>

以下のポリシーでは、これらのサンプルパラメータの値を使用します。
+ リージョン : `us-west-2` 
+ AWS アカウント `123456789012` 
+ クラスター名 : `examplecluster` 

次のポリシーでは `GetCredentials`、`CreateClusterUser`、および `JoinGroup` アクションが有効になります。このポリシーでは、AWS ユーザー ID が `"AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com"`に一致する場合のみ条件キーが使用され、`GetClusterCredentials` と `CreateClusterUser` アクションが許可されます。IAM アクセスは、`"testdb"` データベース対してのみ要求されます。また、このポリシーは、ユーザーが `"common_group"`という名前のグループに参加することを許可します。

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

****  

```
{
"Version":"2012-10-17",		 	 	 
  "Statement": [
    {
     "Sid":"GetClusterCredsStatement",
      "Effect": "Allow",
      "Action": [
        "redshift:GetClusterCredentials"
      ],
      "Resource": [
        "arn:aws:redshift:us-west-2:123456789012:dbuser:examplecluster/${redshift:DbUser}",
        "arn:aws:redshift:us-west-2:123456789012:dbname:examplecluster/testdb",
        "arn:aws:redshift:us-west-2:123456789012:dbgroup:examplecluster/common_group"
      ],
        "Condition": {
           "StringEquals": {
           "aws:userid":"AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com"
           }
        }
    },
    {
      "Sid":"CreateClusterUserStatement",
      "Effect": "Allow",
      "Action": [
        "redshift:CreateClusterUser"
      ],
      "Resource": [
        "arn:aws:redshift:us-west-2:123456789012:dbuser:examplecluster/${redshift:DbUser}"
      ],
      "Condition": {
        "StringEquals": {
          "aws:userid":"AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com"
        }
      }
    },
    {
      "Sid":"RedshiftJoinGroupStatement",
      "Effect": "Allow",
      "Action": [
        "redshift:JoinGroup"
      ],
      "Resource": [
        "arn:aws:redshift:us-west-2:123456789012:dbgroup:examplecluster/common_group"
      ]
    }
  ]
}
```

------

次の例では、IAM ロールで `GetClusterCredentials` オペレーションの呼び出しを許可するポリシーを示します。Amazon Redshift `dbuser` リソースを指定すると、` examplecluster`というクラスターで、データベースユーザー名 ` temp_creds_user` にロールのアクセスが付与されます。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "redshift:GetClusterCredentials",
    "Resource": "arn:aws:redshift:us-west-2:123456789012:dbuser:examplecluster/temp_creds_user"
  }
}
```

------

ワイルドカード (\$1) を使用して、クラスター名、ユーザー名、およびデータベースグループ名のすべてまたは一部を置き換えることができます。次の例では、指定したアカウントのすべてのクラスターで、`temp_` で始まるすべてのユーザー名が許可されます。

**重要**  
次の例のステートメントでは、指定された文字から始まるすべてのリソースがポリシーで許可されるように、リソースの値の一部として、ワイルドカード文字 (\$1) を指定します。IAM ポリシーでワイルドカード文字を使用すると、過度に許可される場合があります。ベストプラクティスとして、ビジネスアプリケーションを最も制限する現実的なポリシーを使用することをお勧めします。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "redshift:GetClusterCredentials",
    "Resource": "arn:aws:redshift:us-west-2:123456789012:dbuser:*/temp_*"
  }
}
```

------

次の例では、IAM ロールが `GetClusterCredentials` オペレーションを呼び出すことを許可するポリシーを示します。オプションで新しいユーザーを自動的に作成し、ログイン時にユーザーが参加するグループを指定することができます。`"Resource": "*" `句により、クラスター、データベースユーザー、またはユーザーグループを含めて、任意のリソースへのロールアクセスが許可されます。

**重要**  
次の例の ステートメントでは、ワイルドカード文字 (\$1) を特定のアクションのリソースとして指定します。これにより、ポリシーは任意のクラスターおよびデータベースユーザーへのアクセスを許可し、任意のユーザーの作成を許可します。IAM ポリシーでワイルドカード文字を使用すると、過度に許可される場合があります。ベストプラクティスとして、ビジネスアプリケーションを最も制限する現実的なポリシーを使用することをお勧めします。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
             "redshift:GetClusterCredentials",
             "redshift:CreateClusterUser",
		"redshift:JoinGroup"
            ],
    "Resource": "*"
  }
}
```

------

詳細については、[Amazon Redshift ARN 構文](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-redshift)を参照してください。