メニュー
Amazon Redshift
クラスター管理ガイド (API Version 2012年12月1日)

Amazon Redshift のサービスにリンクされたロールの使用

Amazon Redshift では、AWS Identity and Access Management (IAM) の「サービスにリンクされたロール」を使用します。サービスにリンクされたロールは、Amazon Redshift に直接リンクされた一意のタイプの IAM ロールです。サービスにリンクされたロールは、Amazon Redshift によって事前定義されており、お客様の Amazon Redshift cluster の代わりにサービスから AWS サービスを呼び出す必要のあるアクセス権限がすべて含まれています。

サービスにリンクされたロールを使用することで、必要なアクセス権限を手動で追加する必要がなくなるため、Amazon Redshift の設定が簡単になります。このロールは、Amazon Redshift ユースケースにリンクされており、事前定義されたアクセス許可があります。ロールを引き受けることができるのは Amazon Redshift のみ、事前定義されたアクセス許可ポリシーを使用することができるのはサービスにリンクされたロールのみです。クラスターをはじめて作成する場合は、Amazon Redshift によって、サービスにリンクされたロールがアカウントに作成されます。このサービスにリンクされたロールを削除するには、アカウントの Amazon Redshift クラスターをすべて削除する必要があります。これにより、不注意で Amazon Redshift リソースへのアクセスに必要なアクセス許可の削除が防止され、このリソースは保護されます。

サービスにリンクされたロールをサポートする他のサービスについては、「IAM と連携する AWS サービス」を参照の上、「サービスにリンクされたロール」列が「はい」になっているサービスを検索してください。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、[はい] リンクを選択します。

Amazon Redshift のサービスにリンクされたロールのアクセス許可

Amazon Redshift では、サービスにリンクされたロール (AWSServiceRoleForRedshift) – Allows Amazon Redshift to call AWS services on your behalf を使用します。

AWSServiceRoleForRedshift サービスにリンクされたロールは、ロールを引き受ける上で redshift.amazonaws.com のみを信頼します。

AWSServiceRoleForRedshift サービスにリンクされたロールのアクセス許可ポリシーでは、Amazon Redshift はすべての関連リソースで以下のことを実行することができます。

  • ec2:DescribeVpcs

  • ec2:DescribeSubnets

  • ec2:DescribeNetworkInterfaces

  • ec2:DescribeAddress

  • ec2:AssociateAddress

  • ec2:DisassociateAddress

  • ec2:CreateNetworkInterface

  • ec2:DeleteNetworkInterface

  • ec2:ModifyNetworkInterfaceAttribute

IAM エンティティが AWSServiceRoleForRedshift サービスにリンクされたロールを作成することを許可するには

以下のポリシーステートメントを IAM エンティティのアクセス許可に追加します。

{ "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::<AWS-account-ID>:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift", "Condition": {"StringLike": {"iam:AWSServiceName": "redshift.amazonaws.com"}} }

IAM エンティティが AWSServiceRoleForRedshift サービスにリンクされたロールを削除することを許可するには

以下のポリシーステートメントを IAM エンティティのアクセス許可に追加します。

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::<AWS-account-ID>:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift", "Condition": {"StringLike": {"iam:AWSServiceName": "redshift.amazonaws.com"}} }

または、AWS 管理ポリシーを使用して、Amazon Redshift への「フルアクセスを付与」することもできます。

Amazon Redshift のサービスにリンクされたロールの作成

AWSServiceRoleForRedshift サービスにリンクされたロールを手動で作成する必要はありません。Amazon Redshift は、お客様のサービスにリンクされたロールを作成します。AWSServiceRoleForRedshift サービスにリンクされたロールがアカウントより削除されている場合は、新しい Amazon Redshift クラスターを起動すると、Amazon Redshift によってロールが作成されます。

重要

September 18, 2017 以前に Amazon Redshift サービスを使用していた場合は、サービスにリンクされたロールのサポートを開始すると、Amazon Redshift によって、AWSServiceRoleForRedshift ロールがアカウントに作成されます。詳細については、「IAM アカウントに新しいロールが表示される」を参照してください。

Amazon Redshift のサービスにリンクされたロールの編集

Amazon Redshift では、AWSServiceRoleForRedshift サービスにリンクされたロールを編集することはできません。サービスにリンクされたロールを作成すると、多くのエンティティによってロールが参照される可能性があるため、ロール名を変更することはできません。ただし、ロールの説明は IAM コンソール、AWS コマンドラインインターフェイス (AWS CLI)、または IAM API を使用して編集することができます。詳細については、『IAM ユーザーガイド』の「ロールの修正」を参照してください。

Amazon Redshift のサービスにリンクされたロールの削除

サービスにリンクされたロールが必要な機能またはサービスが不要になった場合には、そのロールを削除することをお勧めします。そうすることで、使用していないエンティティがアクティブにモニタリングされたり、メンテナンスされたりすることがなくなります。

アカウントのサービスにリンクされたロールを削除するには、アカウントのクラスターをシャットダウンし、削除する必要があります。詳細については、「クラスターのシャットダウンと削除」を参照してください。

サービスにリンクされたロールは、IAM コンソール、AWS CLI、または IAM API を使用して削除することができます。詳細については、『IAM ユーザーガイド』の「サービスにリンクされたロールの削除」を参照してください。