

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

# 管理 MemoryDB 资源的访问权限的概述
<a name="iam.overview"></a>

每个 Amazon 资源都归一个 Amazon 账户所有，创建或访问资源的权限受权限策略的约束。账户管理员可以向 IAM 身份（即：用户、组和角色）附加权限策略。此外，MemoryDB 还支持向资源附加权限策略。

**注意**  
*账户管理员*（或管理员用户）是具有管理员权限的用户。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM 最佳实操](https://docs.amazonaws.cn/IAM/latest/UserGuide/best-practices.html)。

要提供访问权限，请为您的用户、组或角色添加权限：
+ 通过身份提供者在 IAM 中托管的用户：

  创建适用于身份联合验证的角色。按照《IAM 用户指南》**中[针对第三方身份提供者创建角色（联合身份验证）](https://docs.amazonaws.cn//IAM/latest/UserGuide/id_roles_create_for-idp.html)的说明进行操作。
+ IAM 用户：
  + 创建您的用户可以担任的角色。按照《IAM 用户指南》**中[为 IAM 用户创建角色](https://docs.amazonaws.cn//IAM/latest/UserGuide/id_roles_create_for-user.html)的说明进行操作。
  + （不推荐使用）将策略直接附加到用户或将用户添加到用户组。按照《IAM 用户指南》**中[向用户添加权限（控制台）](https://docs.amazonaws.cn//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)中的说明进行操作。

**Topics**
+ [MemoryDB 资源和操作](#iam.overview.resourcesandoperations)
+ [了解资源所有权](#access-control-resource-ownership)
+ [管理对 资源的访问](#iam.overview.managingaccess)
+ [为 MemoryDB 使用基于身份的策略（IAM 策略）](iam.identitybasedpolicies.md)
+ [资源级权限](iam.resourcelevelpermissions.md)
+ [使用 MemoryDB 的服务相关角色](using-service-linked-roles.md)
+ [Amazon MemoryDB 的托管策略](security-iam-awsmanpol.md)
+ [MemoryDB API 权限：操作、资源和条件参考](iam.APIReference.md)

## MemoryDB 资源和操作
<a name="iam.overview.resourcesandoperations"></a>

在 MemoryDB 中，主要资源是*集群*。

这些资源具有与之关联的唯一 Amazon 资源名称 (ARNs)，如下所示。

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


****  

| 资源类型 | ARN 格式 | 
| --- | --- | 
| 用户  | arn: aws: memorydb:: user/user1 {{us-east-1:123456789012}} | 
| 访问控制列表（ACL）  | arn: aws: memorydb:: acl/myacl {{us-east-1:123456789012}} | 
| Cluster  | arn: aws: memorydb:: cluster/my-cluster {{us-east-1:123456789012}} | 
| 快照  | arn: aws: memorydb:: snapshot/my-snashot {{us-east-1:123456789012}} | 
| 参数组  | arn: aws: memorydb:: parametergroup/ {{us-east-1:123456789012}} my-parameter-group | 
| 子网组  | arn: aws: memorydb:: subnetgroup/ {{us-east-1:123456789012}} my-subnet-group | 

MemoryDB 提供一组操作用来处理 MemoryDB 资源。有关可用操作的列表，请参阅 MemoryDB [操作](https://docs.amazonaws.cn/memorydb/latest/APIReference/API_Operations.html)。

## 了解资源所有权
<a name="access-control-resource-ownership"></a>

*资源所有者*是创建资源的 Amazon 账户。也就是说，资源所有者是对创建资源的请求进行身份验证的委托人实体的 Amazon 账户。*委托人实体*可以是根账户、IAM 用户或 IAM 角色。以下示例说明了它的工作原理：
+ 假设您使用账户的根 Amazon 账户凭证创建集群。在这种情况下，您的 Amazon 账户就是资源的所有者。在 MemoryDB 中，该资源为集群。
+ 假设您在 Amazon 账户中创建了一个 IAM 用户，并向该用户授予创建集群的权限。在这种情况下，用户可以创建集群。但是，该用户所属的您的 Amazon 账户拥有群集资源。
+ 假设您在 Amazon 账户中创建了一个拥有创建集群权限的 IAM 角色。在这种情况下，任何可以代入该角色的人都可以创建集群。该角色所属的您的 Amazon 账户拥有群集资源。

## 管理对 资源的访问
<a name="iam.overview.managingaccess"></a>

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

**注意**  
本节讨论如何在 MemoryDB 范围内使用 IAM。这里不提供有关 IAM 服务的详细信息。有关完整的 IAM 文档，请参阅《IAM 用户指南》中的[什么是 IAM？](https://docs.amazonaws.cn/IAM/latest/UserGuide/introduction.html)。有关 IAM 策略语法和说明的信息，请参阅《IAM 用户指南》中的 [Amazon IAM 策略参考](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies.html)。

附加到 IAM 身份的策略称为*基于身份*的策略（IAM 策略）。附加到资源的策略称为*基于资源的策略*。

**Topics**
+ [基于身份的策略（IAM 策略）](#iam.overview.managingaccess.identitybasedpolicies)
+ [指定策略元素：操作、效果、资源和主体](#iam.overview.policyelements)
+ [在策略中指定条件](#iam.specifyconditions)

### 基于身份的策略（IAM 策略）
<a name="iam.overview.managingaccess.identitybasedpolicies"></a>

您可以向 IAM 身份附加策略。例如，您可以执行以下操作：
+ **向您账户中的用户或组附加权限策略** – 账户管理员可以使用与特定用户关联的权限策略来授予权限。在这种情况下，权限可供该用户创建 MemoryDB 资源，例如集群、参数组或安全组。
+ **向角色附加权限策略（授予跨账户权限）**：您可以向 IAM 角色附加基于身份的权限策略，以授予跨账户的权限。例如，账户 A 中的管理员可以创建一个角色来向另一个 Amazon 账户（例如账户 B）或 Amazon 服务授予跨账户权限，如下所示：

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

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

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

  有关使用 IAM 委托权限的更多信息，请参阅《IAM 用户指南》**中的[访问权限管理](https://docs.amazonaws.cn/IAM/latest/UserGuide/access.html)。

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

有关对 MemoryDB 使用基于身份的策略的更多信息，请参阅 [为 MemoryDB 使用基于身份的策略（IAM 策略）](iam.identitybasedpolicies.md)。有关用户、组、角色和权限的更多信息，请参阅 *IAM 用户指南*中的[身份（用户、组和角色）](https://docs.amazonaws.cn/IAM/latest/UserGuide/id.html)。

### 指定策略元素：操作、效果、资源和主体
<a name="iam.overview.policyelements"></a>

对于每个 MemoryDB 资源（请参阅 [MemoryDB 资源和操作](#iam.overview.resourcesandoperations)），该服务都定义了一组 API 操作（请参阅[操作](https://docs.amazonaws.cn/memorydb/latest/APIReference/API_Operations.html)）。为授予这些 API 操作的权限，MemoryDB 定义了一组您可以在策略中指定的操作。例如，对于 MemoryDB 集群资源，定义了以下操作：`CreateCluster`、`DeleteCluster` 和 `DescribeClusters`。执行一个 API 操作可能需要多个操作的权限。

以下是最基本的策略元素：
+ **资源**：在策略中，您可以使用 Amazon Resource Name（ARN）标识策略应用到的资源。有关更多信息，请参阅 [MemoryDB 资源和操作](#iam.overview.resourcesandoperations)。
+ **操作** – 您可以使用操作关键字标识要允许或拒绝的资源操作。例如，根据指定的 `Effect`，`memorydb:CreateCluster` 权限允许或拒绝执行 MemoryDB `CreateCluster` 操作的用户权限。
+ **效果**：您可以指定当用户请求特定操作（可以是允许或拒绝）时的效果。如果没有显式授予（允许）对资源的访问权限，则隐式拒绝访问。您也可显式拒绝对资源的访问。例如，您可以执行此操作，以确保用户无法访问资源，即使有其他策略授予了访问权限也是如此。
+ **主体**：在基于身份的策略（IAM 策略）中，附加了策略的用户是隐式主体。对于基于资源的策略，您可以指定要接收权限的用户、账户、服务或其他实体（仅适用于基于资源的策略）。

有关 IAM 策略语法和描述的更多信息，请参阅《IAM 用户指南》**中的 [Amazon IAM 策略参考](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies.html)。

有关显示所有 MemoryDB API 操作的表，请参阅 [MemoryDB API 权限：操作、资源和条件参考](iam.APIReference.md)。

### 在策略中指定条件
<a name="iam.specifyconditions"></a>

当您授予权限时，可使用 IAM 策略语言来指定规定策略何时生效的条件。例如，您可能希望策略仅在特定日期后应用。有关使用策略语言指定条件的更多信息，请参阅《IAM 用户指南》**中的[条件](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_elements.html#Condition)。

