本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
針對 MemoryDB 使用身分型政策 (IAM 政策)
本主題提供身分型政策的範例,其中帳戶管理員可以將許可政策連接至身分 IAM (即使用者、群組和角色)。
重要
建議您先閱讀說明基本概念的主題,以及管理 MemoryDB 資源存取的選項。如需詳細資訊,請參閱管理 MemoryDB 資源存取許可的概觀。
本主題中的各節涵蓋下列內容:
以下顯示許可政策範例。
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowClusterPermissions", "Effect": "Allow", "Action": [ "memorydb:CreateCluster", "memorydb:DescribeClusters", "memorydb:UpdateCluster"], "Resource": "*" }, { "Sid": "AllowUserToPassRole", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::123456789012:role/EC2-roles-for-cluster" } ] }
此政策具有兩個陳述式:
-
第一個陳述式會授予帳戶所擁有之任何叢集的 MemoryDB 動作 (
memorydb:DescribeClusters
、memorydb:CreateCluster
和memorydb:UpdateCluster
) 許可。 -
第二個陳述式會針對
Resource
值結尾所指定的IAM角色名稱授予IAM動作 (iam:PassRole
) 的許可。
此政策不指定 Principal
元素,因為您不會在以身分為基礎的政策中,指定取得許可的主體。當您將政策連接至使用者時,這名使用者即為隱含主體。當您將許可政策連接至IAM角色時,角色的信任政策中識別的主體會取得許可。
如需顯示所有 MemoryDB API動作及其適用的資源的資料表,請參閱 MemoryDB API許可:動作、資源和條件參考。
使用 MemoryDB 主控台所需的許可
許可參考表列出 MemoryDB API操作,並顯示每個操作所需的許可。如需 MemoryDB API操作的詳細資訊,請參閱 MemoryDB API許可:動作、資源和條件參考。
若要使用 MemoryDB 主控台,請先授予其他動作的許可,如下列許可政策所示。
{ "Version": "2012-10-17", "Statement": [{ "Sid": "MinPermsForMemDBConsole", "Effect": "Allow", "Action": [ "memorydb:Describe*", "memorydb:List*", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:DescribeAccountAttributes", "ec2:DescribeSecurityGroups", "cloudwatch:GetMetricStatistics", "cloudwatch:DescribeAlarms", "s3:ListAllMyBuckets", "sns:ListTopics", "sns:ListSubscriptions" ], "Resource": "*" } ] }
MemoryDB 主控台需要這些額外許可,原因如下:
-
MemoryDB 動作的許可可讓主控台在帳戶中顯示 MemoryDB 資源。
-
主控台需要查詢 Amazon
ec2
動作的許可,EC2才能顯示可用區域、VPCs、安全群組和帳戶屬性。 -
cloudwatch
動作的許可可讓主控台擷取 Amazon CloudWatch 指標和警示,並在主控台中顯示它們。 -
sns
動作的許可可讓主控台擷取 Amazon Simple Notification Service (Amazon SNS) 主題和訂閱,並在主控台中顯示這些主題和訂閱。
客戶受管政策範例
如果您未使用預設政策並選擇使用自訂受管政策,請確保下列兩件事的其中一項。您應具有呼叫 iam:createServiceLinkedRole
的許可 (如需詳細資訊,請參閱範例 4:允許使用者呼叫 IAM CreateServiceLinkedRole API)。或者,您應該已建立 MemoryDB 服務連結角色。
當 與使用 MemoryDB 主控台所需的最低許可結合時,本節中的範例政策會授予其他許可。這些範例也與 AWS SDKs和 相關 AWS CLI。如需使用 MemoryDB 主控台所需的許可的詳細資訊,請參閱 使用 MemoryDB 主控台所需的許可。
如需設定IAM使用者和群組的指示,請參閱 IAM 使用者指南 中的建立您的第一個IAM使用者和管理員群組。
重要
在生產中使用IAM政策之前,請務必徹底測試政策。當您使用 MemoryDB 主控台時,某些看似簡單的 MemoryDB 動作可能需要其他動作來支援這些動作。例如, 會memorydb:CreateCluster
授予建立 MemoryDB 叢集的許可。不過,若要執行此操作,MemoryDB 主控台會使用許多 Describe
和 List
動作來填入主控台清單。
範例
範例 1:允許使用者唯讀存取 MemoryDB 資源
下列政策會授予許可給允許使用者列出資源的 MemoryDB 動作。您通常會將此類型的許可政策連接到管理員群組。
{ "Version": "2012-10-17", "Statement":[{ "Sid": "MemDBUnrestricted", "Effect":"Allow", "Action": [ "memorydb:Describe*", "memorydb:List*"], "Resource":"*" } ] }
範例 2:允許使用者執行常見的 MemoryDB 系統管理員任務
常見的系統管理員任務包括修改叢集、參數和參數群組。系統管理員也可能想要取得 MemoryDB 事件的相關資訊。下列政策授予使用者許可,以針對這些常見的系統管理員任務執行 MemoryDB 動作。您通常會將此類型的許可政策連接到系統管理員群組。
{ "Version": "2012-10-17", "Statement":[{ "Sid": "MDBAllowSpecific", "Effect":"Allow", "Action":[ "memorydb:UpdateCluster", "memorydb:DescribeClusters", "memorydb:DescribeEvents", "memorydb:UpdateParameterGroup", "memorydb:DescribeParameterGroups", "memorydb:DescribeParameters", "memorydb:ResetParameterGroup",], "Resource":"*" } ] }
範例 3:允許使用者存取所有 MemoryDB API動作
下列政策允許使用者存取所有 MemoryDB 動作。建議您只將此類型的許可政策授予管理員使用者。
{ "Version": "2012-10-17", "Statement":[{ "Sid": "MDBAllowAll", "Effect":"Allow", "Action":[ "memorydb:*" ], "Resource":"*" } ] }
範例 4:允許使用者呼叫 IAM CreateServiceLinkedRole API
下列政策可讓使用者呼叫 IAM CreateServiceLinkedRole
API。建議您將此類型的許可政策授予叫用突變 MemoryDB 操作的使用者。
{ "Version":"2012-10-17", "Statement":[ { "Sid":"CreateSLRAllows", "Effect":"Allow", "Action":[ "iam:CreateServiceLinkedRole" ], "Resource":"*", "Condition":{ "StringLike":{ "iam:AWS ServiceName":"memorydb.amazonaws.com" } } } ] }