Redis 用 Amazon ElastiCache
Redis 用 ElastiCache ユーザーガイド (API バージョン 2015-02-02)

ElastiCache リソースへのアクセス権限の管理の概要

すべての AWS リソースは AWS アカウントによって所有され、リソースの作成またはアクセスは、アクセス権限のポリシーによって管理されます。アカウント管理者は、IAM アイデンティティ (ユーザー、グループ、ロール) にアクセス許可ポリシーをアタッチできます。さらに、一部のサービス (AWS Lambda など) では、リソースにアクセス許可ポリシーをアタッチすることもできます。

注記

アカウント管理者 (または管理者ユーザー) は、管理者権限を持つユーザーです。詳細については、IAM ユーザーガイド の「IAM のベストプラクティス」を参照してください。

アクセス許可を付与するときは、だれがアクセス許可を得るかを決定します。また、アクセス許可を得るリソースと、それらのリソースで許可する特定のアクションも決定します。

Amazon ElastiCache リソースおよびオペレーション

Amazon ElastiCache では、プライマリリソースはキャッシュクラスターです。

これらのリソースには、次の表に示すとおり、一意の Amazon リソースネーム (ARN) が関連付けられています。

リソースタイプ ARN 形式

キャッシュクラスター

arn:aws:elasticache:region:account-id:cluster:resource-name

ElastiCache では、ElastiCache リソースを操作する一連のオペレーションが用意されています。使用可能なオペレーションのリストについては、Amazon ElastiCache の「アクション」を参照してください。

リソース所有権について

リソース所有者は、リソースを作成した AWS アカウントです。つまり、リソース所有者は、そのリソースの作成リクエストを認証するプリンシパルエンティティの AWS アカウントです。プリンシパルエンティティはルートアカウント、IAM ユーザー、または IAM ロールです。以下の例では、このしくみを示しています。

  • AWS アカウントのルートアカウント認証情報を使用してキャッシュクラスターを作成するとします。この場合、AWS アカウントはリソースの所有者です。ElastiCache では、リソースはキャッシュクラスターです。

  • AWS アカウントに IAM ユーザーを作成し、キャッシュクラスターを作成するためのアクセス許可をそのユーザーに付与するとします。この場合、ユーザーはキャッシュクラスターを作成できます。ただし、キャッシュクラスターリソースを所有しているのは、このユーザーが属する AWS アカウントです。

  • キャッシュクラスターを作成するためのアクセス許可のある AWS アカウントに IAM ロールを作成するとします。この場合、ロールを引き受けることができるいずれのユーザーもキャッシュクラスターを作成できます。ロールが属する AWS アカウントがキャッシュクラスターリソースを所有しています。

リソースへのアクセスの管理

アクセスポリシーでは、誰が何にアクセスできるかを記述します。以下のセクションで、アクセス権限のポリシーを作成するために使用可能なオプションについて説明します。

注記

このセクションでは、Amazon ElastiCache のコンテキストでの IAM の使用について説明します。これは、IAM サービスに関する詳細情報を取得できません。完全な IAM ドキュメントについては、IAM ユーザーガイドの「IAM とは?」を参照してください。IAM ポリシー構文の詳細および説明については、IAM ユーザーガイド の「AWS IAM ポリシーリファレンス」を参照してください。

IAM アイデンティティにアタッチされているポリシーは、アイデンティティベースのポリシー (IAM ポリシー) と呼ばれます。リソースにアタッチされたポリシーはリソースベースのポリシーと呼ばれます。Amazon ElastiCache では、アイデンティティベースのポリシー (IAM ポリシー) のみがサポートされています。

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

ポリシーを IAM アイデンティティにアタッチできます。たとえば、次の操作を実行できます。

  • アカウントのユーザーまたはグループにアクセス許可ポリシーをアタッチする – アカウント管理者は、特定のユーザーに関連付けられるアクセス許可ポリシーを使用して、アクセス許可を付与できます。この場合、アクセス許可は、そのユーザーがキャッシュクラスター、パラメータグループ、セキュリティグループなどの ElastiCache リソースを作成するためのものです。

  • アクセス権限ポリシーをロールにアタッチする (クロスアカウントのアクセス権限を付与) – アイデンティティベースのアクセス権限ポリシーを IAM ロールにアタッチして、クロスアカウントのアクセス権限を付与することができます。たとえば、アカウント A の管理者は、次のように他のまたは AWS にクロスアカウントのアクセス権限を別の AWS アカウント (アカウント B) または AWS サービスに付与するロールを作成することができます。

    1. アカウント A の管理者は、IAM ロールを作成して、アカウント A のリソースに権限を付与するロールに権限ポリシーをアタッチします。

    2. アカウント A の管理者は、アカウント B をそのロールを引き受けるプリンシパルとして識別するロールに、信頼ポリシーをアタッチします。

    3. アカウント B の管理者は、ロールを引き受けるためのアクセス許可をアカウント B のユーザーに委任できます。これにより、アカウント B のユーザーは、アカウント A のリソースの作成またはアクセスが許可されます。場合によっては、AWS のサービスにロールを引き受けるためのアクセス許可を付与する必要があります。このアプローチをサポートするために、信頼ポリシーのプリンシパルを AWS のサービスのプリンシパルにすることもできます。

    IAM を使用したアクセス権限の委任の詳細については、IAM ユーザーガイド の「アクセス管理」を参照してください。

以下に示しているのは、お客様の AWS アカウントに対する DescribeCacheClusters アクションの実行をユーザーに許可するポリシーの例です。現在の実装では、ElastiCache は API アクションのリソース ARN を使用した特定のリソースの識別をサポートしていません (このアプローチは、リソースレベルのアクセス許可とも呼ばれます)。したがって、ワイルドカード文字 (*) を指定する必要があります。

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

ElastiCache でアイデンティティベースのポリシーを使用する方法の詳細については、「Amazon ElastiCache でアイデンティティベースのポリシー(IAM ポリシー)を使用する」を参照してください。ユーザー、グループ、ロール、アクセス権限の詳細については、IAM ユーザーガイド の「アイデンティティ (ユーザー、グループ、ロール)」を参照してください。

リソースベースのポリシー

Amazon S3 などの他のサービスでは、リソースベースのアクセス権限ポリシーもサポートされています。たとえば、ポリシーを S3 バケットにアタッチして、そのバケットに対するアクセス権限を管理できます。Amazon ElastiCache はリソースベースのポリシーをサポートしていません。 

ポリシー要素の指定 : アクション、効果、リソース、プリンシパル

Amazon ElastiCache リソースごとに(Amazon ElastiCache リソースおよびオペレーション を参照)、サービスは一連の API オペレーションを定義します(アクションを参照)。これらの API オペレーションを実行するためのアクセス権限を付与するために、ElastiCache ではポリシーに一連のアクションを定義できます。たとえば、ElastiCache スナップショットリソースに対して、アクション CreateCacheClusterDeleteCacheClusterDescribeCacheCluster を定義します。1 つの API オペレーションの実行で、複数のアクションのアクセス権限が必要になる場合があります。

以下は、最も基本的なポリシーの要素です。

  • リソース – ポリシーで Amazon Resource Name (ARN) を使用して、ポリシーを適用するリソースを識別します。ElastiCache リソースの場合、IAM ポリシーでは必ずワイルドカード文字 (*) を使用します。詳細については、「Amazon ElastiCache リソースおよびオペレーション」を参照してください。

  • アクション – アクションのキーワードを使用して、許可または拒否するリソースオペレーションを識別します。たとえば、指定した Effect に応じて、elasticache:CreateCacheCluster アクセス権限では、Amazon ElastiCache CreateCacheCluster オペレーションの実行をユーザーに許可または拒否します。

  • 効果 – ユーザーが特定のアクションをリクエストする際の効果を指定します。許可または拒否のいずれかになります。リソースへのアクセスを明示的に許可していない場合、アクセスは暗黙的に拒否されます。リソースへのアクセスを明示的に拒否することもできます。たとえば、別のポリシーでリソースへのアクセスが許可されているユーザーに対して、そのリソースへのアクセスを禁止できます。

  • プリンシパル – アイデンティティベースのポリシー (IAM ポリシー) で、ポリシーがアタッチされているユーザーが黙示的なプリンシパルとなります。リソースベースのポリシーでは、権限 (リソースベースのポリシーにのみ適用) を受け取りたいユーザー、アカウント、サービス、またはその他のエンティティを指定します。ElastiCache では、リソースベースのポリシーはサポートされていません。

IAM ポリシーの構文と説明についての詳細については、IAM ユーザーガイド の「AWS IAM ポリシーリファレンス」を参照してください。

すべての Amazon ElastiCache API アクションを示す表については、「ElastiCache API のアクセス権限: アクション、リソース、条件リファレンス」を参照してください。

ポリシーでの条件の指定

アクセス権限を付与するとき、IAM ポリシー言語を使用して、ポリシーが有効になる必要がある条件を指定できます。たとえば、特定の日付の後にのみ適用されるポリシーが必要になる場合があります。ポリシー言語での条件の指定の詳細については、IAM ユーザーガイド の「条件」を参照してください。

条件を表すには、あらかじめ定義された条件キーを使用します。Amazon ElastiCache に固有の条件キーはありません。ただし、AWS 全体の条件キーがあり、必要に応じて使用できます。AWS 全体を対象とするすべてのキーのリストについては、『IAM ユーザーガイド』の「条件に利用可能なキー」を参照してください。