Amazon ElastiCache
用户指南 (API Version 2015-02-02)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

为 Amazon ElastiCache 使用基于身份的策略(IAM 策略)

本主题提供了基于身份的策略的示例,在这些策略中,账户管理员可以向 IAM 身份 (即:用户、组和角色) 挂载权限策略。

重要

我们建议您首先阅读以下介绍性主题,这些主题讲解了管理 Amazon ElastiCache 资源访问的基本概念和选项。有关更多信息,请参阅 管理您的 ElastiCache 资源的访问权限概述

本主题的各个部分涵盖以下内容:

下面介绍权限策略示例。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowClusterPermissions", "Effect": "Allow", "Action": [ "elasticache:CreateCacheCluster", "elasticache:CreateReplicationGroup", "elasticache:DescribeCacheClusters", "elasticache:ModifyCacheCluster", "elasticache:RebootCacheCluster"], "Resource": "*" } ] }

该策略包含两条语句:

  • 第一条语句授予对账户所拥有的任何缓存集群的 Amazon ElastiCache 操作(elasticache:CreateCacheClusterelasticache:DescribeCacheClusterselasticache:ModifyCacheClusterelasticache:RebootCacheCluster)权限。目前,Amazon ElastiCache 不支持资源级的操作权限。因此,该策略指定通配符 (*) 作为 Resource 值。

  • 第二条语句授予对 IAM 角色的 IAM 操作 (iam:PassRole) 权限。Resource 值结尾的通配符 (*) 表示该语句允许对任何 IAM 角色的 iam:PassRole 操作权限。要将此权限限制到特定角色,请使用特定角色名称替换资源 ARN 中的通配符 (*)。

该策略不指定 Principal 元素,因为在基于身份的策略中,您未指定获取权限的委托人。挂载了策略的用户是隐式委托人。向 IAM 角色挂载权限策略后,该角色的信任策略中标识的委托人获取权限。

有关显示所有 Amazon ElastiCache API 操作及其适用的资源的表,请参阅 ElastiCache API 权限:操作、资源和条件参考

使用 Amazon ElastiCache 控制台所需要的权限

权限参考表列出 Amazon ElastiCache API 操作并显示每个操作所需的权限。有关 ElastiCache API 操作的更多信息,请参阅 ElastiCache API 权限:操作、资源和条件参考

要使用 Amazon ElastiCache 控制台,您需要如下权限策略中所示,授予执行其他操作的权限:

{ "Version": "2012-10-17", "Statement": [{ "Sid": "MinPermsForECConsole", "Effect": "Allow", "Action": [ "elasticache:Describe*", "elasticache:List*", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:DescribeAccountAttributes", "ec2:DescribeSecurityGroups", "cloudwatch:GetMetricStatistics", "cloudwatch:DescribeAlarms", "s3:ListAllMyBuckets", "sns:ListTopics", "sns:ListSubscriptions" ], "Resource": "*" } ] }

ElastiCache 控制台出于以下原因需要上述其他权限:

  • ElastiCache 操作权限使控制台可以显示账户中的 ElastiCache 资源。

  • 控制台需要 ec2 操作权限来查询 Amazon EC2,以便可以显示可用区、VPC、安全组及账户属性。

  • cloudwatch 操作权限使控制台可以检索 Amazon CloudWatch 指标和警报并在控制台中显示它们。

  • sns 操作权限使控制台可以检索 Amazon Simple Notification Service (Amazon SNS) 主题和订阅并在控制台中显示它们。

适用于 Amazon ElastiCache 的 AWS 托管(预定义)策略

AWS 通过提供由 AWS 创建和管理的独立 IAM 策略来解决许多常用案例。托管策略可授予常用案例的必要权限,因此,您可以免去调查都需要哪些权限的工作。有关更多信息,请参阅 IAM 用户指南 中的 AWS 托管策略

以下 AWS 托管策略(您可以将它们挂载到自己账户中的用户)是特定于 ElastiCache 的:

  • AmazonElastiCacheReadOnlyAccess - 授予对 Amazon ElastiCache 资源的只读访问权限。

  • AmazonElastiCacheFullAccess - 授予对 Amazon ElastiCache 资源的完全访问权限。

注意

您可以通过登录到 IAM 控制台并在该控制台中搜索特定策略来查看这些权限策略。

您还可以创建自己的自定义 IAM 策略,以授予执行 Amazon ElastiCache API 操作的相关权限。您可以将这些自定义策略挂载到需要这些权限的 IAM 用户或组。

客户托管策略示例

本节中的示例策略与使用 Amazon ElastiCache 控制台所需的最低权限相结合时,将授予其他权限。这些示例还与 AWS SDK 和 AWS CLI 相关。有关使用 ElastiCache 控制台所需的权限的更多信息,请参阅使用 Amazon ElastiCache 控制台所需要的权限

有关设置 IAM 用户和组的说明,请参阅 IAM 用户指南 中的创建您的第一个 IAM 用户和管理员组

重要

在生产中使用 IAM 策略之前,始终全面测试这些策略。当您使用 ElastiCache 控制台时,一些看起来简单的 ElastiCache 操作可能需要其他操作来支持它们。例如,elasticache:CreateCacheCluster 授予创建 ElastiCache 缓存集群的权限。但是,为执行此操作,ElastiCache 控制台使用一些 DescribeList 操作来填充控制台列表。另外,如果您的用户需要创建启用了复制的 Redis 缓存集群,您需要向这些用户授予执行 elasticache:CreateReplicationGroup 操作的权限。

示例 1:允许用户创建和管理安全组

以下策略授予执行安全组的特定 ElastiCache 操作的权限。通常,您将此类型的权限策略挂载到系统管理员组。

{ "Version": "2012-10-17", "Statement":[{ "Sid": "SecGrpAllows", "Effect":"Allow", "Action":[ "elasticache:CreateCacheSecurityGroup", "elasticache:DeleteCacheSecurityGroup", "elasticache:DescribeCacheSecurityGroup", "elasticache:AuthorizeCacheSecurityGroupIngress", "elasticache:RevokeCacheSecurityGroupIngress"], "Resource":"*" } ] }

示例 2:允许用户对 ElastiCache 资源进行只读访问

以下策略授予允许用户列出资源 ElastiCache 操作权限。通常,您将此类型的权限策略挂载到管理人员组。

{ "Version": "2012-10-17", "Statement":[{ "Sid": "ECUnrestricted", "Effect":"Allow", "Action": [ "elasticache:Describe*", "elasticache:List*"], "Resource":"*" } ] }

示例 3:允许用户执行常见的 ElastiCache 系统管理员任务

常见的系统管理员任务包括:修改缓存集群、参数和参数组。系统管理员还可能需要获得有关 ElastiCache 事件的信息。以下策略授予执行这些常见系统管理员任务的 ElastiCache 操作的用户权限。通常,您将此类型的权限策略挂载到系统管理员组。

{ "Version": "2012-10-17", "Statement":[{ "Sid": "ECAllowSpecific", "Effect":"Allow", "Action":[ "elasticache:ModifyCacheCluster", "elasticache:RebootCacheCluster", "elasticache:DescribeCacheClusters", "elasticache:DescribeEvents", "elasticache:ModifyCacheParameterGroup", "elasticache:DescribeCacheParameterGroups", "elasticache:DescribeCacheParameters", "elasticache:ResetCacheParameterGroup", "elasticache:DescribeEngineDefaultParameters"], "Resource":"*" } ] }

示例 4:允许用户访问所有 ElastiCache API 操作

以下策略允许用户访问所有 ElastiCache 操作。建议您仅向管理员用户授予此类型的权限策略。

{ "Version": "2012-10-17", "Statement":[{ "Sid": "ECAllowSpecific", "Effect":"Allow", "Action":[ "elasticache:*" ], "Resource":"*" } ] }