針對記憶體資料庫使用以身分識別為基礎的政策 (IAM 政策) - Amazon 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:CreateClustermemorydb:DescribeClusters、和memorydb:UpdateCluster) 授與權限。

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

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

如需顯示所有 MemoryDB API 動作及其套用至之資源的表格,請參閱。記憶體資料庫 API 權限:動作、資源和條件參考

使用記憶體資料庫主控台所需的權限

權限參考資料表會列出 MemoryDB API 作業,並顯示每項作業所需的權限。如需有關記憶體資料庫 API 作業的詳細資訊,請參閱。記憶體資料庫 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 資源。

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

  • cloudwatch動作權限可讓主控台擷取 Amazon CloudWatch 指標和警示,並在主控台中顯示這些指標和警示。

  • sns 動作許可讓主控台可擷取 Amazon Simple Notification Service (Amazon SNS) 主題和訂閱,並在主控台中顯示。

客戶受管政策範例

如果您未使用預設政策並選擇使用自訂受管政策,請確保下列兩件事的其中一項。您應具有呼叫 iam:createServiceLinkedRole 的許可 (如需詳細資訊,請參閱範例 4:允許使用者呼叫 IAM CreateServiceLinkedRole API)。或者,您應該已經建立了 MemoryDB 服務連結的角色。

當與使用 MemoryDB 主控台所需的最低權限結合使用時,本節中的範例原則會授予其他權限。這些範例也與 AWS SDK 和. AWS CLI如需有關使用 MemoryDB 主控台需要哪些權限的詳細資訊,請參閱。使用記憶體資料庫主控台所需的權限

如需設定 IAM 使用者和群組的說明,請參閱 IAM 使用者指南中的建立您的第一個 IAM 使用者和管理員群組

重要

在生產環境中使用 IAM 政策之前,請一律先徹底進行測試。當您使用 MemoryDB 主控台時,某些看起來很簡單的 MemoryDB 動作可能需要其他動作來支援它們。例如,memorydb:CreateCluster授予建立 MemoryDB 叢集的權限。但是,若要執行此作業,MemoryDB 主控台會使用許多DescribeList動作來填入主控台清單。

範例 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:允許使用者存取所有記憶體資料庫 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" } } } ] }