メニュー
Amazon CloudFront
開発者ガイド (API Version 2016-09-29)

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

すべての AWS リソースは AWS アカウントによって所有され、となり、リソースの作成またはアクセスは、アクセス権限のポリシーによって管理されます。

注記

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

アクセス権限を付与するときは、アクセス権限を取得するユーザー、アクセス権限を取得する対象のリソース、およびアクセス権限を取得して実行するアクションを決定します。

CloudFront リソース用の ARN

すべての CloudFront リソース (ウェブおよび RTMP ディストリビューション、無効化、オリジンアクセスアイデンティティ) で、Amazon Resource Name (ARN) に対して同じ形式が使用されます。

arn:aws:cloudfront::optional-account-id:*

CloudFront には、これらの各タイプのリソースで使用できる API アクションが用意されています。詳細については、『Amazon CloudFront API リファレンス』を参照してください。各アクションを使用するアクセス権限を付与または拒否するために指定するアクションおよび ARN のリストについては、「CloudFront API のアクセス権限: アクション、リソース、条件リファレンス」を参照してください。

リソース所有権について

AWS アカウントは、誰がリソースを作成したかにかかわらず、アカウントで作成されたリソースを所有します。具体的には、リソース所有者は、リソースの作成リクエストを認証するプリンシパルエンティティ (ルートアカウント、IAM ユーザー、または IAM ロール) の AWS アカウントです。

以下の例では、このしくみを示しています。

  • AWS アカウントの root アカウントの認証情報を使用してウェブディストリビューションを作成する場合、AWS アカウントはディストリビューションの所有者です。

  • AWS アカウントに IAM ユーザーを作成し、ウェブディストリビューションを作成するためのアクセス権限をそのユーザーに付与した場合、そのユーザーはウェブディストリビューションを作成できます。ユーザーを作成した AWS アカウントはディストリビューションを所有します。

  • AWS アカウントに、ウェブディストリビューションを作成するためのアクセス権限を持つ IAM ロールを作成する場合は、ロールを引き受けることのできるいずれのユーザーもウェブディストリビューションを作成できます。ロールが属する AWS アカウントはディストリビューションを所有します。

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

アクセス権限のポリシーでは、誰が何にアクセスできるかを指定します。このセクションでは、CloudFront のアクセス権限のポリシーを作成するために使用可能なオプションについて説明します。IAM ポリシー構文の全般的な詳細および説明については、『IAM ユーザーガイド』の「AWS IAM ポリシーリファレンス」を参照してください。

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

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

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

  • アカウントのユーザーまたはグループにアクセス権限ポリシーをアタッチする – アカウント管理者は、特定のユーザーに関連付けられるアクセス権限ポリシーを使用して、そのユーザーにウェブディストリビューションの作成を許可するアクセス権限を付与することができます。

  • ロールにアクセス権限ポリシーをアタッチする (クロスアカウントアクセス権限を付与する) – 別の AWS アカウントで作成されたユーザーに、CloudFront アクションを実行するアクセス権限を付与できます。そのためには、IAM ロールにアクセス権限ポリシーをアタッチし、他のアカウントのユーザーがそのロールを引き受けられるようにします。次の例では、2 つの AWS アカウント (アカウントA およびアカウント B) に対するこのしくみを説明します。

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

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

    3. 次に、アカウント B の管理者は、ロールを引き受けるアクセス権限をアカウント B のユーザーまたはグループに委任できます。これにより、アカウント B のユーザーはアカウント A でリソースを作成したり、リソースにアクセスしたりできます。

    別の AWS アカウントのユーザーにアクセス権限を委任する方法については、『IAM ユーザーガイド』の「アクセス管理」を参照してください。

次のポリシー例では、ユーザーが CreateDistribution アクションを実行し、AWS アカウントのウェブディストリビューションをプログラムで作成できるようにします。

Copy
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudfront:CreateDistribution" ], "Resource":"*" } ] }

CloudFront コンソールを使ってオペレーションを実行するために必要なアクセス権限の詳細については、「CloudFront コンソールを使用するために必要なアクセス権限」を参照してください。CloudFront のアイデンティティへのポリシーのアタッチの詳細については、「CloudFront でアイデンティティベースのポリシー (IAM ポリシー) を使用する」を参照してください。ユーザー、グループ、ロール、アクセス権限の詳細については、「アイデンティティ (ユーザー、グループ、ロール)」 (IAM ユーザーガイド) を参照してください。

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

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

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

CloudFront には、各 CloudFront リソース (「CloudFront リソース用の ARN」を参照) で使用できる API アクション (『Amazon CloudFront API リファレンス)』を参照) が含まれています。これらのアクションの一部またはすべてを実行するアクセス権限を、ユーザーまたはフェデレーティッドユーザーに付与できます。

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

  • リソース – Amazon Resource Name (ARN) を使用して、ポリシーを適用するリソースを識別します。詳細については、「CloudFront リソース用の ARN」を参照してください。

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

  • 効果 – ユーザーが指定されたリソースでアクションの実行を試みた場合の、許可または拒否の効果を指定します。アクションへのアクセスを明示的に許可していない場合、アクセスは暗黙的に拒否されます。また、明示的にリソースへのアクセスを拒否すると、別のポリシーによってアクセスが許可されている場合でも、ユーザーはそのリソースにアクセスできなくなります。

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

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

すべての CloudFront API オペレーションとそれらが適用されるリソースのについては、「CloudFront API のアクセス権限: アクション、リソース、条件リファレンス」を参照してください。

ポリシーでの条件の指定

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

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