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

  • AWS アカウントの root アカウントの認証情報を使用してキャッシュクラスターを作成する場合、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 を定義します。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 ユーザーガイドの「条件に利用可能なキー」を参照してください。