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

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

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

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

Amazon Redshift では、これが利用可能なすべてのリージョンにおいて、サービスにリンクされたロールの使用がサポートされています。詳細については、 AWS リージョンとエンドポイントを参照してください。

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

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

Amazon Redshift が AWSServiceRoleForRedshift という名前のサービスにリンクされたロールを使用 – Amazon Redshift がユーザーに代わって AWS のサービスを呼び出すことを許可します。このサービスリンクロールは、マネージドポリシー AmazonRedshiftServiceLinkedRolePolicy にアタッチされます。このポリシーの更新情報については、「Amazon Redshift の AWS 管理 (事前定義) ポリシー」を参照してください。

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

  • ec2:CreateVpcEndpoint

  • ec2:DeleteVpcEndpoints

  • ec2:DescribeVpcEndpoints

  • ec2:ModifyVpcEndpoint

  • ec2:DescribeVpcAttribute

  • ec2:DescribeSecurityGroups

  • ec2:DescribeInternetGateways

  • ec2:DescribeSecurityGroupRules

  • ec2:DescribeAvailabilityZones

  • ec2:DescribeNetworkAcls

  • ec2:DescribeRouteTables

  • ec2:AssignIpv6Addresses

  • ec2:UnassignIpv6Addresses

ネットワークリソースに対するアクセス許可

次のアクセス許可では、セキュリティグループルールを作成して管理するためのアクションを Amazon EC2 で実行できます。これらのセキュリティグループおよびルールは、Amazon Redshift aws:RequestTag/Redshift のリソースタグに厳密に関連付けられています。これにより、アクセス許可の範囲は特定の Amazon Redshift のリソースに制限されます。

  • ec2:CreateSecurityGroup

  • ec2:AuthorizeSecurityGroupEgress

  • ec2:AuthorizeSecurityGroupIngress

  • ec2:RevokeSecurityGroupEgress

  • ec2:RevokeSecurityGroupIngress

  • ec2:ModifySecurityGroupRules

  • ec2:DeleteSecurityGroup

Service Quotas のアクセス許可

次のアクセス許可により、呼び出し元は Service Quotas を取得できます。

servicequotas:GetServiceQuota

次の JSON フラグメントは、Service Quotas のアクションとリソーススコープを示しています。

{ "Sid": "ServiceQuotasToCheckCustomerLimits", "Effect": "Allow", "Action": [ "servicequotas:GetServiceQuota" ], "Resource": [ "arn:aws:servicequotas:*:*:ec2/L-0263D0A3", "arn:aws:servicequotas:*:*:vpc/L-29B6F2EB" ] }

クォータコードは次のとおりです。

  • L-0263D0A3 – EC2-VPC Elastic IP のクォータコード。

  • L-29B6F2EB – VPC あたりのインターフェイス VPC エンドポイントのクォータコード。

詳細については、「AWS のサービスクォータ」を参照してください。

監査ログ記録のためのアクション

logs プレフィックスとともにリストされたアクションは、監査ログ記録と関連機能と関係があります。具体的には、ロググループとログストリームの作成と管理に関連します。

  • logs:CreateLogGroup

  • logs:PutRetentionPolicy

  • logs:CreateLogStream

  • logs:PutLogEvents

  • logs:DescribeLogStreams

  • logs:GetLogEvents

次の JSON は、監査ログ記録用の Amazon Redshift に対する、アクションとリソースの範囲を示しています。

[ { "Sid": "EnableCreationAndManagementOfRedshiftCloudwatchLogGroups", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:PutRetentionPolicy" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/redshift/*" ] }, { "Sid": "EnableCreationAndManagementOfRedshiftCloudwatchLogStreams", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "logs:GetLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/redshift/*:log-stream:*" ] } ]

サービスリンクロールと、AWS での用途については、「サービスにリンクされたロールの使用」を参照してください。Amazon Redshift での特定のアクション、およびその他の IAM リソースの詳細については、「Amazon Redshift のアクション、リソース、および条件キー」を参照してください。

AWS Secrets Manager を使用して管理者認証情報を管理するためのアクション

secretsmanager プレフィックス付きでリストされているアクションは、Amazon Redshift を使用して管理者認証情報を管理するためのものです。このようなアクションを実行すると、Amazon Redshift は AWS Secrets Manager を使用して、管理者認証情報シークレットの作成と管理を行います。

次の JSON は、AWS Secrets Manager で管理者認証情報を管理するための Amazon Redshift に対するアクションとリソースの範囲を示しています。

[ { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:DeleteSecret", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecret", "secretsmanager:UpdateSecretVersionStage", "secretsmanager:RotateSecret" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:redshift!*" ], "Condition": { "StringEquals": { "secretsmanager:ResourceTag/aws:secretsmanager:owningService": "redshift" } } }, { "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword" ], "Resource": "*" } ]

クラスターとサーバーレス名前空間を AWS Glue Data Catalog に登録するためのアクション

glue というプレフィックスが付いたアクションは、プロビジョニング済みクラスターまたはサーバーレス名前空間の登録を通じて AWS Glue Data Catalog に作成されたカタログへのアクセスに関連しています。詳細については、「Amazon Redshift Database デベロッパーガイド」の「Apache Iceberg の Amazon Redshift との互換性」を参照してください。

次の JSON は、Amazon Redshift に対する、AWS Glue Data Catalog のカタログへのアクセスに関するアクションとリソースの範囲を示しています。

{ "Sid": "DiscoverRedshiftCatalogs", "Effect": "Allow", "Action": [ "glue:GetCatalog", "glue:GetCatalogs" ], "Resource": [ "arn:aws:glue:*:*:catalog", "arn:aws:glue:*:*:catalog/*" ], "Condition": { "Bool": { "glue:EnabledForRedshiftAutoDiscovery": "true" } } }

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

{ "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 によってロールが作成されます。

重要

2017 年 9 月 18 日より前に Amazon Redshift サービスを使用していた場合、サービスにリンクされたロールのサポートが開始された時点で、Amazon Redshift により AWSServiceRoleForRedshift ロールがアカウントに作成済されています。詳細については、IAM アカウントに新しいロールが表示されるを参照してください。

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

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

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

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

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

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