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

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

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

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

重要

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

このセクションでは、次のトピックを対象としています。

以下に示しているのは、アクセス許可ポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowClusterPermissions", "Effect": "Allow", "Action": [ "elasticache:CreateServerlessCache", "elasticache:CreateCacheCluster", "elasticache:DescribeServerlessCaches", "elasticache:DescribeReplicationGroups", "elasticache:DescribeCacheClusters", "elasticache:ModifyServerlessCache", "elasticache:ModifyReplicationGroup", "elasticache:ModifyCacheCluster" ], "Resource": "*" }, { "Sid": "AllowUserToPassRole", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::123456789012:role/EC2-roles-for-cluster" } ] }

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

  • 最初のステートメントは、Amazon ElastiCache アクション (elasticache:Create*elasticache:Describe*elasticache:Modify*) のアクセス許可を付与します。

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

ID ベースのポリシーでアクセス許可を得るプリンシパルを指定していないため、ポリシーでは Principal 要素を指定していません。ユーザーにポリシーをアタッチすると、そのユーザーが暗黙のプリンシパルになります。IAM ロールにアクセス権限ポリシーをアタッチすると、ロールの信頼ポリシーで識別されたプリンシパルがアクセス権限を得ることになります。

すべての Amazon ElastiCache API アクションとそれらが適用されるリソースの表については、「ElastiCache API アクセス許可: アクション、リソース、および条件リファレンス」を参照してください。

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

デフォルトポリシーを使用せず、カスタム管理ポリシーを使用することを選択した場合は、以下の 2 点のいずれかを確認してください。iam:createServiceLinkedRole を呼び出すためのアクセス許可があることが必要です (詳細については、「例 4: ユーザーが IAM CreateServiceLinkedRole API を呼び出すことを許可する」を参照)。または、ElastiCache サービスにリンクされたロールを作成済みであることが必要です。

Amazon ElastiCache コンソールを使用するために必要な最小限のアクセス権限と組み合わせて、このセクションでのポリシーの例は、追加のアクセス権限を付与します。この例は、AWS SDK と AWS CLI に関連しています。

IAM ユーザーおよびグループのセットアップ手順については、IAM ユーザーガイドの「最初の IAM ユーザーおよび管理者グループの作成」を参照してください。

重要

IAM ポリシーは必ず、本稼働環境での使用前にテストしてください。ElastiCache のアクションによっては、シンプルに見えても、ElastiCache コンソールの使用時にそれらのアクションをサポートするために、他のアクションが必要になる場合があります。たとえば、elasticache:CreateCacheCluster は、ElastiCache キャッシュクラスターを作成するためのアクセス許可を付与します。ただし、このオペレーションを実行するために、ElastiCache コンソールでは DescribeList の多数のアクションが使用されて、リストが事前設定されます。

例 1: ユーザーに ElastiCache リソースへの読み取り専用アクセスを許可する

以下のポリシーでは、リソースを一覧表示する ElastiCache アクションを実行するためのアクセス許可をユーザーに付与します。通常、このタイプのアクセス権限ポリシーは管理者グループにアタッチします。

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

例 2: ユーザーに一般的な ElastiCache システム管理者タスクの実行を許可する

一般的なシステム管理者タスクには、リソースの変更が含まれます。  システム管理者は ElastiCache イベントに関する情報を取得することが必要になる場合もあります。以下のポリシーでは、これらの一般的なシステム管理タスクに必要な ElastiCache アクションを実行するためのアクセス権限をユーザーに付与します。通常、このタイプのアクセス権限ポリシーはシステム管理者グループにアタッチします。

{ "Version": "2012-10-17", "Statement":[{ "Sid": "ECAllowMutations", "Effect":"Allow", "Action":[ "elasticache:Modify*", "elasticache:Describe*", "elasticache:ResetCacheParameterGroup" ], "Resource":"*" } ] }

例 3: ユーザーにすべての ElastiCache API アクションへのアクセスを許可する

以下のポリシーでは、ユーザーにすべての ElastiCache アクションへのアクセスを許可します。このタイプのアクセス権限ポリシーは管理者ユーザーにのみ付与することをお勧めします。

{ "Version": "2012-10-17", "Statement":[{ "Sid": "ECAllowAll", "Effect":"Allow", "Action":[ "elasticache:*" ], "Resource":"*" } ] }

例 4: ユーザーが IAM CreateServiceLinkedRole API を呼び出すことを許可する

次のポリシーでは、ユーザーがIAM CreateServiceLinkedRole API を呼び出すことを許可します。mutative ElastiCache オペレーションを実行するユーザーには、このタイプのアクセス許可ポリシーを与えることをお勧めします。

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

例 5: ユーザーが IAM 認証を使用してサーバーレスキャッシュに接続することを許可する

次のポリシーでは、どのユーザーにも、IAM 認証を使用して 2023 年 4 月 1 日 から 2023 年 6 月 30 日 までのサーバーレスキャッシュに接続することを許可します。

{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : ["elasticache:Connect"], "Resource" : [ "arn:aws:elasticache:us-east-1:123456789012:serverlesscache:*" ], "Condition": { "DateGreaterThan": {"aws:CurrentTime": "2023-04-01T00:00:00Z"}, "DateLessThan": {"aws:CurrentTime": "2023-06-30T23:59:59Z"} } }, { "Effect" : "Allow", "Action" : ["elasticache:Connect"], "Resource" : [ "arn:aws:elasticache:us-east-1:123456789012:user:*" ] } ] }