View a markdown version of this page

Amazon Aurora DSQL での IAM 条件キーの使用 - Amazon Aurora DSQL

Amazon Aurora DSQL での IAM 条件キーの使用

Condition 要素 (または Condition ブロック) は、ポリシーのステートメントが有効となる条件を指定します。StringEqualsStringLike などの条件演算子を使用して条件式を構築し、ポリシー内のキーをリクエスト内の値と照合します。条件キーは、Resource 要素を使用してアクションを特定のリソースに制限するリソース ARN スコープとは異なります。

Amazon Aurora DSQL は、サービス固有の条件キーと AWS グローバル条件キーの両方をサポートしています。これらのキーを使用して、IAM ポリシーステートメントが適用される条件を絞り込むことができます。AWS グローバル条件キーの詳細については、「IAM ユーザーガイド」の「AWS グローバル条件コンテキストキー」を参照してください。

Amazon Aurora DSQL で使用できる条件キー

Amazon Aurora DSQL は、サービス固有の条件キー dsql:WitnessRegiondsql:FisActionId、および dsql:FisTargetArns をサポートしています。aws:RequestTagaws:ResourceTagaws:TagKeys などの AWS グローバル条件キーを使用することもできます。Amazon Aurora DSQL アクションの完全なリストとポリシーで指定できるリソースについては、「サービス認可リファレンス」の「Amazon Aurora DSQL のアクション、リソース、および条件キー」を参照してください。

例: マルチリージョンクラスターの監視リージョンを制限する

次のポリシーでは、dsql:WitnessRegion 条件キーを使用して、監視リージョンが米国西部 (オレゴン) の場合にのみ、マルチリージョンクラスターの作成を許可しています。この条件がない場合、任意のリージョンを監視リージョンとして指定できます。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowCreateWithSpecificWitness", "Effect": "Allow", "Action": [ "dsql:CreateCluster", "dsql:PutWitnessRegion" ], "Resource": "arn:aws:dsql:*:123456789012:cluster/*", "Condition": { "StringEquals": { "dsql:WitnessRegion": "us-west-2" } } }, { "Sid": "AllowMultiRegionSetup", "Effect": "Allow", "Action": [ "dsql:PutMultiRegionProperties", "dsql:AddPeerCluster" ], "Resource": "arn:aws:dsql:*:123456789012:cluster/*" } ] }

最初のステートメントは、dsql:WitnessRegion 条件を、それをサポートするアクション (dsql:CreateCluster および dsql:PutWitnessRegion) に適用します。2 番目のステートメントは、条件なしで dsql:PutMultiRegionPropertiesdsql:AddPeerCluster を許可します。これは、dsql:WitnessRegion 条件キーが dsql:CreateCluster および dsql:PutWitnessRegion にのみ適用されるためです。

例: クラスターの作成時にタグを必須にする

次のポリシーでは、aws:RequestTag および aws:TagKeys 条件キーを使用して、クラスターの作成時に Environment タグを必須にしています。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowCreateWithRequiredTag", "Effect": "Allow", "Action": "dsql:CreateCluster", "Resource": "arn:aws:dsql:*:123456789012:cluster/*", "Condition": { "StringEquals": { "aws:RequestTag/Environment": [ "production", "staging", "development" ] }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "Environment", "Owner" ] } } } ] }

このポリシーは 2 つの条件キーを一緒に使用します。aws:RequestTag/Environment 条件では、Environment タグが許可された値のいずれかを持つことが求められます。ForAllValues 集合演算子を使用した aws:TagKeys 条件は、リクエストに Environment および Owner タグキーのみが含まれるようにします。

例: 特定のクラスターへのフォールトインジェクションを制限する

次のポリシーでは、dsql:FisActionId および dsql:FisTargetArns 条件キーを使用して、AWS FIS によるフォールトインジェクションを特定のアクションとターゲットクラスターに制限します。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowSpecificFaultInjection", "Effect": "Allow", "Action": "dsql:InjectError", "Resource": "*", "Condition": { "StringEquals": { "dsql:FisActionId": "aws:dsql:cluster-connection-failure" }, "ForAllValues:ArnLike": { "dsql:FisTargetArns": "arn:aws:dsql:us-east-1:123456789012:cluster/*" } } } ] }

この dsql:FisActionId 条件は、実行できるフォールトインジェクションアクションを制限します。dsql:FisTargetArns 条件は ForAllValues 集合演算子と ArnLike 演算子を使用します。これにより、リクエスト内のすべてのクラスター ARN が許可されたパターンと一致するようになります。これにより、意図した範囲外のクラスター ARN を含むリクエストがブロックされます。