MemoryDB でのアイデンティティベースのポリシー (IAM ポリシー) の使用 - Amazon MemoryDB

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

MemoryDB でのアイデンティティベースのポリシー (IAM ポリシー) の使用

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

重要

まず、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" } ] }

このポリシーには以下の 2 つのステートメントがあります。

  • 最初のステートメントは、アカウントが所有するクラスターに対する MemoryDB アクション (memorydb:CreateClustermemorydb:DescribeClusters、および memorydb:UpdateCluster) のアクセス許可を付与します。

  • 2 番目のステートメントは、Resource 値の最後に指定した IAM ロール名での IAM アクションiam:PassRoleのアクセス許可を付与します。

ID ベースのポリシーでアクセス許可を得るプリンシパルを指定していないため、ポリシーでは 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 アクションを実行するためのアクセス権限。コンソールで、アベイラビリティーゾーン、VPC、セキュリティグループ、アカウント属性を表示するために必要です。

  • cloudwatch アクションのアクセス許可により、コンソールは Amazon CloudWatch メトリクスとアラームを取得し、コンソールに表示できます。

  • sns アクションのアクセス許可を使用すると、Amazon Simple Notification Service (Amazon SNS) のトピックやサブスクリプションを取得し、コンソールにそれらを表示することができます。

カスタマーマネージドポリシーの例

デフォルトポリシーを使用せず、カスタム管理ポリシーを使用することを選択した場合は、以下の 2 点のいずれかを確認してください。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 アクションを実行するためのアクセス権限をユーザーに付与します。通常、このタイプのアクセス権限ポリシーは管理者グループにアタッチします。

{ "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 を呼び出すことを許可します。mutative MemoryDB オペレーションを実行するユーザーには、このタイプのアクセス許可ポリシーを与えることをお勧めします。

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