# パッケージ com.amazonaws.auth.policy

独自のAWSアクセス制御ポリシーを生成するためのクラス。

参照先: 説明

- インタフェースの概要
  インタフェース | 説明
  --- | ---
  Action | An access control policy action identifies a specific action in a service that can be performed on a resource.

- クラスの概要
  クラス | 説明
  --- | ---
  Condition | AWS access control policy conditions are contained in `Statement` objects, and affect when a statement is applied.
  Policy | An AWS access control policy is a object that acts as a container for one or more statements, which specify fine grained rules for allowing or denying various types of actions from being performed on your AWS resources.
  Principal | A principal is an AWS account or AWS web serivce, which is being allowed or denied access to a resource through an access control policy.
  Resource | Represents a resource involved in an AWS access control policy statement.
  Statement | A statement is the formal description of a single permission, and is always contained within a policy object.

- 列挙型の概要
  列挙型 | 説明
  --- | ---
  Principal.Services | The services who have the right to do the assume the role action.
  Principal.WebIdentityProviders | Web identity providers, such as Login with Amazon, Facebook, or Google.
  Statement.Effect | The effect is the result that you want a policy statement to return at evaluation time.
  STSActions |

## パッケージcom.amazonaws.auth.policyの説明

独自のAWSアクセス制御ポリシーを生成するためのクラス。 ポリシーの適用により、AWSリソースに対するきめ細かなアクセス制御が可能です。 次の条件に基づいて、AWSリソースへのアクセスを許可/拒否できます。

- アクセスされるリソース
- リソースにアクセスする人 (すなわち依頼人)
- リソースに対して実行されるアクション
- その他さまざまな条件 (日付の制約、IPアドレスの制約など)

アクセス制御ポリシーは、いくつかの文を集めたものです。 それぞれの文は、「A has permission to do B to C where D applies」という形式です。

- Aは依頼人を表します。あるAWSリソースにアクセスし、 または修正を施す旨の要求をするAWSアカウントです。
- Bはアクションです。AWSリソースにアクセスし、または修正を施す方法を表します。 メッセージをAmazon SQSキューに送信する、オブジェクトをAmazon S3バケットに格納する、などのアクションがあります。
- Cはリソースです。依頼人がアクセスしようとするAWSエンティティを表します。 Amazon SQSキュー、Amazon S3に格納されたオブジェクトなどがあります。
- Dは条件の集合です。 必要に応じ、リソースへのアクセスを許可/拒否するための制約を指定します。 さまざまな条件の書き方が可能で、各サービスに固有の条件も指定できます。 例えば日付条件を用いて、所定の時刻以前 (または以後) のみアクセスを許可する、といった指定をすることができます。

ポリシーを生成するコード例を示します。 あるAWSアカウントに対し、所定のAmazon SQSキューを使って、メッセージを送受信することを許可する、というポリシーです。

        Policy policy = new Policy("MyQueuePolicy");
        policy.withStatements(new Statement(Effect.Allow)
               .withPrincipals(new Principal("123456789012"))
               .withActions(SQSActions.SendMessage, SQSActions.ReceiveMessage)
               .withResources(new SQSQueueResource("987654321000", "queue2")));

生成したポリシーは、サービスに組み込まれたメソッドを使って、AWSにアップロードする必要があります。