メニュー
Amazon Redshift
管理ガイド (API Version 2012-12-01)

Amazon Redshift リソースへのアクセス権限の管理の概要

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

注記

アカウント管理者 (または管理者ユーザー) は、管理者権限を持つユーザーです。詳細については、IAM ユーザーガイド の「IAM のベストプラクティス」を参照してください。

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

Amazon Redshift リソースおよびオペレーション

Amazon Redshift では、プライマリリソースはクラスターです。Amazon Redshift は、スナップショット、パラメータグループ、イベントサブスクリプションなどのプライマリリソースとともに使用できるその他のリソースをサポートします。これらはサブリソースと呼ばれます。

これらのリソースとサブリソースには、次の表に示すとおり、一意の Amazon リソースネーム (ARN) が関連付けられています。

リソースタイプ ARN 形式
クラスター arn:aws:redshift:region:account-id:cluster:cluster-name
クラスターセキュリティグループ arn:aws:redshift:region:account-id:securitygroup:security-group-name
CIDR/IP アドレス arn:aws:redshift:region:account-id:securitygroupingress:security-group-name/cidrip/IP-range
EC2 セキュリティグループ arn:aws:redshift:region:account-id:securitygroupingress:security-group-name/ec2securitygroup/owner/EC2-security-group-id
イベントサブスクリプション arn:aws:redshift:region:account-id:eventsubscription:event-subscription-name
ハードウェアセキュリティモジュール (HSM) のクライアント証明書 arn:aws:redshift:region:account-id:hsmclientcertificate:HSM-client-certificate-id
HSM の設定 arn:aws:redshift:region:account-id:hsmconfiguration:HSM-configuration-id
パラメータグループ arn:aws:redshift:region:account-id:parametergroup:parameter-group-name
スナップショット arn:aws:redshift:region:account-id:snapshot:cluster-name/snapshot-name
スナップショットコピー権限 arn:aws:redshift:region:account-id:snapshotcopygrant:snapshot-copy-grant-name
サブネットグループ arn:aws:redshift:region:account-id:subnetgroup:subnet-group-name

Amazon Redshift には、Amazon Redshift リソースを操作するための一連のオペレーションが用意されています。使用可能なオペレーションのリストについては、「Amazon Redshift API のアクセス権限リファレンス」を参照してください。

リソース所有権について

リソース所有者は、リソースを作成した AWS アカウントです。つまり、リソース所有者は、リソースの作成リクエストを認証するプリンシパルエンティティ (ルートアカウント、IAM ユーザー、または IAM ロール) の AWS アカウントです。以下の例では、このしくみを示しています。

  • AWS アカウントの root アカウントの認証情報を使用して DB クラスターを作成する場合、AWS アカウントは Amazon Redshift リソースの所有者です。

  • AWS アカウントに IAM ユーザーを作成し、そのユーザーに Amazon Redshift リソースを作成するためのアクセス権限を付与する場合、そのユーザーは Amazon Redshift リソースを作成できます。ただし、ユーザーが属する AWS アカウントは Amazon Redshift リソースを所有しています。

  • Amazon Redshift リソースを作成するためのアクセス権限を持つ AWS アカウントに IAM ロールを作成する場合は、ロールを引き受けることのできるいずれのユーザーも Amazon Redshift リソースを作成できます。Amazon Redshift リソースを所有しているのは、このロールが属する AWS アカウントです。

リソースへのアクセスの管理

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

注記

このセクションでは、Amazon Redshift のコンテキストでの IAM の使用について説明します。これは、IAM サービスに関する詳細情報を取得できません。完全な IAM ドキュメントについては、「IAM とは?」 (IAM ユーザーガイド ) を参照してください。IAM ポリシー構文の詳細および説明については、IAM ユーザーガイド の「AWS IAM ポリシーリファレンス」を参照してください。

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

アイデンティティベースのポリシー (IAM ポリシー)

ポリシーを IAM アイデンティティにアタッチできます。たとえば、次の操作を実行できます。

  • アカウントのユーザーまたはグループにアクセス権限ポリシーをアタッチする – アカウント管理者は、特定のユーザーに関連付けられるアクセス権限ポリシーを使用して、そのユーザーに Amazon Redshift リソース (クラスターなど) の作成を許可するアクセス権限を付与することができます。

  • アクセス権限ポリシーをロールにアタッチする (クロスアカウントのアクセス権限を付与) – アイデンティティベースのアクセス権限ポリシーを IAM ロールにアタッチして、クロスアカウントのアクセス権限を付与することができます。たとえば、アカウント A の管理者は、次のように他のまたは AWS にクロスアカウントのアクセス権限を別の AWS アカウント (アカウント B) または AWS サービスに付与するロールを作成することができます。

    1. アカウント A の管理者は、IAM ロールを作成して、アカウント A のリソースに権限を付与するロールに権限ポリシーをアタッチします。

    2. アカウント A の管理者は、アカウント B をそのロールを引き受けるプリンシパルとして識別するロールに、信頼ポリシーをアタッチします。

    3. アカウント B の管理者は、アカウント B のユーザーにロールを引き受ける権限を委任できるようになります。これにより、アカウント B のユーザーにアカウント A のリソースの作成とアクセスが許可されます。AWS サービスのアクセス権限を付与してロールを引き受けさせたい場合は、信頼ポリシー内のプリンシパルも、AWS サービスのプリンシパルとなることができます。

    IAM を使用したアクセス権限の委任の詳細については、IAM ユーザーガイド の「アクセス管理」を参照してください。

次は、ユーザーが AWS アカウントで Amazon Redshift クラスターを作成、削除、変更、および再起動することを許可するポリシーの例です。

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

Amazon Redshift でアイデンティティベースのポリシーを使用する詳細については、Amazon Redshift でアイデンティティベースのポリシー (IAM ポリシー) を使用する を参照してください。ユーザー、グループ、ロール、アクセス権限の詳細については、「アイデンティティ (ユーザー、グループ、ロール)」 (IAM ユーザーガイド) を参照してください。

リソースベースのポリシー

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

ポリシー要素の指定 : アクション、効果、リソース、プリンシパル

Amazon Redshift リソースごとに (Amazon Redshift リソースおよびオペレーション を参照)、サービスは一連の API オペレーションを定義します (アクションを参照)。これらの API オペレーションのアクセス権限を付与するために、Amazon Redshift は、ポリシー内に指定できる一連のアクションを定義します。API オペレーションを実行する場合に、複数のアクションで権限が必要となる場合があることに注意してください。

以下は、基本的なポリシーの要素です。

  • リソース ‐ ポリシーで Amazon Resource Name (ARN) を使用して、ポリシーを適用するリソースを識別します。詳細については、「Amazon Redshift リソースおよびオペレーション」を参照してください。

  • アクション – アクションのキーワードを使用して、許可または拒否するリソースオペレーションを識別します。たとえば、redshift:DescribeClusters アクセス権限は、Amazon Redshift DescribeClusters オペレーションの実行をユーザーに許可します。

  • 効果 ‐ ユーザーが特定のアクションをリクエストする際の効果を指定します。許可または拒否のいずれかになります。リソースへのアクセスを明示的に許可していない場合、アクセスは暗黙的に拒否されます。また、明示的にリソースへのアクセスを拒否すると、別のポリシーによってアクセスが許可されている場合でも、ユーザーはそのリソースにアクセスできなくなります。

  • プリンシパル ‐ アイデンティティベースのポリシー (IAM ポリシー) で、ポリシーがアタッチされているユーザーが黙示的なプリンシパルとなります。リソースベースのポリシーでは、権限 (リソースベースのポリシーにのみ適用) を受け取りたいユーザー、アカウント、サービス、またはその他のエンティティを指定します。Amazon Redshift では、リソースベースのポリシーはサポートされていません。

IAM ポリシーの構文と記述の詳細については、IAM ユーザーガイド の「AWS IAM ポリシーの参照」を参照してください。

すべての Amazon Redshift API アクションとそれらが適用されるリソースの表については、Amazon Redshift API のアクセス権限リファレンス を参照してください。

ポリシーでの条件の指定

アクセス権限を付与するとき、アクセスポリシー言語を使用して、ポリシーが有効になる必要がある条件を指定できます。たとえば、特定の日付の後にのみ適用されるポリシーが必要になる場合があります。アクセスポリシー言語での条件の指定の詳細については、IAM ユーザーガイド の「条件」を参照してください。

アクセス権限ポリシーが適用される条件を指定するには、IAM アクセス権限ポリシーに Condition 要素を含めます。たとえば、redshift:CreateCluster アクションを使用してクラスターを作成することをユーザーに許可するポリシーを作成します。その後、特定のリージョンでのクラスターの作成のみにそのアクションを制限する Condition 要素を追加できます。詳細については、「詳細に設定されたアクセスコントロールのための IAM ポリシー条件の使用」を参照してください。すべての条件キーとそれらが適用される Amazon Redshift アクションとリソースのリストについては、Amazon Redshift API のアクセス権限リファレンスを参照してください。

詳細に設定されたアクセスコントロールのための IAM ポリシー条件の使用

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

条件キー 説明

redshift:RequestTag

リソースの作成時にはタグのキー (名前) と値を含める必要があります。redshift:RequestTag 条件キーは、リソースを作成する Amazon Redshift の API アクションにのみ適用されます。

redshift:ResourceTag

特定のタグのキーと値に基づいてリソースへのユーザーアクセスを制限します。

タグの詳細については、「タグ付けの概要」を参照してください。

redshift:RequestTag および redshift:ResourceTag 条件キーをサポートする API アクションのリストについては、「Amazon Redshift API のアクセス権限リファレンス」を参照してください。

例 1: redshift:ResourceTag 条件キーを使用してアクセスを制限する

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

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

例 2: redshift:RequestTag 条件キーを使用してアクセスを制限する

次の IAM ポリシーを使用すると、クラスターを作成するコマンドにタグ (名前が usage、値が production) が含まれている場合に限り、Amazon Redshift クラスターを作成することを許可できます。

Copy
{ "Version": "2012-10-17", "Statement": { "Sid":"AllowCreateProductionCluster", "Effect": "Allow", "Action": "redshift:CreateCluster", "Resource": "*" "Condition":{"StringEquals":{"redshift:RequestTag/usage":"production"} } }