本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为亚马逊 DocumentDB 使用基于身份的IAM策略(策略)
重要
对于某些管理功能,Amazon DocumentDB 使用与亚马逊共享的操作技术。RDS亚马逊 DocumentDB 控制台 Amazon CLI,API通话记录为对亚马逊的呼叫。RDS API
我们建议您首先回顾以下介绍性主题,这些主题讲解了您可用于管理 Amazon DocumentDB 资源访问的基本概念和选项。有关更多信息,请参阅 管理对 Amazon DocumentDB 资源的访问权限。
本主题提供了基于身份的策略的示例,在这些策略中,账户管理员可以向 IAM 身份(即:用户、组和角色)挂载权限策略。
以下是 IAM 策略的示例。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateDBInstanceOnly", "Effect": "Allow", "Action": [ "rds:CreateDBInstance" ], "Resource": [ "arn:aws:rds:*:123456789012:db:test*", "arn:aws:rds:*:123456789012:pg:cluster-pg:default*", "arn:aws:rds:*:123456789012:subgrp:default" ] } ] }
此策略包含一个为 IAM 用户指定以下权限的语句:
-
该策略允许IAM用户使用 C reateDBInstance 操作创建实例(这也适用于create-db-instance Amazon CLI 操作和 Amazon Web Services Management Console)。
-
Resource
元素指定用户可以执行操作的资源。您可以使用 Amazon 资源名称 (ARN) 来指定资源。这ARN包括资源所属服务的名称 (rds
)、 Amazon Web Services 区域 (*
表示本示例中的任何区域)、用户账号(在本示例中123456789012
为用户 ID)和资源类型。该示例中的
Resource
元素为用户指定有关资源的以下策略限制:-
新实例的实例标识符必须以
test
开头(例如,testCustomerData1
、test-region2-data
)。 -
新实例的集群参数组必须以
default
开头。 -
新实例的子网组必须是
default
子网组。
-
该策略不指定 Principal
元素,因为在基于身份的策略中,您未指定获取权限的委托人。附加了策略的用户是隐式委托人。向 IAM 角色挂载权限策略后,该角色的信任策略中标识的委托人获取权限。
有关显示所有 Amazon DocumentDB API 操作及其适用的资源的表,请参阅。Amazon DocumentDB API 权限:操作、资源和条件参考
使用 Amazon DocumentDB 控制台所要求的权限
对于要使用 Amazon DocumentDB 控制台的用户,该用户必须拥有一组最小权限。这些权限允许用户描述他们的 Amazon DocumentDB 资源 Amazon Web Services 账户 并提供其他相关信息,包括亚马逊EC2安全和网络信息。
如果创建比必需的最低权限更为严格的 IAM 策略,对于附加该 IAM 策略的用户,控制台将无法按预期正常运行。要确保这些用户仍可使用 Amazon DocumentDB 控制台,也可向用户附加 AmazonDocDBConsoleFullAccess
托管策略,如 Amazon 亚马逊 DocumentDB 的托管政策 中所述。
对于仅调用 Amazon CLI 或 Amazon Documen API tDB 的用户,您无需为其设置最低控制台权限。
客户管理型策略示例
本节的用户策略示例介绍如何授予各 Amazon DocumentDB 操作的权限。这些策略在您使用 Amazon DocumentDB API 操作时起作用 Amazon SDKs,或者。 Amazon CLI当您使用控制台时,您需要授予特定于控制台的其他权限,使用 Amazon DocumentDB 控制台所要求的权限 中对此进行了讨论。
对于某些管理功能,Amazon DocumentDB 使用与亚马逊关系数据库服务(亚马逊RDS)和亚马逊 Neptune 共享的操作技术。
注意
所有示例都使用美国东部(弗吉尼亚北部)区域 (us-east-1
),并包含虚构账户。IDs
示例 1:允许用户对任何 Amazon DocumentDB 资源执行任何描述操作
以下权限策略对用户授予权限以运行以 Describe
开头的所有操作。这些操作显示有关 Amazon DocumentDB 资源(如实例)的信息。 Resource
组件中的通配符 (*) 表示对该账户拥有的所有 Amazon DocumentDB 资源允许这些操作。
{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowRDSDescribe", "Effect":"Allow", "Action":"rds:Describe*", "Resource":"*" } ] }
示例 2:防止用户删除实例
以下权限策略授予权限以防止用户删除特定实例。例如,您可能想禁止任何非管理员用户删除您的生产实例。
{ "Version":"2012-10-17", "Statement":[ { "Sid":"DenyDelete1", "Effect":"Deny", "Action":"rds:DeleteDBInstance", "Resource":"arn:aws:rds:us-east-1:123456789012:db:my-db-instance" } ] }
示例 3:除非启用存储加密,否则阻止用户创建集群
除非启用存储加密,否则以下权限策略拒绝用户创建 Amazon DocumentDB 集群的权限。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PreventUnencryptedDocumentDB", "Effect": "Deny", "Action": "RDS:CreateDBCluster", "Condition": { "Bool": { "rds:StorageEncrypted": "false" }, "StringEquals": { "rds:DatabaseEngine": "docdb" } }, "Resource": "*" } ] }