本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
針對 Amazon ElastiCache 使用身分型政策 (IAM 政策)
這個主題提供以身分為基礎的政策範例,在該政策中帳戶管理員可以將許可政策連接至 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 主控台所需的最低許可相結合時,本節中的範例政策會授予額外的許可。這些範例也與 AWS SDKs和 相關 AWS 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:AWS ServiceName":"elasticache.amazonaws.com"
}
}
}
]
}
範例 5:允許使用者使用 IAM 身分驗證連線到無伺服器快取
下列政策允許任何使用者在 2023-04-01 到 2023-06-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:*"
]
}
]
}