Principals - Amazon Simple Storage Service

Principals

Principal エレメントは、リソースへのアクセスを許可または拒否するユーザー、アカウント、サービス、または他のエンティティを指定します。Principal を指定する例を以下に示します。詳細については、IAM ユーザーガイドの「AWS JSON ポリシーの要素: Principal」を参照してください。

AWS アカウント にアクセス許可を付与する

AWS アカウント にアクセス許可を付与するには、以下の形式を使用してアカウントを指定します。

"AWS":"account-ARN"

次に例を示します。

"Principal":{"AWS":"arn:aws:iam::AccountNumber-WithoutHyphens:root"}
"Principal":{"AWS":["arn:aws:iam::AccountNumber1-WithoutHyphens:root","arn:aws:iam::AccountNumber2-WithoutHyphens:root"]}

Amazon S3 では、正規ユーザー ID (難読化された AWS アカウント ID) もサポートされています。以下の形式を使用して、この ID を指定できます。

"CanonicalUser":"64-digit-alphanumeric-value"

次に例を示します。

"Principal":{"CanonicalUser":"64-digit-alphanumeric-value"}

アカウントの正規ユーザー ID を確認する方法については、「AWS アカウント ID の検索」を参照してください。

重要

ポリシーで正規ユーザー ID を使用する場合、Amazon S3 によって正規ユーザー ID が対応する AWS アカウント ID に変更される場合があります。これら両方の ID は同じアカウントを特定するため、ポリシーに影響を与えません。

IAM ユーザーにアクセス許可を付与する

アカウントの IAM ユーザーにアクセス許可を付与するには、"AWS":"user-ARN" の名前と値のペアを指定する必要があります。

"Principal":{"AWS":"arn:aws:iam::account-number-without-hyphens:user/username"}

ステップバイステップの手順を説明する詳細な例については、「例 1: バケット所有者がユーザーにバケットのアクセス許可を付与する 」および「例 3: バケット所有者が自分の所有していないオブジェクトに対するアクセス許可を付与する」をご参照ください。

匿名アクセス許可を付与する

匿名アクセスと呼ばれるアクセス許可を全員に付与するには、"*" の値としてワイルドカード (Principal) を設定します。たとえば、バケットを Web サイトとして設定する場合、以下のように、バケット内のすべてのオブジェクトを公開し、誰でもアクセスできるようにすることができます。以下は同等です。

"Principal":"*"
"Principal":{"AWS":"*"}
警告

S3 バケットへの匿名アクセスを付与するときは注意が必要です。匿名アクセスを付与すると、世界中のすべてのユーザーがバケットにアクセスできます。種類にかかわらず、S3 バケットへの匿名書き込みアクセスは一切付与しないことを強くお勧めします。

CloudFront の URL を使用したアクセスの要求

Amazon S3 のコンテンツへのアクセスに、Amazon S3 の URL ではなく、Amazon CloudFront の URL を使用するようにユーザーに求めることができます。これを行うには、CloudFront のオリジンアクセスアイデンティティ (OAI) を作成します。次に、バケットまたはバケット内のオブジェクトのアクセス許可を変更します。Principal ステートメントで OAI を指定するための形式は、次のようになります。

"Principal":{"CanonicalUser":"Amazon S3 Canonical User ID assigned to origin access identity"}

詳細については、Amazon CloudFront デベロッパーガイドの「オリジンアクセスアイデンティティを使用して Amazon S3 コンテンツへのアクセスを制限する」を参照してください。