

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

# 針對 MemoryDB 使用身分型政策 (IAM 政策）
<a name="iam.identitybasedpolicies"></a>

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

**重要**  
建議您先閱讀說明管理 MemoryDB 資源存取之基本概念和選項的主題。如需詳細資訊，請參閱[管理 MemoryDB 資源存取許可的概觀](iam.overview.md)。

本主題中的各節涵蓋下列內容：
+ [使用 MemoryDB 主控台所需的許可](#iam.identitybasedpolicies.minconpolicies)
+ [AWS MemoryDB 的 受管 （預先定義） 政策](security-iam-awsmanpol.md#iam.identitybasedpolicies.predefinedpolicies)
+ [客戶受管政策範例](#iam.identitybasedpolicies.customermanagedpolicies)

以下顯示許可政策範例。

------
#### [ 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:DescribeClusters`、 `memorydb:CreateCluster`和 `memorydb:UpdateCluster`) 的許可。
+ 第二個陳述式會對 `Resource` 值結尾指定的 IAM 角色名稱授予 IAM 動作 (`iam:PassRole`) 的許可。

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

如需顯示所有 MemoryDB API 動作及其適用的資源的資料表，請參閱 [MemoryDB API 許可：動作、資源和條件參考](iam.APIReference.md)。

## 使用 MemoryDB 主控台所需的許可
<a name="iam.identitybasedpolicies.minconpolicies"></a>

許可參考表列出 MemoryDB API 操作，並顯示每個操作所需的許可。如需 MemoryDB API 操作的詳細資訊，請參閱 [MemoryDB API 許可：動作、資源和條件參考](iam.APIReference.md)。

 若要使用 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) 主題和訂閱，並在主控台中顯示。

## 客戶受管政策範例
<a name="iam.identitybasedpolicies.customermanagedpolicies"></a>

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

當 與使用 MemoryDB 主控台所需的最低許可結合時，本節中的範例政策會授予其他許可。這些範例也與 AWS SDKs和 相關 AWS CLI。如需使用 MemoryDB 主控台需要哪些許可的詳細資訊，請參閱 [使用 MemoryDB 主控台所需的許可](#iam.identitybasedpolicies.minconpolicies)。

如需設定 IAM 使用者和群組的說明，請參閱 *IAM 使用者指南*中的[建立您的第一個 IAM 使用者和管理員群組](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html)。

**重要**  
在生產環境中使用 IAM 政策之前，請一律先徹底進行測試。當您使用 MemoryDB 主控台時，某些看起來簡單的 MemoryDB 動作可能需要其他動作來支援這些動作。例如， 會`memorydb:CreateCluster`授予建立 MemoryDB 叢集的許可。不過，若要執行此操作，MemoryDB 主控台會使用多個 `Describe`和 `List`動作來填入主控台清單。

**Topics**
+ [範例 1：允許使用者唯讀存取 MemoryDB 資源](#example-allow-list-current-memorydb-resources)
+ [範例 2：允許使用者執行常見的 MemoryDB 系統管理員任務](#example-allow-specific-memorydb-actions)
+ [範例 3：允許使用者存取所有 MemoryDB API 動作](#allow-unrestricted-access)
+ [範例 4：允許使用者呼叫 IAM CreateServiceLinkedRole API](#create-service-linked-role-policy)

### 範例 1：允許使用者唯讀存取 MemoryDB 資源
<a name="example-allow-list-current-memorydb-resources"></a>

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

------
#### [ JSON ]

****  

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

------

### 範例 2：允許使用者執行常見的 MemoryDB 系統管理員任務
<a name="example-allow-specific-memorydb-actions"></a>

常見的系統管理員任務包括修改叢集、參數和參數群組。系統管理員也可能想要取得 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 動作
<a name="allow-unrestricted-access"></a>

下列政策允許使用者存取所有 MemoryDB 動作。建議您只將此類型的許可政策授予管理員使用者。

------
#### [ JSON ]

****  

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

------

### 範例 4：允許使用者呼叫 IAM CreateServiceLinkedRole API
<a name="create-service-linked-role-policy"></a>

下列政策允許使用者呼叫 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"
        }
      }
    }
  ]
}
```

------