Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用适用于亚马逊的基于身份的政策(IAM 策略) ElastiCache
本主题提供了基于身份的策略的示例,在这些策略中,账户管理员可以向 IAM 身份(即:用户、组和角色)附加权限策略。
本主题的各个部分涵盖以下内容:
下面展示了使用 Redis OSS 时的权限策略示例。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowClusterPermissions",
"Effect": "Allow",
"Action": [
"elasticache:CreateServerlessCache",
"elasticache:CreateCacheCluster",
"elasticache:DescribeServerlessCaches",
"elasticache:DescribeReplicationGroups",
"elasticache:DescribeCacheClusters",
"elasticache:ModifyServerlessCache",
"elasticache:ModifyReplicationGroup",
"elasticache:ModifyCacheCluster"
],
"Resource": "*"
},
{
"Sid": "AllowUserToPassRole",
"Effect": "Allow",
"Action": [ "iam:PassRole" ],
"Resource": "arn:aws:iam::123456789012:role/EC2-roles-for-cluster"
}
]
}
下面展示了使用 Memcached 时的权限策略示例。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "AllowClusterPermissions",
"Effect": "Allow",
"Action": [
"elasticache:CreateServerlessCache",
"elasticache:CreateCacheCluster",
"elasticache:DescribeServerlessCaches",
"elasticache:DescribeCacheClusters",
"elasticache:ModifyServerlessCache",
"elasticache:ModifyCacheCluster"
],
"Resource": "*"
},
{
"Sid": "AllowUserToPassRole",
"Effect": "Allow",
"Action": [ "iam:PassRole" ],
"Resource": "arn:aws:iam::123456789012:role/EC2-roles-for-cluster"
}
]
}
该策略包含两条语句:
该策略不指定 Principal
元素,因为在基于身份的策略中,您未指定获取权限的委托人。附加了策略的用户是隐式委托人。向 IAM 角色附加权限策略后,该角色的信任策略中标识的主体将获取权限。
有关显示所有 Amazon ElastiCache API 操作及其适用的资源的表格,请参阅ElastiCache API 权限:操作、资源和条件参考。
客户管理型策略示例
如果您未使用默认策略并选择使用自定义托管策略,请确保以下两项之一。您应该有权调用 iam:createServiceLinkedRole
(有关更多信息,请参阅示例 4:允许用户调用 IAM CreateServiceLinkedRole API)。或者你应该已经创建了一个 ElastiCache 服务相关角色。
与使用 Amazon ElastiCache 控制台所需的最低权限相结合,本节中的示例策略将授予额外权限。这些示例也与 Amazon SDKs 和有关 Amazon CLI。
有关设置 IAM 用户和组的说明,请参阅 IAM 用户指南中的创建您的第一个 IAM 用户和管理员组。
在生产中使用 IAM 策略之前,请始终全面测试这些策略。在您使用 ElastiCache 控制台时,某些 ElastiCache 看似简单的操作可能需要其他操作来支持它们。例如,elasticache:CreateCacheCluster
授予创建 ElastiCache 缓存集群的权限。但是,为了执行此操作, ElastiCache 控制台使用许多Describe
和List
操作来填充控制台列表。
示例 1:允许用户对 ElastiCache 资源进行只读访问
以下策略授予允许用户列出资源的权限 ElastiCache 操作。通常,您将此类型的权限策略挂载到管理人员组。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement":[{
"Sid": "ECReadOnly",
"Effect":"Allow",
"Action": [
"elasticache:Describe*",
"elasticache:List*"],
"Resource":"*"
}
]
}
示例 2:允许用户执行常见的 ElastiCache 系统管理员任务
常见的系统管理员任务包括修改资源。系统管理员还可能需要获得有关 ElastiCache 事件的信息。以下策略向用户授予执行这些常见系统管理员任务的 ElastiCache 操作的权限。通常,您将此类型的权限策略挂载到系统管理员组。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement":[{
"Sid": "ECAllowMutations",
"Effect":"Allow",
"Action":[
"elasticache:Modify*",
"elasticache:Describe*",
"elasticache:ResetCacheParameterGroup"
],
"Resource":"*"
}
]
}
示例 3:允许用户访问所有 ElastiCache API 操作
以下策略允许用户访问所有 ElastiCache 操作。建议您仅向管理员用户授予此类型的权限策略。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement":[{
"Sid": "ECAllowAll",
"Effect":"Allow",
"Action":[
"elasticache:*"
],
"Resource":"*"
}
]
}
示例 4:允许用户调用 IAM CreateServiceLinkedRole API
以下策略允许用户调用 IAM CreateServiceLinkedRole
API。我们建议您向调用变异 ElastiCache 操作的用户授予此类权限策略。
- JSON
-
-
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"CreateSLRAllows",
"Effect":"Allow",
"Action":[
"iam:CreateServiceLinkedRole"
],
"Resource":"*",
"Condition":{
"StringLike":{
"iam:Amazon ServiceName":"elasticache.amazonaws.com"
}
}
}
]
}
示例 5:允许用户使用 IAM 身份验证连接到无服务器缓存
以下策略允许任何用户在 2023 年 4 月 1 日到 2023 年 6 月 30 日之间,使用 IAM 身份验证连接到任何无服务器缓存。
- JSON
-
-
{
"Version" : "2012-10-17",
"Statement" :
[
{
"Effect" : "Allow",
"Action" : ["elasticache:Connect"],
"Resource" : [
"arn:aws:elasticache:us-east-1:123456789012:serverlesscache:*"
],
"Condition": {
"DateGreaterThan": {"aws:CurrentTime": "2023-04-01T00:00:00Z"},
"DateLessThan": {"aws:CurrentTime": "2023-06-30T23:59:59Z"}
}
},
{
"Effect" : "Allow",
"Action" : ["elasticache:Connect"],
"Resource" : [
"arn:aws:elasticache:us-east-1:123456789012:user:*"
]
}
]
}