Performance Insights 用のアクセスポリシーの設定 - Amazon Relational Database Service

Performance Insights 用のアクセスポリシーの設定

Performance Insights にアクセスするには、プリンシパルが AWS Identity and Access Management (IAM) から適切な許可を得る必要があります。以下の方法でアクセス権を付与することができます。

  • AmazonRDSPerformanceInsightsReadOnly マネージド型ポリシーを IAM ユーザーまたはロールにアタッチします。

  • カスタム IAM ポリシーを作成し、IAM ユーザーまたはロールにアタッチします。

また、Performance Insights を有効にしたときにカスタマーマネージドキーを指定した場合は、アカウント内のユーザーが KMS キーに対する kms:Decrypt および kms:GenerateDataKey 許可を持っていることを確認します。

AmazonRDSPerformanceInsightsReadOnly ポリシーの IAM プリンシパルへのアタッチ

AmazonRDSPerformanceInsightsReadOnly は Amazon RDS Performance Insights API のすべての読み取り専用オペレーションへのアクセス権限を付与する AWS マネージドポリシーです。現在、この API のすべてのオペレーションは読み取り専用です。

AmazonRDSPerformanceInsightsReadOnly を IAM ユーザーまたはロールにアタッチすると、受取人はコンソールのその他の機能とともに Performance Insights を使用できます。

Performance Insights 用のカスタム IAM ポリシーの作成

AmazonRDSPerformanceInsightsReadOnly ポリシーを持たないユーザーの場合は、ユーザーマネージド IAM ポリシーを作成または変更して、Performance Insights に対するアクセス権限を付与できます。ポリシーを IAM ユーザーまたはロールにアタッチすると、受取人は Performance Insights を使用できます。

カスタムポリシーを作成するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで、[ポリシー] を選択します。

  3. [ポリシーの作成] を選択します。

  4. [ポリシーの作成] ページで、[JSON] タブを選択します。

  5. 次のテキストをコピーして貼り付け、us-east-1 を AWS リージョン の名前に、111122223333 を使用するカスタマーアカウント番号に置き換えます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "rds:DescribeDBInstances", "Resource": "*" }, { "Effect": "Allow", "Action": "rds:DescribeDBClusters", "Resource": "*" }, { "Effect": "Allow", "Action": "pi:DescribeDimensionKeys", "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*" }, { "Effect": "Allow", "Action": "pi:GetDimensionKeyDetails", "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*" }, { "Effect": "Allow", "Action": "pi:GetResourceMetadata", "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*" }, { "Effect": "Allow", "Action": "pi:GetResourceMetrics", "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*" }, { "Effect": "Allow", "Action": "pi:ListAvailableResourceDimensions", "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*" }, { "Effect": "Allow", "Action": "pi:ListAvailableResourceMetrics", "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*" } ] }
  6. [ポリシーの確認] を選択します。

  7. ポリシーの名前と (必要に応じて) 説明を入力し、[ポリシーの作成] を選択します。

これで、そのポリシーを IAM ユーザーまたはロールにアタッチできるようになります。次の手順では、この目的で使用できる IAM ユーザーが既に存在することを前提としています。

ポリシーを IAM ユーザーにアタッチするには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで [Users] (ユーザー) を選択します。

  3. リストから存在するユーザーを 1 人選択します。

    重要

    Performance Insights を使用するには、カスタムポリシーのほかに別のポリシーで、Amazon RDS へのアクセスを許可されている必要があります。例えば、AmazonRDSPerformanceInsightsReadOnly 事前定義ポリシーで、ユーザーに Amazon RDS への読み取り専用アクセスを許可します。詳細については、「ポリシーを使用したアクセスの管理」を参照してください。

  4. [Summary] ページで、[Add permissions] を選択します。

  5. [Attach existing policies directly] (既存のポリシーを直接アタッチする) を選択します。検索を行う場合は、次のようにポリシー名の初期の数文字を入力します。

    
						ポリシーの選択
  6. ポリシーを選択し、[次へ: レビュー] を選択します。

  7. [Add permissions] (許可の追加) を選択します。

Performance Insights 用の AWS KMS ポリシーの設定

Performance Insights は、AWS KMS key を使用して機密データを暗号化します。API またはコンソールを通じて Performance Insights を有効にする場合は、次のいずれかを実行します。

  • デフォルト AWS マネージドキー を選択します。

    Amazon RDS は、新しい DB インスタンスに AWS マネージドキー を使用します。Amazon RDS は、AWS アカウント に AWS マネージドキー を作成します。AWS アカウント には、AWS リージョン ごとに Amazon RDS の AWS マネージドキー が別々にあります。

  • カスタマーマネージドキーを選択します。

    カスタマーマネージドキーを指定する場合、Performance Insights API を呼び出すアカウント内のユーザーは、KMS キーに対する kms:Decrypt および kms:GenerateDataKey アクセス許可が必要です。IAM ポリシーを使用して、これらのアクセス許可を設定できます。ただし、KMS キーポリシーを使用してこれらのアクセス許可を管理することをお勧めします。詳細については、AWS KMS でのキーポリシーの使用を参照してください。

次の例では、KMS キーポリシーにステートメントを追加する方法を示します。これらのステートメントは、Performance Insights へのアクセスを許可します。KMS キーの使用方法によっては、いくつかの制限を変更することもできます。ポリシーにステートメントを追加する前に、すべてのコメントを削除してください。

{ "Version" : "2012-10-17", "Id" : "your-policy", "Statement" : [ { //This represents a statement that currently exists in your policy. } ...., //Starting here, add new statement to your policy for Performance Insights. //We recommend that you add one new statement for every RDS instance { "Sid" : "Allow viewing RDS Performance Insights", "Effect": "Allow", "Principal": { "AWS": [ //One or more principals allowed to access Performance Insights "arn:aws:iam::444455556666:role/Role1" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition" : { "StringEquals" : { //Restrict access to only RDS APIs (including Performance Insights). //Replace region with your AWS Region. //For example, specify us-west-2. "kms:ViaService" : "rds.region.amazonaws.com" }, "ForAnyValue:StringEquals": { //Restrict access to only data encrypted by Performance Insights. "kms:EncryptionContext:aws:pi:service": "rds", "kms:EncryptionContext:service": "pi", //Restrict access to a specific RDS instance. //The value is a DbiResourceId. "kms:EncryptionContext:aws:rds:db-id": "db-AAAAABBBBBCCCCDDDDDEEEEE" } } }