在创建过程中授予为 Amazon RDS 资源添加标签的权限 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在创建过程中授予为 Amazon RDS 资源添加标签的权限

某些 RDS API 操作支持在创建资源时指定标签。您可以使用资源标签来实现基于属性的控制 (ABAC)。有关更多信息,请参阅什么是适用于 Amazon 的 ABAC?使用标签控制对 Amazon 资源的访问

为使用户能够在创建时为资源添加标签,他们必须有权使用创建该资源的操作(如 rds:CreateDBInstance)。如果在创建操作中指定了标签,则 RDS 会对 rds:AddTagsToResource 操作执行额外的授权,以验证用户是否具备创建标签的权限。因此,用户还必须具有使用 rds:AddTagsToResource 操作的显式权限。

rds:AddTagsToResource 操作的 IAM 策略定义中,可以使用 aws:RequestTag 条件键要求在请求中使用标签来为资源加标签。

例如,以下策略支持用户在创建数据库实例期间创建数据库实例和应用标签,但只能使用特定的标签键(environmentproject):

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds:CreateDBInstance" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "rds:AddTagsToResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/environment": ["production", "development"], "aws:RequestTag/project": ["dataanalytics", "webapp"] }, "ForAllValues:StringEquals": { "aws:TagKeys": ["environment", "project"] } } } ] }

此策略拒绝以下任何创建数据库实例请求:包含除 environmentproject 标签之外的其它标签,或者未指定这两个标签中的任何一个。此外,用户必须为标签指定与策略中支持的值相匹配的值。

以下策略支持用户创建数据库集群和在创建过程中应用除 environment=prod 标签以外的任何标签:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds:CreateDBCluster" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "rds:AddTagsToResource" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestTag/environment": "prod" } } } ] }

支持在创建时添加标签的 RDS API 操作

以下 RDS API 操作支持在创建资源时添加标签。对于这些操作,您可以在创建资源时指定标签:

  • CreateBlueGreenDeployment

  • CreateCustomDBEngineVersion

  • CreateDBCluster

  • CreateDBClusterEndpoint

  • CreateDBClusterParameterGroup

  • CreateDBClusterSnapshot

  • CreateDBInstance

  • CreateDBInstanceReadReplica

  • CreateDBParameterGroup

  • CreateDBProxy

  • CreateDBProxyEndpoint

  • CreateDBSecurityGroup

  • CreateDBShardGroup

  • CreateDBSnapshot

  • CreateDBSubnetGroup

  • CreateEventSubscription

  • CreateGlobalCluster

  • CreateIntegration

  • CreateOptionGroup

  • CreateTenantDatabase

  • CopyDBClusterParameterGroup

  • CopyDBClusterSnapshot

  • CopyDBParameterGroup

  • CopyDBSnapshot

  • CopyOptionGroup

  • RestoreDBClusterFromS3

  • RestoreDBClusterFromSnapshot

  • RestoreDBClusterToPointInTime

  • RestoreDBInstanceFromDBSnapshot

  • RestoreDBInstanceFromS3

  • RestoreDBInstanceToPointInTime

  • PurchaseReservedDBInstancesOffering

如果您使用 Amazon CLI 或 API 创建带有标签的资源,则 Tags 参数用于在创建期间对资源应用标签。

对于这些 API 操作,如果添加标签失败,则不会创建资源,并且请求失败且显示错误。这可确保要么创建带有标签的资源,要么根本不创建资源,从而防止创建不带所需标签的资源。