示例策略:使用条件键 - Amazon Relational Database Service

示例策略:使用条件键

以下示例说明了如何在 Amazon RDS IAM 权限策略中使用条件键。

示例 1:授予权限以创建使用特定数据库引擎的非多可用区数据库实例

以下策略使用 RDS 条件键,并仅允许用户创建采用 MySQL 数据库引擎且不使用多可用区的数据库实例。Condition 元素指示数据库引擎须为 MySQL 的要求。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowMySQLCreate", "Effect": "Allow", "Action": "rds:CreateDBInstance", "Resource": "*", "Condition": { "StringEquals": { "rds:DatabaseEngine": "mysql" }, "Bool": { "rds:MultiAz": false } } } ] }

示例 2:明确拒绝权限,以禁止创建特定数据库实例类的数据库实例和使用预置 IOPS 的数据库实例

以下策略显式拒绝创建使用数据库实例类 r3.8xlargem4.10xlarge(最大、最贵的数据库实例类)的数据库实例的权限。此策略还禁止用户创建使用预置的 IOPS (这会带来额外成本) 的数据库实例。

显式拒绝权限会取代授予的任何其他权限。这可确保用户身份不会无意中获得您绝不希望授予的权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyLargeCreate", "Effect": "Deny", "Action": "rds:CreateDBInstance", "Resource": "*", "Condition": { "StringEquals": { "rds:DatabaseClass": [ "db.r3.8xlarge", "db.m4.10xlarge" ] } } }, { "Sid": "DenyPIOPSCreate", "Effect": "Deny", "Action": "rds:CreateDBInstance", "Resource": "*", "Condition": { "NumericNotEquals": { "rds:Piops": "0" } } } ] }

示例 3:限制可用于对资源进行标记的一组标签键和值的值

下面的策略使用 RDS 条件键,并允许将键为 stage 的标签添加到值为 testqaproduction 的资源。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds:AddTagsToResource", "rds:RemoveTagsFromResource" ], "Resource": "*", "Condition": { "streq": { "rds:req-tag/stage": [ "test", "qa", "production" ] } } } ] }