針對 MemoryDB 使用身分型政策 (IAM 政策) - Amazon MemoryDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

針對 MemoryDB 使用身分型政策 (IAM 政策)

這個主題提供以身分為基礎的政策範例,在該政策中帳戶管理員可以將許可政策連接至 IAM 身分 (即使用者、群組和角色)。

重要

我們建議您先閱讀說明管理 MemoryDB 資源存取之基本概念和選項的主題。如需詳細資訊,請參閱管理 MemoryDB 資源存取許可的概觀

本主題中的各節涵蓋下列內容:

以下顯示許可政策範例。

JSON
{ "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:DescribeClustersmemorydb:CreateClustermemorydb:UpdateCluster) 的許可。

  • 第二個陳述式會對 Resource 值結尾指定的 IAM 角色名稱授予 IAM 動作 (iam:PassRole) 的許可。

此政策不指定 Principal 元素,因為您不會在以身分為基礎的政策中,指定取得許可的主體。當您將政策連接至使用者時,這名使用者即為隱含主體。當您將許可政策連接至 IAM 角色,該角色的信任政策中所識別的委託人即取得許可。

如需顯示所有 MemoryDB API 動作及其適用的資源的資料表,請參閱 MemoryDB API 許可:動作、資源和條件參考

使用 MemoryDB 主控台所需的許可

許可參考表列出 MemoryDB API 操作,並顯示每個操作所需的許可。如需 MemoryDB API 操作的詳細資訊,請參閱 MemoryDB API 許可:動作、資源和條件參考

若要使用 MemoryDB 主控台,請先授予其他動作的許可,如下列許可政策所示。

JSON
{ "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 資源。

  • 主控台需要 ec2 動作的許可才能來查詢 Amazon EC2,以便顯示可用區域、VPC、安全群組和帳戶屬性。

  • 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 主控台會使用多個 DescribeList動作來填入主控台清單。

範例 1:允許使用者唯讀存取 MemoryDB 資源

下列政策會授予允許使用者列出資源的 MemoryDB 動作許可。您通常會將此類型的許可政策連接到管理員群組。

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

範例 2:允許使用者執行常見的 MemoryDB 系統管理員任務

常見的系統管理員任務包括修改叢集、參數和參數群組。系統管理員也可能想要取得 MemoryDB 事件的相關資訊。下列政策會授予使用者許可,以針對這些常見的系統管理員任務執行 MemoryDB 動作。您通常會將此類型的許可政策連接到系統管理員群組。

JSON
{ "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 動作。建議您只將此類型的許可政策授予管理員使用者。

JSON
{ "Version": "2012-10-17" , "Statement":[{ "Sid": "MDBAllowAll", "Effect":"Allow", "Action":[ "memorydb:*" ], "Resource":"*" } ] }

範例 4:允許使用者呼叫 IAM CreateServiceLinkedRole API

下列政策允許使用者呼叫 IAM CreateServiceLinkedRole API。我們建議您將這類許可政策授予叫用變動 MemoryDB 操作的使用者。

JSON
{ "Version":"2012-10-17" , "Statement":[ { "Sid":"CreateSLRAllows", "Effect":"Allow", "Action":[ "iam:CreateServiceLinkedRole" ], "Resource":"*", "Condition":{ "StringLike":{ "iam:AWS ServiceName":"memorydb.amazonaws.com" } } } ] }