管理您的 MemoryDB 资源的访问权限概览 - Amazon MemoryDB for Redis
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

管理您的 MemoryDB 资源的访问权限概览

每个 Amazon 资源都归某个 Amazon 账户所有,创建和访问资源的权限由权限策略进行管理。账户管理员可以向 IAM 身份(即:用户、组和角色)附加权限策略。此外,适用于 Redis 的 MemoryDB 还支持向资源附加权限策略。

注意

账户管理员(或管理员用户)是具有管理员权限的用户。有关更多信息,请参阅 IAM 用户指南中的 IAM 最佳实践

在授予权限时,您可以决定谁获得权限。您还可以决定他们获得对哪些资源的权限以及允许对这些资源执行的具体操作。

Redis 资源和操作的 MemoryDB

在 Redis 的 MemoryDB 中,主要资源是聚集.

这些资源具有关联的唯一 Amazon 资源名称 (ARN),如下表所示。

注意

为了使资源级权限生效,ARN 字符串上的资源名称应该为小写。

资源类型 ARN 格式

用户

arn: aws: memorydb:us-east-1、:user/user1

访问控制列表 (ACL)

arn: aws: memorydb:us-east-1、:acl/myacl

Cluster

arn: aws: memorydb:us-east-1、:cluster/my-cluster

快照

arn: aws: memorydb:us-east-1、:快照/我的快照

参数组

arn: aws: memorydb:us-east-1、:parametergroup/my-parameter-group

子网组

arn: aws: memorydb:us-east-1、:子网组/my-subnet-group

MemoryDB 提供一组操作用来处理 MemoryDB 资源。有关可用操作的列表,请参阅 Redis 的 MemoryDB操作.

了解资源所有权

资源所有者是创建资源的 Amazon 账户。也就是说,资源拥有者是委托人实体的 Amazon 账户,可对创建相应资源的请求进行身份验证。一个主要实体可以是根账户、IAM 用户或 IAM 角色。以下示例说明了它的工作原理:

  • 假设您使用的 root 账户凭证Amazon用于创建集群的帐户。在这种情况下,您的 Amazon 账户是资源的拥有者。在 MemoryDB 中,该资源为集群。

  • 假设您在自己的中创建了一个 IAM 用户Amazon帐户并向该用户授予创建集群的权限。在这种情况下,用户可以创建集群。但是,您的Amazon该用户所属的账户拥有该集群资源。

  • 假设您在中创建 IAM 角色Amazon一个有权创建集群的账户。在这种情况下,能够担任该角色的任何人都可以创建集群。你的Amazon该角色所属的账户拥有该集群资源。

管理对资源的访问

权限策略规定谁可以访问哪些内容。下一节介绍创建权限策略时的可用选项。

注意

本节讨论如何在 Redis 的 MemoryDB 范围内使用 IAM。这里不提供有关 IAM 服务的详细信息。有关完整的 IAM 文档,请参阅 IAM 用户指南中的什么是 IAM?。有关 IAM policy 语法和说明的信息,请参阅 IAM 用户指南中的 Amazon IAM 策略参考

附加到 IAM 身份的策略称为基于身份的策略(IAM policy)。附加到资源的策略称为基于资源的策略

基于身份的策略(IAM policy)

您可以向 IAM 身份附加策略。例如,您可以执行以下操作:

  • 向您账户中的用户或组附加权限策略 – 账户管理员可以使用与特定用户关联的权限策略来授予权限。在这种情况下,权限可供该用户创建 MemoryDB 资源,例如集群、参数组或安全组。

  • 向角色附加权限策略(授予跨账户权限) – 您可以向 IAM 角色附加基于身份的权限策略,以授予跨账户的权限。例如,账户 A 中的管理员可以创建一个角色,以向其他Amazon账户(如账户 B)或某项Amazon服务授予跨账户权限,如下所述:

    1. 账户 A 管理员可以创建一个 IAM 角色,然后向该角色附加授予其访问账户 A 中资源的权限策略。

    2. 账户 A 管理员可以把信任策略附加至用来标识账户 B 的角色,账户 B 由此可以作为主体代入该角色。

    3. 之后,账户 B 管理员可以向账户 B 中的任何用户委派担任该角色的权限。这样,账户 B 中的用户可以创建或访问账户 A 中的资源。在一些情况下,您可能需要向 Amazon 服务授予担任该角色的权限。为支持此方法,信任策略中的委托人也可以是 Amazon 服务委托人。

    有关使用 IAM 委托权限的更多信息,请参阅 IAM 用户指南中的访问权限管理

以下是允许用户对您的 Amazon 账户执行 DescribeClusters 操作的示例策略。MemoryDB 还支持使用 API 操作的资源 ARN 来标识特定资源。(此方法也称为资源级权限。)

{ "Version": "2012-10-17", "Statement": [{ "Sid": "DescribeClusters", "Effect": "Allow", "Action": [ "memorydb:DescribeClusters"], "Resource": resource-arn } ] }

有关对 MemoryDB 使用基于身份的策略的更多信息,请参阅为适用于 Redis 的 MemoryDB 使用基于身份的策略(IAM 策略). 有关用户、组、角色和权限的更多信息,请参阅 IAM 用户指南中的身份(用户、组和角色)

指定策略元素:操作、效果、资源和主体

对于 Redis 资源的每个 MemoryDB 资源(请参阅Redis 资源和操作的 MemoryDB),该服务定义了一组 API 操作(请参阅操作)。为授予执行这些 API 操作的权限,MemoryDB 定义了一组您可以在策略中指定的操作。例如,对于 MemoryDB 集群资源,定义了以下操作:CreateCluster,DeleteCluster,以及DescribeClusters. 执行一个 API 操作可能需要多个操作的权限。

以下是最基本的策略元素:

  • Resource(资源)- 在策略中,您可以使用 Amazon Resource Name (ARN) 标识策略应用到的资源。有关更多信息,请参阅 Redis 资源和操作的 MemoryDB

  • 操作 – 您可以使用操作关键字标识要允许或拒绝的资源操作。例如,取决于指定的Effectmemorydb:CreateCluster权限允许或拒绝执行适用于 Redis 的 MemoryeDB 的用户权限CreateCluster操作。

  • Effect(效果)— 您可以指定当用户请求特定操作(可以是允许或拒绝)时的效果。如果没有显式授予(允许)对资源的访问权限,则隐式拒绝访问。您也可显式拒绝对资源的访问。例如,您可以执行此操作,以确保用户无法访问资源,即使有其他策略授予了访问权限也是如此。

  • 主体 – 在基于身份的策略(IAM policy)中,附加了策略的用户是隐式主体。对于基于资源的策略,您可以指定要接收权限的用户、账户、服务或其他实体(仅适用于基于资源的策略)。

有关 IAM policy 语法和描述的更多信息,请参阅 IAM 用户指南中的Amazon IAM policy 参考

有关显示所有 Redis API 操作的 MemoryDB 的表,请参阅MemoryDB API 权限:操作、资源和条件参考.

在策略中指定条件

当您授予权限时,可使用 IAM policy 语言来指定规定策略何时生效的条件。例如,您可能希望策略仅在特定日期后应用。有关使用策略语言指定条件的更多信息,请参阅 IAM 用户指南中的条件