View a markdown version of this page

将 IAM 条件键与 Amazon Aurora DSQL 结合使用 - Amazon Aurora DSQL

将 IAM 条件键与 Amazon Aurora DSQL 结合使用

Condition 元素(或 Condition 块)指定策略语句生效的条件。您可以使用条件运算符(例如 StringEqualsStringLike)构建条件表达式,来将策略中的键与请求中的值进行匹配。条件键不同于资源 ARN 范围界定,后者使用 Resource 元素将操作限制为特定的资源。

Amazon Aurora DSQL 同时支持特定于服务的条件键和 AWS 全局条件键。您可以使用这些键来优化 IAM 策略语句适用的条件。有关 AWS 全局条件键的更多信息,请参阅《IAM 用户指南》中的 AWS 全局条件上下文键

Amazon Aurora DSQL 的可用条件键

Amazon Aurora DSQL 支持特定于服务的条件键 dsql:WitnessRegiondsql:FisActionIddsql:FisTargetArns。您也可以使用 AWS 全局条件键,例如 aws:RequestTagaws:ResourceTagaws:TagKeys。有关您可以在策略中指定的 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:CreateClusterdsql:PutWitnessRegion)。第二条语句授予 dsql:PutMultiRegionPropertiesdsql:AddPeerCluster(不使用条件),因为 dsql:WitnessRegion 条件键仅适用于 dsql:CreateClusterdsql:PutWitnessRegion

示例:创建集群时需要标签

以下策略使用 aws:RequestTagaws: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" ] } } } ] }

此策略同时使用两个条件键。aws:RequestTag/Environment 条件要求 Environment 标签具有支持的值之一。带有 ForAllValues 集合运算符的 aws:TagKeys 条件可确保请求仅包含 EnvironmentOwner 标签键。

示例:将故障注入限制为特定集群

以下策略使用 dsql:FisActionIddsql: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 的请求。