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 を使用できます。
カスタムポリシーを作成するには
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで、[ポリシー] を選択します。
-
[ポリシーの作成] を選択します。
-
[ポリシーの作成] ページで、[JSON] タブを選択します。
-
次のテキストをコピーして貼り付け、
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/*" } ] } -
[ポリシーの確認] を選択します。
-
ポリシーの名前と (必要に応じて) 説明を入力し、[ポリシーの作成] を選択します。
これで、そのポリシーを IAM ユーザーまたはロールにアタッチできるようになります。次の手順では、この目的で使用できる IAM ユーザーが既に存在することを前提としています。
ポリシーを IAM ユーザーにアタッチするには
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで [Users] (ユーザー) を選択します。
-
リストから存在するユーザーを 1 人選択します。
重要 Performance Insights を使用するには、カスタムポリシーのほかに別のポリシーで、Amazon RDS へのアクセスを許可されている必要があります。例えば、
AmazonRDSPerformanceInsightsReadOnly
事前定義ポリシーで、ユーザーに Amazon RDS への読み取り専用アクセスを許可します。詳細については、「ポリシーを使用したアクセスの管理」を参照してください。 -
[Summary] ページで、[Add permissions] を選択します。
-
[Attach existing policies directly] (既存のポリシーを直接アタッチする) を選択します。検索を行う場合は、次のようにポリシー名の初期の数文字を入力します。
-
ポリシーを選択し、[次へ: レビュー] を選択します。
-
[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). //Replaceregion
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
" } } }