ElastiCache リソースに対するアクセス許可の管理の概要 - Amazon ElastiCache for Redis

ElastiCache リソースに対するアクセス許可の管理の概要

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

注記

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

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

Amazon ElastiCache のリソースとオペレーション

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

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

注記

リソースレベルのアクセス許可を有効にするには、ARN 文字列のリソース名を小文字にする必要があります。

リソースタイプ ARN 形式

(Redis 6.x 以降の場合) ユーザー

arn:aws:elasticache:us-east-2:123456789012:user:user1

(Redis 6.x 以降の場合) UserGroup

arn:aws:elasticache:us-east-2:123456789012:usergroup:myusergroup

クラスター

arn:aws:elasticache:us-east-2:123456789012:cluster:my-cluster

スナップショット

arn:aws:elasticache:us-east-2:123456789012:snapshot:my-snapshot

パラメータグループ

arn:aws:elasticache:us-east-2:123456789012:parametergroup:my-parameter-group

レプリケーショングループ

arn:aws:elasticache:us-east-2:123456789012:replicationgroup:my-replication-group

セキュリティグループ

arn:aws:elasticache:us-east-2:123456789012:securitygroup:my-security-group

サブネットグループ

arn:aws:elasticache:us-east-2:123456789012:subnetgroup:my-subnet-group

リザーブドインスタンス

arn:aws:elasticache:us-east-2:123456789012:reserved-instance:my-reserved-instance

グローバルレプリケーショングループ

arn:aws:elasticache:123456789012:globalreplicationgroup:my-global-replication-group

ユーザー

arn:aws:elasticache:us-east-2:123456789012:user:my-user

ユーザーグループ

arn:aws:elasticache:us-east-2:123456789012:user:my-user-group

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 ポリシー) と呼ばれます。リソースに添付されたポリシーは、リソースベースのポリシーと呼ばれます。

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

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

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

  • 許可ポリシーをロールに添付する (クロスアカウントの許可を付与) – アイデンティティベースのアクセス許可ポリシーを IAM ロールに添付して、クロスアカウントの許可を付与することができます。例えば、アカウント A の管理者は、次のように別の 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": resource-arn } ] }

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

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

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

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

  • リソース – ポリシーで Amazon リソースネーム (ARN) を使用して、ポリシーを適用するリソースを識別します。詳細については、「Amazon ElastiCache のリソースとオペレーション」を参照してください。

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

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

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

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

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

ポリシーでの条件を指定する

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

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