

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

# 基于角色的访问控制（RBAC）
<a name="Clusters.RBAC"></a>

使用 [使用 Valkey 和 Redis OSS AUTH 命令进行身份验证](auth.md) 中描述的 Valkey 和 Redis OSS AUTH 命令，您可以使用基于角色的访问控制（RBAC）。此外，只能通过 RBAC 控制对无服务器缓存的访问。这适用于 Valkey 7.2 及更高版本和 Redis OSS 6.0 至 7.2。

RBAC 使您能够：
+ 通过用户组控制缓存访问。这些用户组旨在作为一种管理对缓存的访问权限的方式。
+ 使用 *authN*，为每个用户设置密码，而非为每个集群设置身份验证令牌。
+ 使用 *authZ*，拥有精细的用户权限。
+ 以您的集群访问权限为基础 ACLs。

与 Valkey 和 Redis OSS AUTH（如果对客户端令牌进行身份验证，则所有经过身份验证的客户端都对缓存具有完全的访问权限）不同的是，RBAC 使您能够根据用户所需的角色将用户分配到不同的集合中。这些集合旨在作为一种管理对缓存的访问权限的方式。

通过 RBAC，您可以使用访问字符串创建用户并为其分配特定权限，如下所述。您可以将用户分配到与特定角色（管理员、人力资源）一致的集合，然后将其部署到一个或多个 ElastiCache 缓存中。这样，您就可以在使用相同 Valkey 或 Redis OSS 缓存的客户端之间建立安全边界，并阻止客户端彼此访问数据。

RBAC 设计用于支持在 Redis OSS 6 中引入的 [ACL](https://valkey.io/topics/acl/)。当你将 RBAC 与 ElastiCache Valkey 或 Redis OSS 缓存一起使用时，会有一些限制：
+ 为“VALKEY”引擎配置的用户组只能包含使用身份验证机制（密码或 IAM）的用户。这意味着所有使用“VALKEY”引擎的用户，以及任何其他使用“REDIS”引擎且设置配置为使用密码或 IAM 进行身份验证的用户，都可以属于此用户组。
+ 在 Valkey 集群中使用 RBAC 时，使用“VALKEY”引擎和“REDIS”引擎的用户组均可使用。
+ 在 Redis OSS 集群中使用 RBAC 时，只有使用“REDIS”引擎的用户组才能使用。
+ 不能在访问字符串中指定密码。您可以通过[CreateUser](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateUser.html)或[ModifyUser](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyUser.html)呼叫来设置密码。
+ 对于用户权利，您可以启用或禁用用户，将 `on` 和 `off` 作为访问字符串的一部分。如果两者在访问字符串中均未指定，则将为用户分配 `off` 并且用户没有访问缓存的权限。
+ 您不能将 forbidden 和 renamed 命令作为访问字符串的一部分。如果您指定了已禁止的命令或重命名命令，则会引发异常。如果要对重命名的命令使用访问控制列表 (ACLs)，请指定该命令的原始名称，换言之，在重命名命令之前的名称。
+ 您不能将 `reset` 命令作为访问字符串的一部分。你可以使用 API 参数指定密码， ElastiCache 对于 Valkey 和 Redis，OSS 管理密码。因此，您不能使用 `reset`，因为此命令会移除用户的所有密码。
+ Redis OSS 6 引入了 [ACL LIST](https://valkey.io/commands/acl-list) 命令。此命令返回用户列表以及应用于每个用户的 ACL 规则。 ElastiCache 支持该`ACL LIST`命令，但不像 Redis OSS 那样支持密码哈希。使用 ElastiCache，您可以使用该[DescribeUsers](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeUsers.html)操作来获取类似的信息，包括访问字符串中包含的规则。但是，[DescribeUsers](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeUsers.html)无法检索用户密码。
+ [Valkey 和 Redis OSS 支持的其他只读命令包括 [ACL WHOAMI、ACL](https://valkey.io/commands/acl-whoami) USERS 和 [ACL C](https://valkey.io/commands/acl-users) AT。 ElastiCache ](https://valkey.io/commands/acl-cat) ElastiCache 适用于 Valkey 和 Redis 的 OSS 不支持任何其他基于写入的 ACL 命令。
+ 以下限制适用：    
<a name="quotas-table"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/Clusters.RBAC.html)

**RBAC 与 Valkey**

在 Valkey 中使用基于角色的访问控制时，用户和用户组是使用“VALKEY”引擎类型创建的。建议这样做，因为默认情况下，与 Redis OSS 相比，结合使用 Valkey 与 RBAC 提供了更高的安全性。预调配和无服务器 Valkey 集群都支持 VALKEY 用户和用户组关联。

Valkey 访问控制的主要功能包括：
+ Valkey 用户仅限于 Valkey 用户组关联。
+ Valkey 用户组可以包含 Valkey 用户以及受密码保护或启用了 IAM 身份验证的 Redis OSS 用户。
+ Valkey 用户必须使用密码保护或 IAM 身份验证。
+ VALKEY 用户组只能关联到 VALKEY 集群
+ 没有默认用户要求。当 Valkey 用户组连接到集群时，默认用户要求会自动禁用。客户在使用 ACL LIST 命令时会看到默认用户已关闭。

以下是有关将 RBAC 与 Valkey 和 Redis OSS 搭配使用的 ElastiCache 更多信息。

**Topics**
+ [使用访问字符串指定权限](#Access-string)
+ [将 RBAC 应用于 Valkey 或 Redis OSS ElastiCache 的缓存](#rbac-using)
+ [从 AUTH 迁移到 RBAC](#Migrate-From-RBAC-to-Auth)
+ [从 RBAC 迁移到 AUTH](#Migrate-From-RBAC-to-AUTH-1)
+ [为用户自动轮换密码](User-Secrets-Manager.md)
+ [使用 IAM 进行身份验证](auth-iam.md)

## 使用访问字符串指定权限
<a name="Access-string"></a>

要指定对 ElastiCache Valkey 或 Redis OSS 缓存的权限，您需要创建一个访问字符串并通过或将其分配给用户。AWS CLIAWS 管理控制台

根据定义，访问字符串是指应用于用户的、以空格分隔的规则列表。它们定义了用户可以执行的命令以及用户可以对其进行操作的密钥。要执行命令，用户必须有权访问正在执行的命令以及命令访问的所有密钥。规则从左到右累积应用，如果提供的字符串中存在冗余，则可以使用更简单的字符串代替提供的字符串。

有关 ACL 规则的语法的信息，请参阅 [ACL](https://valkey.io/topics/acl/)。

在以下示例中，访问字符串表示具有所有可用密钥和命令访问权限的活动用户。

 `on ~* +@all`

访问字符串语法分解如下：
+ `on` – 用户是活动用户。
+ `~*` – 具有对所有可用密钥的访问权限。
+ `+@all` – 具有对所有可用命令的访问权限。

上述设置的限制性最小。您可以修改这些设置以使其更加安全。

在以下示例中，访问字符串表示一个用户，其访问权限限于对以“app::”键空间开头的键进行读取访问

`on ~app::* -@all +@read`

您可以通过列出用户有权访问的命令来进一步优化这些权限：

`+command1` – 用户对命令的访问被限制为 *`command1`*。

 `+@category` – 用户的访问被限制为某个类别的命令。

有关向用户分配访问字符串的信息，请参阅 [使用控制台和 CLI 创建用户和用户组](#Users-management)。

如果要将现有工作负载迁移到 ElastiCache，则可以通过调用来检索访问字符串`ACL LIST`，但不包括用户和任何密码哈希。

对于 Redis OSS 版本 6.2 及更高版本，还支持以下访问字符串语法：
+ `&*` – 具有对所有可用频道的访问权限。

对于 Redis OSS 版本 7.0 及更高版本，还支持以下访问字符串语法：
+ `|` - 可用于屏蔽子命令（例如 “-config\$1set”）。
+ `%R~<pattern>` - 添加指定的读取密钥模式。此行为与常规密钥模式类似，但仅授予读取与给定模式匹配的密钥的权限。有关更多信息，请参阅[密钥权限](https://valkey.io/topics/acl/)。
+ `%W~<pattern>` - 添加指定的写入密钥模式。此行为与常规密钥模式类似，但仅授予写入与给定模式匹配的密钥的权限。有关更多信息，请参阅 [ ACL 密钥权限](https://valkey.io/topics/acl/)。
+ `%RW~<pattern>` - `~<pattern>` 的别名。
+ `(<rule list>)` - 创建一个新的选择器作为匹配规则的依据。选择器在获得用户权限后进行评估，并根据其定义顺序进行评估。如果命令与用户权限或任何选择器匹配，则允许使用。有关更多信息，请参阅 [ACL selectors](https://valkey.io/topics/acl/)（ACL 选择器）。
+ `clearselectors` - 删除附加到用户的所有选择器。

## 将 RBAC 应用于 Valkey 或 Redis OSS ElastiCache 的缓存
<a name="rbac-using"></a>

要用 ElastiCache 于 Valkey 或 Redis OSS RBAC，请执行以下步骤：

1. 创建一个或多个用户。

1. 创建用户组并将用户添加到该组中。

1. 将用户组分配给已启用了传输中加密的缓存。

下方详细地说明了这些步骤。

**Topics**
+ [使用控制台和 CLI 创建用户和用户组](#Users-management)
+ [使用控制台和 CLI 管理用户组](#User-Groups)
+ [将用户组分配给无服务器缓存](#Users-groups-to-serverless-caches)
+ [将用户组分配给复制组](#Users-groups-to-RGs)

### 使用控制台和 CLI 创建用户和用户组
<a name="Users-management"></a>

RBAC 用户的用户信息为用户 ID、用户名以及可选的密码和访问字符串。访问字符串提供对密钥和命令的权限级别。用户 ID 对于用户是唯一的，用户名则是传递给引擎的内容。

确保您提供的用户权限符合用户组的预期目的。例如，如果您创建一个名为 `Administrators` 的用户组，则添加到该组的任何用户都应将其访问字符串设置为对密钥和命令具有完全访问权限。对于 `e-commerce` 用户组中的用户，您可以将其访问字符串设置为只读访问。

ElastiCache 自动为默认用户配置用户 ID 和用户名`"default"`，并将其添加到所有用户组中。您无法修改或删除该用户。该用户旨在与以前 Redis OSS 版本的默认行为兼容，并具有一个访问字符串，允许它调用所有命令并访问所有密钥。

要向缓存添加适当的访问控制，请将此默认用户替换为未启用的或使用强密码的新用户。要更改默认用户，请创建一个新用户，其用户名设置为 `default`。然后，您可以用其替换原始默认用户。

以下过程演示了如何用另一个具有已修改访问字符串的 `default` 用户替换原始 `default` 用户。

**修改控制台上的默认用户**

1. 登录AWS 管理控制台并打开 Amazon ElastiCache 控制台，网址为[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)。

1. 在导航窗格中，选择**用户组管理**。

1. 对于**用户组 ID**，选择要修改的 ID。确保选择的是链接，而不是复选框。

1. 选择**修改**。

1. 在**修改**窗口中，选择**管理**。对于“选择所需用户”，选择**用户名**为默认值的用户。

1. 选择**选择**。

1. 选择 **Modify**(修改)。执行此操作时，原始默认用户与缓存之间的任何现有连接将被终止。

**使用修改默认用户AWS CLI**

1. 使用以下命令，创建用户名为 `default` 的新用户。

   对于 Linux、macOS 或 Unix：

   ```
   aws elasticache create-user \
    --user-id "new-default-user" \
    --user-name "default" \
    --engine "VALKEY" \
    --passwords "a-str0ng-pa))word" \
    --access-string "off +get ~keys*"
   ```

   对于 Windows：

   ```
   aws elasticache create-user ^
    --user-id "new-default-user" ^
    --user-name "default" ^
    --engine "VALKEY" ^
    --passwords "a-str0ng-pa))word" ^
    --access-string "off +get ~keys*"
   ```

1. 创建用户组并添加先前创建的用户。

   对于 Linux、macOS 或 Unix：

   ```
   aws elasticache create-user-group \
     --user-group-id "new-group-2" \
     --engine "VALKEY" \
     --user-ids "new-default-user"
   ```

   对于 Windows：

   ```
   aws elasticache create-user-group ^
     --user-group-id "new-group-2" ^
     --engine "VALKEY" ^
     --user-ids "new-default-user"
   ```

创建用户时，最多可以设置两个密码。修改密码时，将保持与缓存之间的所有现有连接。

特别是，在 Valkey 和 Redis OSS 上使用 RBAC 时，请注意以下用户密码限制： ElastiCache 
+ 密码必须是 16-128 个可打印字符。
+ 不允许使用以下非字母数字字符：`,` `""` `/` `@`。

#### 使用控制台和 CLI 管理用户
<a name="Users-console"></a>

使用以下过程在控制台上管理用户。

**在控制台上管理用户**

1. 登录AWS 管理控制台并打开 Amazon ElastiCache 控制台，网址为[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)。

1. 在 Amazon ElastiCache 控制面板上，选择**用户管理**。有以下选项可用：
   + **创建用户** – 创建用户时，输入用户 ID、用户名、身份验证模式和访问字符串。访问字符串设置允许用户使用的密钥和命令的权限级别。

     创建用户时，最多可以设置两个密码。修改密码时，将保持与缓存之间的所有现有连接。
   + **修改用户** – 允许您更新用户的身份验证设置或更改其访问字符串。
   + **删除用户** – 将账户从它所属的任何用户组中移除。

按以下过程使用AWS CLI管理用户。

**使用 CLI 修改用户**
+  使用 `modify-user` 命令更新用户密码或者更改用户的访问权限。

  修改用户后，将更新与该用户关联的用户组以及与该用户组关联的任何缓存。将会保持所有现有连接。示例如下。

  对于 Linux、macOS 或 Unix：

  ```
  aws elasticache modify-user \
    --user-id user-id-1 \
    --access-string "~objects:* ~items:* ~public:*" \
    --authentication-mode Type=iam
  ```

  对于 Windows：

  ```
  aws elasticache modify-user ^
    --user-id user-id-1 ^
    --access-string "~objects:* ~items:* ~public:*" ^
    --authentication-mode Type=iam
  ```

**注意**  
建议您不要使用 `nopass` 选项。如果您按此建议操作，我们建议将用户的权限设置为只读，且仅能访问一组有限的密钥。

**使用 CLI 删除用户**
+ 使用 `delete-user` 命令删除用户。此账户将被删除并从其所属的任何用户组中移除。示例如下：

  对于 Linux、macOS 或 Unix：

  ```
  aws elasticache delete-user \
    --user-id user-id-2
  ```

  对于 Windows：

  ```
  aws elasticache delete-user ^
    --user-id user-id-2
  ```

要查看用户列表，请调用 [describe-users](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-users.html) 操作。

```
aws elasticache describe-users
```

### 使用控制台和 CLI 管理用户组
<a name="User-Groups"></a>

您可以创建用户组来组织和控制用户对一个或多个缓存的访问权限，如下所示。

使用控制台通过以下过程管理用户组。

**使用控制台管理用户组**

1. 登录AWS 管理控制台并打开 Amazon ElastiCache 控制台，网址为[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)。

1. 在 Amazon ElastiCache 控制面板上，选择**用户组管理**。

   以下操作可用于创建新用户组：
   + **创建** – 创建用户组时，您可以添加用户，然后将用户组分配给缓存。例如，您可以为在缓存上具有管理角色的用户创建一个 `Admin` 用户组。
**重要**  
如果您未使用 Valkey 或 Redis OSS 用户组，则在创建用户组时必须包含默认用户。
   + **Add Users（添加用户）**– 向用户组添加用户。
   + **Remove Users（移除用户）**– 从用户组中移除用户。当用户从用户组中移除时，他们与缓存之间的任何现有连接都将终止。
   + **Delete（删除）**– 使用此操作删除用户组。请注意，将删除用户组本身，而不是属于该组的用户。

   对于现有用户组，您可执行以下操作：
   + **Add User（添加用户）**– 将现有用户添加到用户组。
   + **Delete Users（删除用户）**– 从用户组中移除现有用户。
**注意**  
用户将从用户组中移除，但不会从系统中删除。

使用 CLI 通过以下过程管理用户组。

**使用 CLI 创建新用户组并添加用户**
+ 使用 `create-user-group` 命令，如下所示：

  对于 Linux、macOS 或 Unix：

  ```
  aws elasticache create-user-group \
    --user-group-id "new-group-1" \
    --engine "VALKEY" \
    --user-ids user-id-1, user-id-2
  ```

  对于 Windows：

  ```
  aws elasticache create-user-group ^
    --user-group-id "new-group-1" ^
    --engine "VALKEY" ^
    --user-ids user-id-1, user-id-2
  ```

**使用 CLI 通过添加新用户或移除当前成员来修改用户组**
+ 使用 `modify-user-group` 命令，如下所示：

  对于 Linux、macOS 或 Unix：

  ```
  aws elasticache modify-user-group --user-group-id new-group-1 \
  --user-ids-to-add user-id-3 \
  --user-ids-to-remove user-id-2
  ```

  对于 Windows：

  ```
  aws elasticache modify-user-group --user-group-id new-group-1 ^
  --user-ids-to-add user-id-3 ^
  --user-ids-to-removere user-id-2
  ```

**注意**  
此命令将结束属于从用户组中移除的用户的任何打开的连接。

**使用 CLI 删除用户组**
+ 使用 `delete-user-group` 命令，如下所示：将删除用户组本身，而不是属于该组的用户。

  对于 Linux、macOS 或 Unix：

  ```
  aws elasticache delete-user-group /
     --user-group-id
  ```

  对于 Windows：

  ```
  aws elasticache delete-user-group ^
     --user-group-id
  ```

要查看用户组列表，可以调用该[describe-user-groups](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-user-groups.html)操作。

```
aws elasticache describe-user-groups \
  --user-group-id test-group
```

### 将用户组分配给无服务器缓存
<a name="Users-groups-to-serverless-caches"></a>

创建用户组并添加用户后，实施 RBAC 的最后步骤是将用户组分配给无服务器缓存。

#### 使用控制台将用户组分配给无服务器缓存
<a name="Users-groups-to-SCs-CON"></a>

要使用向无服务器缓存中添加用户组AWS 管理控制台，请执行以下操作：
+ 对于已禁用集群模式，请参阅 [创建 Valkey（已禁用集群模式）集群（控制台）](SubnetGroups.designing-cluster-pre.valkey.md#Clusters.Create.CON.valkey-gs)
+ 对于已启用集群模式，请参阅 [创建 Valkey 或 Redis OSS（已启用集群模式）集群（控制台）](Clusters.Create.md#Clusters.Create.CON.RedisCluster)

#### 使用将用户组分配给无服务器缓存AWS CLI
<a name="Users-groups-to-SCs-CLI"></a>

 以下AWS CLI操作使用带值`my-user-group-id`的**user-group-id**参数创建无服务器缓存。用已存在的子网组替换子网组 `sng-test`。

**关键参数**
+ **--engine** – 必须为 `VALKEY` 或 `REDIS`。
+ **--user-group-id** – 此值提供用户组的 ID，该用户组由对缓存具有指定访问权限的用户组成。

对于 Linux、macOS 或 Unix：

```
aws elasticache create-serverless-cache \
    --serverless-cache-name "new-serverless-cache" \
    --description "new-serverless-cache" \
    --engine "VALKEY" \
    --user-group-id "new-group-1"
```

对于 Windows：

```
aws elasticache create-serverless-cache ^
    --serverless-cache-name "new-serverless-cache" ^
    --description "new-serverless-cache" ^
    --engine "VALKEY" ^
    --user-group-id "new-group-1"
```

以下AWS CLI操作使用带值的**user-group-id**参数修改无服务器缓存。`my-user-group-id`

对于 Linux、macOS 或 Unix：

```
aws elasticache modify-serverless-cache \
    --serverless-cache-name serverless-cache-1 \
    --user-group-id "new-group-2"
```

对于 Windows：

```
aws elasticache modify-serverless-cache ^
    --serverless-cache-name serverless-cache-1 ^
    --user-group-id "new-group-2"
```

请注意，对缓存所做的任何修改都将异步更新。您可通过查看事件来监控进度。有关更多信息，请参阅 [查看 ElastiCache 事件](ECEvents.Viewing.md)。

### 将用户组分配给复制组
<a name="Users-groups-to-RGs"></a>

创建用户组并添加用户后，实施 RBAC 的最后步骤是将用户组分配给复制组。

#### 使用控制台将用户组分配给复制组
<a name="Users-groups-to-RGs-CON"></a>

要使用向复制中添加用户组AWS 管理控制台，请执行以下操作：
+ 对于已禁用集群模式，请参阅 [创建 Valkey（已禁用集群模式）集群（控制台）](SubnetGroups.designing-cluster-pre.valkey.md#Clusters.Create.CON.valkey-gs)
+ 对于已启用集群模式，请参阅 [创建 Valkey 或 Redis OSS（已启用集群模式）集群（控制台）](Clusters.Create.md#Clusters.Create.CON.RedisCluster)

#### 使用将用户组分配给复制组AWS CLI
<a name="Users-groups-to-RGs-CLI"></a>

 以下AWS CLI操作创建一个启用传输中加密 (TLS) 且**user-group-ids**参数值为的复制组`my-user-group-id`。用已存在的子网组替换子网组 `sng-test`。

**关键参数**
+ **--engine** – 必须为 `valkey` 或 `redis`。
+ **--engine-version** – 必须是 6.0 或更高版本。
+ **--transit-encryption-enabled** – 必需，用于身份验证和关联用户组。
+ **--user-group-ids** – 此值提供用户组的 ID，该用户组由对缓存具有指定访问权限的用户组成。
+ **--cache-subnet-group** – 必需，用于关联用户组。

对于 Linux、macOS 或 Unix：

```
aws elasticache create-replication-group \
    --replication-group-id "new-replication-group" \
    --replication-group-description "new-replication-group" \
    --engine "VALKEY" \
    --cache-node-type cache.m5.large \
    --transit-encryption-enabled \
    --user-group-ids "new-group-1" \
    --cache-subnet-group "cache-subnet-group"
```

对于 Windows：

```
aws elasticache create-replication-group ^
    --replication-group-id "new-replication-group" ^
    --replication-group-description "new-replication-group" ^
    --engine "VALKEY" ^
    --cache-node-type cache.m5.large ^
    --transit-encryption-enabled ^
    --user-group-ids "new-group-1" ^
    --cache-subnet-group "cache-subnet-group"
```

以下AWS CLI操作修改启用了传输中加密 (TLS) 的复制组以及带有值`my-user-group-id`的**user-group-ids**参数。

对于 Linux、macOS 或 Unix：

```
aws elasticache modify-replication-group \
    --replication-group-id replication-group-1 \
    --user-group-ids-to-remove "new-group-1" \
    --user-group-ids-to-add "new-group-2"
```

对于 Windows：

```
aws elasticache modify-replication-group ^
    --replication-group-id replication-group-1 ^
    --user-group-ids-to-remove "new-group-1" ^
    --user-group-ids-to-add "new-group-2"
```

记下响应中的 `PendingChanges`。对缓存所做的任何修改都将异步更新。您可通过查看事件来监控进度。有关更多信息，请参阅 [查看 ElastiCache 事件](ECEvents.Viewing.md)。

## 从 AUTH 迁移到 RBAC
<a name="Migrate-From-RBAC-to-Auth"></a>

如果您正在使用 [使用 Valkey 和 Redis OSS AUTH 命令进行身份验证](auth.md) 中所述的 AUTH，并希望迁移到使用 RBAC，请使用以下过程。

使用控制台通过以下过程从 AUTH 迁移到 RBAC。

**使用控制台从 Valkey 或 Redis OSS AUTH 迁移到 RBAC**

1. 登录AWS 管理控制台并打开 ElastiCache 控制台，网址为[ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)。

1. 从右上角的列表中，选择要修改的缓存所在的AWS区域。

1. 在导航窗格中，选择在要修改的缓存上运行的引擎。

   此时会显示选定引擎的缓存列表。

1. 在缓存列表中，对于要修改的缓存，选择其名称。

1. 对于 **Actions**（操作），选择 **Modify**（修改）。

   此时将显示**修改**窗口。

1. 对于**访问控制**，选择**用户组访问控制列表**。

1.  对于**用户组访问控制列表**，选择一个用户组。

1. 选择**预览更改**，然后在下一个屏幕上选择**修改**。

使用 CLI 通过以下过程从 Valkey 或 Redis OSS AUTH 迁移到 RBAC。

**使用 CLI 从 AUTH 迁移到 RBAC**
+  使用 `modify-replication-group` 命令，如下所示：

  对于 Linux、macOS 或 Unix：

  ```
  aws elasticache modify-replication-group --replication-group-id test \
      --auth-token-update-strategy DELETE \
      --user-group-ids-to-add user-group-1
  ```

  对于 Windows：

  ```
  aws elasticache modify-replication-group --replication-group-id test ^
      --auth-token-update-strategy DELETE ^
      --user-group-ids-to-add user-group-1
  ```

## 从 RBAC 迁移到 AUTH
<a name="Migrate-From-RBAC-to-AUTH-1"></a>

如果您正在使用 RBAC 并希望迁移到 Redis OSS AUTH，请参阅[从 RBAC 迁移到 AUTH](auth.md#Migrate-From-RBAC-to-AUTH)。

**注意**  
如果您需要禁用 ElastiCache 缓存的访问控制，则需要通过AWS CLI。有关更多信息，请参阅 [在 ElastiCache Valkey 或 Redis OSS 缓存上禁用访问控制](in-transit-encryption-disable.md)。