

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# MemoryDB でのアイデンティティベースのポリシー (IAM ポリシー) の使用
<a name="iam.identitybasedpolicies"></a>

このトピックでは、アカウント管理者が IAM ID (ユーザー、グループ、ロール) へのアクセス許可ポリシーをアタッチする、ID ベースのポリシーの例を示します。

**重要**  
最初に、MemoryDB リソースへのアクセスを管理するための基本的な概念とオプションについて説明するトピックを読むことをお勧めします。詳細については、「[MemoryDB リソースに対する許可の管理の概要](iam.overview.md)」を参照してください。

このセクションでは、次のトピックを対象としています。
+ [MemoryDB コンソールの使用に必要なアクセス権限](#iam.identitybasedpolicies.minconpolicies)
+ [MemoryDB のAWS管理 (事前定義) ポリシー](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"
       }
   ]
}
```

------

このポリシーには以下の 2 つのステートメントがあります。
+ 最初のステートメントは、アカウントが所有するクラスター上の ‭MemoryDB アクション (‭‭`memorydb:CreateCluster`‬、‭`memorydb:DescribeClusters`、‭`memorydb:UpdateCluster`‬‬‬‬) のアクセス権限を付与します。‬‬‬‬
+ 2 番目のステートメントは、`Resource` 値の最後に指定した IAM ロール名での IAM アクション`iam:PassRole`のアクセス許可を付与します。

ID ベースのポリシーでアクセス許可を得るプリンシパルを指定していないため、ポリシーでは `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 リソースを表示するために必要です。
+ Amazon EC2 に対してクエリを行う `ec2` アクションを実行するためのアクセス権限。コンソールで、アベイラビリティーゾーン、VPC、セキュリティグループ、アカウント属性を表示するために必要です。
+ `cloudwatch` アクションを実行するためのアクセス許可。コンソールで、Amazon CloudWatch メトリクスとアラームを取得し、表示するために必要です。
+ `sns` アクションのアクセス許可を使用すると、Amazon Simple Notification Service (Amazon SNS) のトピックやサブスクリプションを取得し、コンソールにそれらを表示することができます。

## カスタマーマネージドポリシーの例
<a name="iam.identitybasedpolicies.customermanagedpolicies"></a>

デフォルトポリシーを使用せず、カスタムマネージドポリシーを使用することを選択した場合は、以下の 2 点のいずれかを確認してください。`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 を呼び出すことを許可します。mutative MemoryDB オペレーションを実行するユーザーには、このタイプのアクセス許可ポリシーを与えることをお勧めします。

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

****  

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

------