メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

ポリシーでのプリンシパルの指定

Principal エレメントは、リソースへのアクセスを許可または拒否するユーザー、アカウント、サービス、または他のエンティティを指定します。Principal エレメントの指定が必要になるのは、バケットポリシーのみです。特定のユーザーに直接ポリシーをアタッチするユーザーポリシーでは、必要ありません。Principal を指定する例を以下に示します。詳細については、IAM ユーザーガイド の「プリンシパル」を参照してください。

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

    Copy
    "AWS":"account-ARN"

    (例:

    Copy
    "Principal":{"AWS":"arn:aws:iam::AccountNumber-WithoutHyphens:root"}

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

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

    (例:

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

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

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

    Copy
    "Principal":{"AWS":"arn:aws:iam::account-number-without-hyphens:user/username"}
  • 匿名アクセスと呼ばれるアクセス権限を全員に付与するには、Principal の値としてワイルドカード「*」を設定します。たとえば、バケットを Web サイトとして設定する場合、以下のように、バケット内のすべてのオブジェクトを公開し、誰でもアクセスできるようにすることができます。以下が同等 :

    Copy
    "Principal":"*"
    Copy
    "Principal":{"AWS":"*"}

    警告

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

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

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

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

アクセスポリシー言語の他のエレメントについては、「アクセスポリシー言語の概要」を参照してください。