

# Amazon S3 での IAM の機能
<a name="security_iam_service-with-iam"></a>

IAM を使用して Amazon S3 へのアクセスを管理する前に、Amazon S3 で利用できる IAM 機能について理解しておく必要があります。






**Amazon S3 で使用できる IAM の機能**  

| IAM 機能 | Amazon S3 のサポート | 
| --- | --- | 
| [アイデンティティベースのポリシー](#security_iam_service-with-iam-id-based-policies) |  あり | 
| [リソースベースのポリシー](#security_iam_service-with-iam-resource-based-policies) |  はい | 
| [ポリシーアクション](#security_iam_service-with-iam-id-based-policies-actions) |  あり | 
| [ポリシーリソース](#security_iam_service-with-iam-id-based-policies-resources) |  はい | 
| [ポリシー条件キー (サービス固有)](#security_iam_service-with-iam-id-based-policies-conditionkeys) |  はい | 
| [ACL](#security_iam_service-with-iam-acls) |  はい | 
| [ABAC (ポリシー内のタグ)](#security_iam_service-with-iam-tags) |  部分的 | 
| [一時認証情報](#security_iam_service-with-iam-roles-tempcreds) |  あり | 
| [転送アクセスセッション (FAS)](#security_iam_service-with-iam-principal-permissions) |  あり | 
| [サービスロール](#security_iam_service-with-iam-roles-service) |  あり | 
| [サービスリンクロール](#security_iam_service-with-iam-roles-service-linked) |  部分的 | 

Amazon S3 およびその他の AWS サービスがほとんどの IAM 機能との連携する方法の詳細については、「IAM ユーザーガイド」の「[IAM と連携する AWS サービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。**

S3 リソースタイプ別の S3 API オペレーションへのアクセス許可の詳細については、「[Amazon S3 API オペレーションに必要なアクセス許可](using-with-s3-policy-actions.md)」を参照してください。

## Amazon S3 のアイデンティティベースのポリシー
<a name="security_iam_service-with-iam-id-based-policies"></a>

**アイデンティティベースのポリシーのサポート:** あり

アイデンティティベースポリシーは、IAM ユーザー、ユーザーグループ、ロールなど、アイデンティティにアタッチできる JSON 許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。アイデンティティベースポリシーの作成方法については、「*IAM ユーザーガイド*」の「[カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)」を参照してください。

IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、およびアクションを許可または拒否する条件を指定できます。JSON ポリシーで使用できるすべての要素について学ぶには、「*IAM ユーザーガイド*」の「[IAM JSON ポリシーの要素のリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)」を参照してください。

### Amazon S3 のアイデンティティベースのポリシー例
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>

Amazon S3 のアイデンティティベースのポリシー例を確認するには、「[Amazon S3 のアイデンティティベースのポリシー](security_iam_id-based-policy-examples.md)」を参照してください。

## Amazon S3 内のリソースベースのポリシー
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**リソースベースのポリシーのサポート:** あり

リソースベースのポリシーは、リソースに添付する JSON ポリシードキュメントです。リソースベースのポリシーには例として、IAM *ロールの信頼ポリシー* や Amazon S3 *バケットポリシー* があげられます。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスをコントロールできます。ポリシーがアタッチされているリソースの場合、指定されたプリンシパルがそのリソースに対して実行できるアクションと条件は、ポリシーによって定義されます。リソースベースのポリシーで、[プリンシパルを指定する](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)必要があります。プリンシパルには、アカウント、ユーザー、ロール、フェデレーションユーザー、または AWS のサービス を含めることができます。

クロスアカウントアクセスを有効にするには、全体のアカウント、または別のアカウントの IAM エンティティを、リソースベースのポリシーのプリンシパルとして指定します。詳細については、IAM ユーザーガイド**の[IAM でのクロスアカウントリソースアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)を参照してください。

Amazon S3 サービスは、*バケットポリシー*、*アクセスポイントポリシー*、および*アクセス許可*をサポートします。
+ バケットポリシーは、Amazon S3 バケットにアタッチされるリソースベースのポリシーです。リソースポリシーは、バケットに対してアクションを実行できるプリンシパルを定義します。
+ アクセスポイントポリシーは、基になるバケットポリシーと組み合わせて評価されるリソースベースのポリシーです。
+ アクセス許可は、Amazon S3 内のデータへのアクセス許可をプレフィックス、バケット、またはオブジェクトごとに定義するための簡略化されたモデルです。S3 Access Grants の詳細については、「[S3 Access Grants でのアクセス管理](access-grants.md)」を参照してください。

### バケットポリシーのプリンシパル
<a name="s3-bucket-user-policy-specifying-principal-intro"></a>

`Principal` エレメントは、リソースへのアクセスを許可または拒否するユーザー、アカウント、サービス、または他のエンティティを指定します。`Principal` を指定する例を以下に示します。詳細については、「*IAM ユーザーガイド*」の「[プリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)」を参照してください。

#### AWS アカウントに許可を付与する
<a name="s3-aws-account-permissions"></a>

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

```
"AWS":"{{account-ARN}}"
```

次に例を示します。

```
"Principal":{"AWS":"arn:aws:iam::{{AccountIDWithoutHyphens}}:root"}
```

```
"Principal":{"AWS":["arn:aws:iam::{{AccountID1WithoutHyphens}}:root","arn:aws:iam::{{AccountID2WithoutHyphens}}:root"]}
```

**注記**  
上記の例では、アカウントレベルにアクセス許可を委任する権限をルートユーザーに付与します。ただし、アカウント内の特定のロールとユーザーに対しては、IAM ポリシーが引き続き必要です。

#### IAM ユーザーにアクセス許可を付与する
<a name="s3-aws-user-permissions"></a>

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

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

ステップバイステップの手順を説明する詳細な例については、[例 1: バケット所有者がユーザーにバケットのアクセス許可を付与する](example-walkthroughs-managing-access-example1.md) および [例 3: バケット所有者が自分の所有していないオブジェクトに対するアクセス許可を付与する](example-walkthroughs-managing-access-example3.md) を参照してください。

**注記**  
バケットポリシーを更新した後に IAM ID を削除すると、バケットポリシーのプリンシパル要素には ARN の代わりに一意の ID が表示されます。これらの一意な ID は再利用されることがないため、すべてのポリシーステートメントから一意の ID を持つプリンシパルを安全に削除できます。一意の ID の詳細については、「*IAM ユーザーガイド*」の「[IAM ID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids)」を参照してください。

#### 匿名アクセス許可を付与する
<a name="s3-anonymous-permissions"></a>

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

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

```
"Principal":"*"
```

```
"Principal":{"AWS":"*"}
```

リソースベースのポリシーで、`"Principal": "*"` 効果と共に `Allow` を使用すると、AWS にサインしていなくても、誰でもリソースにアクセスできるようになります。

リソースベースのポリシーで、`Allow` 効果と共に `"Principal" : { "AWS" : "*" }` を使用すると、同じパーティションのどのアカウントのルートユーザー、IAM ユーザー、引き受けたロールのセッション、フェデレーティッドユーザーでも、リソースにアクセスできるようになります。

匿名ユーザーの場合、これら 2 つの方法は同等です。詳細については、「*IAM ユーザーガイド*」の「[すべてのプリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-anonymous)」を参照してください。

ワイルドカードとして使用して、プリンシパルの名前または ARN の一部に一致させることはできません。

**重要**  
AWS アクセスコントロールポリシーでは、プリンシパル "\*" と {"AWS": "\*"} は同じように動作します。

#### リソースのアクセス許可の制限
<a name="s3-restrict-permissions"></a>

リソースポリシーを使用して、それ以外の場合は IAM プリンシパルで利用できるリソースへのアクセスを制限することもできます。`Deny` ステートメントを使用してアクセスを防止します。

次の例では、安全な転送プロトコルが使用されていない場合はアクセスをブロックします。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyBucketAccessIfSTPNotUsed",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}",
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        }
      }
    }
  ]
}
```

------

このポリシーでは、この方法を使用して特定のアカウントやプリンシパルのみへのアクセスの拒否を試みるのではなく、`"Principal": "*"` を使用して、この制限をすべてのユーザーに適用することがベストプラクティスです。

#### CloudFront の URL を使用したアクセスの要求
<a name="require-cloudfront-urls"></a>

Amazon S3 の URL の代わりに CloudFront の URL を使用することで、ユーザーが Amazon S3 のコンテンツのみにアクセスするように制限することができます。これを行うには、CloudFront オリジンアクセスコントロール (OAC) を作成します。その後、S3 データのアクセス許可を変更します。バケットポリシーでは、次のように CloudFront をプリンシパルとして設定できます。

```
"Principal":{"Service":"cloudfront.amazonaws.com"}
```

ポリシーの `Condition` 要素を使用して、S3 オリジンを含む CloudFront ディストリビューションに代わってリクエストが行われた場合にのみ CloudFront がバケットにアクセスできるようにします。

```
        "Condition": {
           "StringEquals": {
              "AWS:SourceArn": "arn:aws:cloudfront::{{111122223333}}:distribution/{{CloudFront-distribution-ID}}"
           }
        }
```

CloudFront URL を使用した S3 アクセスの制限の詳細については、「Amazon CloudFront 開発者ガイド」の「[Amazon Simple Storage Service オリジンへのアクセスの制限](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html)」を参照してください。**Amazon CloudFront を使用する場合のセキュリティとプライバシーのメリットの詳細については、「[コンテンツへのセキュアなアクセスとアクセス制限の設定](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/SecurityAndPrivateContent.html)」を参照してください。

### Amazon S3 のリソースベースポリシーの例
<a name="security_iam_service-with-iam-resource-based-policies-examples"></a>
+ Amazon S3 バケットポリシーの例については、「[Amazon S3 のバケットポリシー](bucket-policies.md)」を参照してください。
+ アクセスポイントのポリシーの例については、「[アクセスポイントを使用するための IAM ポリシーの設定](access-points-policies.md)」を参照してください。

## Amazon S3 のポリシーアクション
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**ポリシーアクションのサポート:** あり

管理者は AWS JSON ポリシーを使用して、だれが何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどのような**リソース**にどのような**条件**で**アクション**を実行できるかということです。

JSON ポリシーの `Action` 要素にはポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。このアクションは関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。

以下に、S3 API オペレーションと必要なポリシーアクション間のさまざまなタイプのマッピング関係を示します。
+ 同じ名前の 1 対 1 のマッピング。例えば、 `PutBucketPolicy` API オペレーションを使用するには、`s3:PutBucketPolicy` ポリシーアクションが必要です。
+ 異なる名前の 1 対 1 のマッピング。例えば、 `ListObjectsV2` API オペレーションを使用するには、`s3:ListBucket` ポリシーアクションが必要です。
+ 1 対多のマッピング。例えば、`HeadObject` API オペレーションを使用するには、`s3:GetObject` が必要です。また、S3 オブジェクトロックを使用し、オブジェクトのリーガルホールドステータスまたは保持設定を取得したい場合は、`HeadObject` API オペレーションを使用する前に、対応する `s3:GetObjectLegalHold` または `s3:GetObjectRetention` ポリシーアクションも必要です。
+ 1 対多のマッピング。例えば、`ListObjectsV2` または `HeadBucket` API オペレーションを使用するには、`s3:ListBucket` ポリシーアクションが必要です。



ポリシーで使用する Amazon S3 アクションの一覧については、「サービス認可リファレンス」の「[Amazon S3 で定義されるアクション](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-actions-as-permissions)」を参照してください。**Amazon S3 API オペレーションの完全なリストについては、「*Amazon Simple Storage Service API リファレンス*」の「[Amazon S3 API アクション](https://docs.aws.amazon.com//AmazonS3/latest/API/API_Operations.html)」を参照してください。

S3 リソースタイプ別の S3 API オペレーションへのアクセス許可の詳細については、「[Amazon S3 API オペレーションに必要なアクセス許可](using-with-s3-policy-actions.md)」を参照してください。

Amazon S3 のポリシーアクションは、アクションの前に次のプレフィックスを使用します。

```
s3
```

単一のステートメントで複数のアクションを指定するには、アクションをカンマで区切ります。

```
"Action": [
      "s3:{{action1}}",
      "s3:{{action2}}"
         ]
```





### バケットオペレーション
<a name="using-with-s3-actions-related-to-buckets"></a>

バケットオペレーションは、バケットリソースタイプで動作する S3 API オペレーションです。例: `CreateBucket`、`ListObjectsV2`、`PutBucketPolicy`。バケットオペレーションの S3 ポリシーアクションでは、バケットポリシーの `Resource` 要素または IAM アイデンティティベースのポリシーが、次の例形式の S3 バケットタイプの Amazon リソースネーム (ARN) 識別子である必要があります。

```
"Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}"
```

次のバケットポリシーは、アカウント `{{12345678901}}` のユーザー `{{Akua}}` に [https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutObject.html) API オペレーションを実行し、S3 バケット内のオブジェクトを一覧表示する `s3:ListBucket` アクセス許可を付与します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Allow Akua to list objects in the bucket",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{111122223333}}:user/Akua"
            },
            "Action": [
            "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}"
        }
    ]
}
```

------
<a name="bucket-operations-ap"></a>
**汎用バケットのアクセスポイントのポリシーでのバケットオペレーション**  
汎用バケットのアクセスポイントポリシーで付与されるアクセス許可は、基になるバケットで同じアクセス許可が許可される場合にのみ有効です。S3 アクセスポイントを使用する場合は、バケットからアクセスポイントにアクセスコントロールを委任するか、アクセスポイントポリシーで同じアクセス許可を基礎となるバケットのポリシーに追加する必要があります。詳細については、「[アクセスポイントを使用するための IAM ポリシーの設定](access-points-policies.md)」を参照してください。アクセスポイントポリシーでは、バケットオペレーションの S3 ポリシーアクションで、次の形式の `Resource` 要素にアクセスポイント ARN を使用する必要があります。

```
"Resource": "arn:aws:s3:{{us-west-2}}:{{123456789012}}:accesspoint/{{example-access-point}}"
```

次のアクセスポイントポリシーは、`{{example-access-point}}` という名前の S3 アクセスポイントを介して [https://docs.aws.amazon.com//AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_ListObjectsV2.html) API オペレーションを実行する `s3:ListBucket` アクセス許可をアカウント `{{12345678901}}` のユーザー `{{Akua}}` に付与します。このアクセス許可により、`{{Akua}}` は `{{example-access-point}}` に関連付けられているバケット内のオブジェクトを一覧表示できます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAkuaToListObjectsInBucketThroughAccessPoint",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{111122223333}}:user/{{Akua}}"
            },
            "Action": [
            "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3:{{us-west-2}}:{{111122223333}}:accesspoint/{{example-access-point}}"
        }
    ]
}
```

------

**注記**  
すべてのバケットオペレーションが汎用バケットのアクセスポイントでサポートされているわけではありません。詳細については、「[S3 オペレーションとアクセスポイントの互換性](access-points-service-api-support.md#access-points-operations-support)」を参照してください。
<a name="bucket-operations-ap-directory-buckets"></a>
**ディレクトリバケットのアクセスポイントのポリシーでのバケットオペレーション**  
ディレクトリバケットのアクセスポイントポリシーで付与されるアクセス許可は、基になるバケットで同じアクセス許可が許される場合にのみ有効です。S3 アクセスポイントを使用する場合は、バケットからアクセスポイントにアクセスコントロールを委任するか、アクセスポイントポリシーで同じアクセス許可を基礎となるバケットのポリシーに追加する必要があります。詳細については、「[ディレクトリバケットのアクセスポイントを使用するための IAM ポリシーの設定](access-points-directory-buckets-policies.md)」を参照してください。アクセスポイントポリシーでは、バケットオペレーションの S3 ポリシーアクションで、次の形式の `Resource` 要素にアクセスポイント ARN を使用する必要があります。

```
"Resource": "arn:aws:s3:{{us-west-2}}:{{123456789012}}:accesspoint/{{example-access-point--usw2-az1--xa-s3}}"
```

次のアクセスポイントポリシーは、`{{example-access-point--usw2-az1--xa-s3}}` という名前のアクセスポイントを介して [https://docs.aws.amazon.com//AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_ListObjectsV2.html) API オペレーションを実行する `s3:ListBucket` アクセス許可をアカウント `{{12345678901}}` のユーザー `{{Akua}}` に付与します。このアクセス許可により、`{{Akua}}` は `{{example-access-point--usw2-az1--xa-s3}}` に関連付けられているバケット内のオブジェクトを一覧表示できます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAkuaToListObjectsInTheBucketThroughAccessPoint",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/Akua"
            },
            "Action": [
            "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3express:us-east-1:111122223333:accesspoint/example-access-point-usw2-az1-xa-s3"
        }
    ]
}
```

------

**注記**  
すべてのバケットオペレーションがディレクトリバケットのアクセスポイントでサポートされているわけではありません。詳細については、「[ディレクトリバケットのアクセスポイントのオブジェクトオペレーション](access-points-directory-buckets-service-api-support.md)」を参照してください。

### オブジェクト操作
<a name="using-with-s3-actions-related-to-objects"></a>

オブジェクトオペレーションは、オブジェクトリソースタイプに基づいて実行される S3 API オペレーションです。例: `GetObject`、`PutObject`、`DeleteObject`。オブジェクトオペレーションの S3 ポリシーアクションでは、ポリシーの `Resource` 要素を次の例の形式で S3 オブジェクト ARN にする必要があります。

```
"Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}/*"
```

```
"Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}/{{prefix}}/*"
```

**注記**  
前の例に示すように、オブジェクト ARN にはバケット名の後にスラッシュが含まれている必要があります。

以下のバケットポリシーは、アカウント `{{12345678901}}` のユーザー `{{Akua}}` に `s3:PutObject` の許可を付与します。このアクセス許可により、`{{Akua}}` は [https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutObject.html) API オペレーションを使用して、`{{amzn-s3-demo-bucket}}` という名前の S3 バケットにオブジェクトをアップロードできるようになります。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Allow {{Akua}} to upload objects",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{111122223333}}:user/{{Akua}}"
            },
            "Action": [
            "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}/*"
        }
    ]
}
```

------
<a name="object-operations-ap"></a>
**アクセスポイントポリシーでのオブジェクトオペレーション**  
S3 アクセスポイントを使用してオブジェクトオペレーションへのアクセスを制御する場合、アクセスポイントポリシーを使用できます。アクセスポイントポリシーを使用するとき、オブジェクトオペレーションの S3 ポリシーアクションで、`arn:aws:s3:{{region}}:{{account-id}}:accesspoint/{{access-point-name}}/object/{{resource}}` 形式の `Resource` 要素にアクセスポイント ARN を使用する必要があります。アクセスポイントを使用するオブジェクトオペレーションの場合、アクセスポイント ARN 全体の後に `/object/` 値を `Resource` 要素に含める必要があります。次に例を示します。

```
"Resource": "arn:aws:s3:{{us-west-2}}:{{123456789012}}:accesspoint/{{example-access-point}}/object/*"
```

```
"Resource": "arn:aws:s3:{{us-west-2}}:{{123456789012}}:accesspoint/{{example-access-point}}/object/{{prefix}}/*"
```

次のアクセスポイントポリシーは、アカウント `{{12345678901}}` のユーザー `{{Akua}}` に `s3:GetObject` アクセス許可を付与します。このアクセス許可により、`{{Akua}}` は、アクセスポイントに関連付けられているバケット内のすべてのオブジェクトに対して、`{{example-access-point}}` という名前のアクセスポイントを介して [https://docs.aws.amazon.com//AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_GetObject.html) API オペレーションを実行できます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Allow {{Akua}} to get objects through access point",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{111122223333}}:user/{{Akua}}"
            },
            "Action": [
            "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:{{us-east-1}}:{{111122223333}}:accesspoint/{{example-access-point}}/object/*"
        }
    ]
}
```

------

**注記**  
すべてのオブジェクトオペレーションがアクセスポイントでサポートされているわけではありません。詳細については、「[S3 オペレーションとアクセスポイントの互換性](access-points-service-api-support.md#access-points-operations-support)」を参照してください。
<a name="object-operations-ap-directory-buckets"></a>
**ディレクトリバケットのアクセスポイントのポリシーでのオブジェクトオペレーション**  
ディレクトリバケットのアクセスポイントを使用してオブジェクトオペレーションへのアクセスを制御する場合、アクセスポイントポリシーを使用できます。アクセスポイントポリシーを使用するとき、オブジェクトオペレーションの S3 ポリシーアクションで、`arn:aws:s3:{{region}}:{{account-id}}:accesspoint/{{access-point-name}}/object/{{resource}}` 形式の `Resource` 要素にアクセスポイント ARN を使用する必要があります。アクセスポイントを使用するオブジェクトオペレーションの場合、アクセスポイント ARN 全体の後に `/object/` 値を `Resource` 要素に含める必要があります。次に例を示します。

```
"Resource": "arn:aws:s3express:{{us-west-2}}:{{123456789012}}:accesspoint/{{example-access-point--usw2-az1--xa-s3}}/object/*"
```

```
"Resource": "arn:aws:s3express:{{us-west-2}}:{{123456789012}}:accesspoint/{{example-access-point--usw2-az1--xa-s3}}/object/{{prefix}}/*"
```

次のアクセスポイントポリシーは、アカウント `{{12345678901}}` のユーザー `{{Akua}}` に `s3:GetObject` アクセス許可を付与します。このアクセス許可により、`{{Akua}}` は、アクセスポイントに関連付けられているバケット内のすべてのオブジェクトに対して、`{{example-access-point--usw2-az1--xa-s3}}` という名前のアクセスポイントを介して [https://docs.aws.amazon.com//AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_GetObject.html) API オペレーションを実行できます。

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "Allow {{Akua}} to get objects through access point",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{12345678901}}:user/{{Akua}}"
            },
            "Action": "s3express:CreateSession","s3:GetObject"
            "Resource": "arn:aws:s3:{{us-west-2}}:{{123456789012}}:accesspoint/{{example-access-point--usw2-az1--xa-s3}}/object/*"
        }
    ]
}
```

**注記**  
すべてのオブジェクトオペレーションがディレクトリバケットのアクセスポイントでサポートされているわけではありません。詳細については、「[ディレクトリバケットのアクセスポイントのオブジェクトオペレーション](access-points-directory-buckets-service-api-support.md)」を参照してください。

### 汎用バケットオペレーションのアクセスポイント
<a name="using-with-s3-actions-related-to-accesspoint"></a>

アクセスポイントオペレーションは、`accesspoint` リソースタイプで動作する S3 API オペレーションです。例: `CreateAccessPoint`、`DeleteAccessPoint`、`GetAccessPointPolicy`。アクセスポイントオペレーションの S3 ポリシーアクションは、バケットポリシーやアクセスポイントポリシーではなく、IAM アイデンティティベースのポリシーでのみ使用できます。アクセスポイントオペレーションでは、`Resource` 要素を次の例の形式のアクセスポイント ARN にする必要があります。

```
"Resource": "arn:aws:s3:{{us-west-2}}:{{123456789012}}:accesspoint/{{example-access-point}}"
```

次の IAM アイデンティティベースのポリシーは、`{{example-access-point}}` という名前の S3 アクセスポイントで [https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_GetAccessPointPolicy.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_GetAccessPointPolicy.html) API オペレーションを実行する `s3:GetAccessPointPolicy` アクセス許可を付与します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GrantPermissionToRetrieveTheAccessPointPolicyOfAccessPointExampleAccessPoint",
            "Effect": "Allow",
            "Action": [
            "s3:GetAccessPointPolicy"
            ],
            "Resource": "arn:aws:s3:*:{{123456789012}}:accesspoint/{{example-access-point}}"
        }
    ]
}
```

------

アクセスポイントを使用してバケットオペレーションへのアクセスを制御する場合は、「[汎用バケットのアクセスポイントのポリシーでのバケットオペレーション](#bucket-operations-ap)」を参照してください。オブジェクトオペレーションへのアクセスを制御するには、「[アクセスポイントポリシーでのオブジェクトオペレーション](#object-operations-ap)」を参照してください。アクセスポイントポリシーの設定方法の詳細については、「[アクセスポイントを使用するための IAM ポリシーの設定](access-points-policies.md)」を参照してください。

### ディレクトリバケットオペレーションのアクセスポイント
<a name="using-with-s3-actions-related-to-accesspoint-directory-buckets"></a>

ディレクトリバケットオペレーションのアクセスポイントは、`accesspoint` リソースタイプで動作する S3 API オペレーションです。例: `CreateAccessPoint`、`DeleteAccessPoint`、`GetAccessPointPolicy`。アクセスポイントオペレーションの S3 ポリシーアクションは、バケットポリシーやアクセスポイントポリシーではなく、IAM アイデンティティベースのポリシーでのみ使用できます。ディレクトリバケットオペレーションのアクセスポイントでは、`Resource` 要素を次の例の形式のアクセスポイント ARN にする必要があります。

```
"Resource": "arn:aws:s3:{{us-west-2}}:{{123456789012}}:accesspoint/{{example-access-point--usw2-az1--xa-s3}}"
```

次の IAM アイデンティティベースのポリシーは、`{{example-access-point--usw2-az1--xa-s3}}` という名前のアクセスポイントで [https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_GetAccessPointPolicy.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_GetAccessPointPolicy.html) API オペレーションを実行する `s3express:GetAccessPointPolicy` アクセス許可を付与します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GrantPermissionToRetrieveTheAccessPointPolicyOfAccessPointExampleAccessPointUsw2Az1XaS3",
            "Effect": "Allow",
            "Action": [
            "s3express:CreateSession","s3express:GetAccessPointPolicy"
            ],
            "Resource": "arn:aws:s3:*:{{111122223333}}:accesspoint/{{example-access-point}}"
        }
    ]
}
```

------

次の IAM アイデンティティベースのポリシーは、ディレクトリバケットのアクセスポイントを作成する `s3express:CreateAccessPoint` アクセス許可を付与します。

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "Grant CreateAccessPoint.",
            "Principal": "*",
            "Action": "s3express:CreateSession",
            "s3express:CreateAccessPoint""Effect": "Allow",
            "Resource": "*"
        }
    ]
}
```

次の IAM アイデンティティベースのポリシーは、ディレクトリバケットのアクセスポイントのアクセスポイント範囲を作成する `s3express:PutAccessPointScope` アクセス許可を付与します。

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "Grant PutAccessPointScope",
            "Principal": "*",
            "Action": "s3express:CreateSession",
            "s3express:CreateAccessPoint",
            "S3Express:PutAccessPointScope""Effect": "Allow",
            "Resource": "*",
        }
    ]
}
```

ディレクトリバケットのアクセスポイントを使用してバケットオペレーションへのアクセスを制御する場合は、「[ディレクトリバケットのアクセスポイントのポリシーでのバケットオペレーション](#bucket-operations-ap-directory-buckets)」を参照してください。オブジェクトオペレーションへのアクセスを制御するには、「[ディレクトリバケットのアクセスポイントのポリシーでのオブジェクトオペレーション](#object-operations-ap-directory-buckets)」を参照してください。ディレクトリバケットのアクセスポイントポリシーの設定方法の詳細については、「[ディレクトリバケットのアクセスポイントを使用するための IAM ポリシーの設定](access-points-directory-buckets-policies.md)」を参照してください。

### Object Lambda アクセスポイントオペレーション
<a name="using-with-s3-actions-related-to-olap"></a>

Amazon S3 Object Lambda を使用すると、Amazon S3 `GET`、`LIST`、`HEAD` リクエストに独自のコードを追加して、データがアプリケーションに返されるときにそのデータを変更および処理できます。Object Lambda アクセスポイントを介したリクエストは、他のアクセスポイントを介したリクエストと同様に行うことができます。詳細については、「[S3 Object Lambda を使用したオブジェクトの変換](transforming-objects.md)」を参照してください。

Object Lambda アクセスポイントオペレーションのポリシーを設定する方法についての詳細は、「[Object Lambda アクセスポイントの IAM ポリシーの設定](olap-policies.md)」を参照してください。

### マルチリージョンアクセスポイントオペレーション
<a name="using-with-s3-actions-related-to-mrap"></a>

マルチリージョンアクセスポイントを使用すると、複数の AWS リージョン にある S3 バケットからのリクエストをアプリケーションが実行するために使用できるグローバルエンドポイントを作成できます。マルチリージョンアクセスポイントを使用して、単一のリージョンで使用するのと同じシンプルなアーキテクチャでマルチリージョンアプリケーションを構築し、世界中のどこでもこれらのアプリケーションを実行することができます。詳細については、「[マルチリージョンアクセスポイントを使用したマルチリージョントラフィックの管理](MultiRegionAccessPoints.md)」を参照してください。

マルチリージョンアクセスポイントオペレーションのポリシーを設定する方法の詳細については、「[マルチリージョンアクセスポイントポリシーの例](MultiRegionAccessPointPermissions.md#MultiRegionAccessPointPolicyExamples)」を参照してください。

### バッチジョブオペレーション
<a name="using-with-s3-actions-related-to-batchops"></a>

(バッチオペレーション) ジョブオペレーションは、ジョブリソースタイプで動作する S3 API オペレーションです。例えば、`DescribeJob` と `CreateJob` です。ジョブオペレーションの S3 ポリシーアクションは、バケットポリシーではなく、IAM アイデンティティベースのポリシーでのみ使用できます。また、ジョブオペレーションでは、IAM アイデンティティベースのポリシーの `Resource` 要素を次の例の形式の `job` ARN にする必要があります。

```
"Resource": "arn:aws:s3:*:{{123456789012}}:job/*"
```

次の IAM アイデンティティベースのポリシーは、`{{example-job}}` という名前の S3 バッチオペレーションジョブに対して [DescribeJob](https://docs.aws.amazon.com//AmazonS3/latest/API/API_DescribeJob.html) API オペレーションを実行する `s3:DescribeJob` アクセス許可を付与します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowDescribingBatchOperationJob",
            "Effect": "Allow",
            "Action": [
            "s3:DescribeJob"
            ],
            "Resource": "arn:aws:s3:*:{{111122223333}}:job/{{example-job}}"
        }
    ]
}
```

------

### S3 Storage Lens 設定オペレーション
<a name="using-with-s3-actions-related-to-lens"></a>

S3 Storage Lens 設定オペレーションの設定方法の詳細については、「[Amazon S3 ストレージレンズアクセス許可の設定](storage_lens_iam_permissions.md)」を参照してください。

### アカウントオペレーション
<a name="using-with-s3-actions-related-to-accounts"></a>

アカウントオペレーションは、アカウントレベルで実行される S3 API オペレーションです。例えば、`GetPublicAccessBlock` (アカウント用) です。アカウントは、Amazon S3 で定義されるリソースタイプではありません。アカウントオペレーションの S3 ポリシーアクションは、バケットポリシーではなく、IAM アイデンティティベースのポリシーでのみ使用できます。また、アカウントオペレーションでは、IAM アイデンティティベースのポリシーの `Resource` 要素が `"*"` である必要があります。

次の IAM アイデンティティベースのポリシーは、アカウントレベルの [https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_GetPublicAccessBlock.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_GetPublicAccessBlock.html) API オペレーションを実行し、アカウントレベルのパブリックアクセスブロック設定を取得するために `s3:GetAccountPublicAccessBlock` アクセス許可を付与します。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowRetrievingTheAccountLevelPublicAccessBlockSettings",
         "Effect":"Allow",
         "Action":[
            "s3:GetAccountPublicAccessBlock" 
         ],
         "Resource":[
            "*"
         ]
       }
    ]
}
```

------

### Amazon S3 のポリシーの例
<a name="security_iam_service-with-policies-examples-actions"></a>
+ Amazon S3 のアイデンティティベースのポリシー例を確認するには、「[Amazon S3 のアイデンティティベースのポリシー](security_iam_id-based-policy-examples.md)」を参照してください。
+ Amazon S3 のリソースベースのポリシー例を確認するには、「[Amazon S3 のバケットポリシー](bucket-policies.md)」および「[アクセスポイントを使用するための IAM ポリシーの設定](access-points-policies.md)」を参照してください。

## Amazon S3 のポリシーリソース
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**ポリシーリソースのサポート:** あり

管理者は AWS JSON ポリシーを使用して、だれが何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどの**リソース**に対してどのような**条件下で****アクション**を実行できるかということです。

`Resource` JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ベストプラクティスとして、[Amazon リソースネーム (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) を使用してリソースを指定します。リソースレベルの権限をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (\*) を使用します。

```
"Resource": "*"
```

一部の Amazon S3 API アクションは複数のリソースをサポートします。例えば、`s3:GetObject` は `{{example-resource-1}}` と `{{example-resource-2}}` にアクセスするため、プリンシパルには両方のリソースにアクセスする許可が必要です。1 つのステートメントで複数のリソースを指定するには、次の例に示すように、ARN をカンマで区切ります。

```
"Resource": [
      "{{example-resource-1}}",
      "{{example-resource-2}}"
```

Amazon S3 のリソースは、バケット、オブジェクト、アクセスポイント、またはジョブです。ポリシーでは、バケット、オブジェクト、アクセスポイント、またはジョブの Amazon リソースネーム (ARN) を使用してリソースを識別します。

Amazon S3 リソースタイプとその ARN の完全なリストについては、「サービス認可リファレンス」の「[Resources defined by Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-resources-for-iam-policies)」を参照してください。**どのアクションで各リソースの ARN を指定できるかについては、「[Amazon S3 で定義されるアクション](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-actions-as-permissions)」を参照してください。

S3 リソースタイプ別の S3 API オペレーションへのアクセス許可の詳細については、「[Amazon S3 API オペレーションに必要なアクセス許可](using-with-s3-policy-actions.md)」を参照してください。

### リソース ARN のワイルドカード文字
<a name="s3-arn-wildcards"></a>

リソース ARN の一部にワイルドカードを使用できます。ARN セグメント (コロンで区切られている部分) でワイルドカード文字 (`*` と `?`) を使用できます。アスタリスク (`*`) は 0 個以上の文字の任意の組み合わせを表し、疑問符 (`?`) は任意の 1 文字を表します。各セグメントで複数の `*` または `?` 文字を使用できます。ただし、ワイルドカード文字はセグメントをまたぐことはできません。
+ 以下の ARN は ARN の `relative-ID` の部分でワイルドカード文字 `*` を使用して、`{{amzn-s3-demo-bucket}}` バケット内のすべてのオブジェクトを識別します。

  ```
  1. arn:aws:s3:::{{amzn-s3-demo-bucket}}/*
  ```
+ 次の ARN は `*` を使用して、S3 のすべてのバケットとオブジェクトを示しています。

  ```
  arn:aws:s3:::*
  ```
+ 以下の ARN は、`relative-ID` の部分で、`*` および `?` の両方のワイルドカード文字を使用します。この ARN により、{{`amzn-s3-demo-example1bucket`}}、`{{amzn-s3-demo-example2bucket}}`、`{{amzn-s3-demo-example3bucket}}` など、バケット内のすべてのオブジェクトを識別します。

  ```
  1. arn:aws:s3:::{{amzn-s3-demo-example}}?{{bucket}}/*
  ```

### リソース ARN のポリシー変数
<a name="s3-policy-variables"></a>

Amazon S3 の ARN では、ポリシー変数を使用することもできます。あらかじめ定義されているこれらの変数は、ポリシーの評価時に対応する値で置き換えられます。例えば、バケットをフォルダのコレクションとして構成し、ユーザーごとに別のフォルダを使用するとします。フォルダ名はユーザー名と同じです。各ユーザーに自分のフォルダに対するアクセス許可を付与するには、リソース ARN で以下のようにポリシー変数を指定します。

```
arn:aws:s3:::{{bucket_name}}/{{developers}}/${aws:username}/
```

実行時にポリシーが評価されると、リソース ARN の変数 `${aws:username}` には、リクエストを行うユーザーのユーザー名が挿入されます。





### Amazon S3 のポリシーの例
<a name="security_iam_service-with-policies-examples-resources"></a>
+ Amazon S3 のアイデンティティベースのポリシー例を確認するには、「[Amazon S3 のアイデンティティベースのポリシー](security_iam_id-based-policy-examples.md)」を参照してください。
+ Amazon S3 のリソースベースのポリシー例を確認するには、「[Amazon S3 のバケットポリシー](bucket-policies.md)」および「[アクセスポイントを使用するための IAM ポリシーの設定](access-points-policies.md)」を参照してください。

## Amazon S3 のポリシー条件キー
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**サービス固有のポリシー条件キーのサポート:** あり

管理者は AWS JSON ポリシーを使用して、だれが何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどんな**リソース**にどんな**条件**で**アクション**を実行できるかということです。

`Condition` 要素は、定義された基準に基づいてステートメントが実行される時期を指定します。イコールや未満などの[条件演算子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)を使用して条件式を作成して、ポリシーの条件とリクエスト内の値を一致させることができます。すべての AWS グローバル条件キーを確認するには、*IAM ユーザーガイド*の[AWS グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)を参照してください。

各 Amazon S3 条件キーは、その条件を設定できる API でサポートされている同じ名前のリクエストヘッダーに対応します。Amazon S3 固有の条件キーでは、同じ名前のリクエストヘッダーの動作が指定されます。例えば、アクセス許可 `s3:GetObjectVersion` に対して条件付きのアクセス許可を付与する条件キー `s3:VersionId` は、GET Object リクエストで設定する `versionId` クエリパラメータの動作を定義します。

Amazon S3 の条件キーのリストを確認するには、「サービス認可リファレンス」の「*Condition keys for Amazon S3*」を参照してください。[https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-policy-keys](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-policy-keys)どのアクションおよびリソースで条件キーを使用できるかについては、「[Amazon S3 で定義されるアクション](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-actions-as-permissions)」を参照してください。

### 例: オブジェクトのアップロードを特定のストレージクラスのオブジェクトに制限する
<a name="example-storage-class-condition-key"></a>

アカウント ID `{{123456789012}}` で表されているアカウント A がバケットを所有しているとします。アカウント A の管理者は、アカウント A のユーザーである {{`Dave`}} に対して、`STANDARD_IA` ストレージクラスにオブジェクトが保存されている場合にのみ {{`Dave`}} がバケットにオブジェクトをロードすることを許可するとします。オブジェクトのアップロードを特定のストレージクラスに制限するために、アカウント A の管理者は、次のバケットポリシーの例に示すように `s3:x-amz-storage-class` 条件キーを使用できます。

------
#### [ JSON ]

****  

```
{
                 "Version":"2012-10-17",		 	 	 
                 "Statement": [
                   {
                     "Sid": "statement1",
                     "Effect": "Allow",
                     "Principal": {
                       "AWS": "arn:aws:iam::{{123456789012}}:user/{{Dave}}"
                     },
                     "Action": "s3:PutObject",
                     "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*",
                     "Condition": {
                       "StringEquals": {
                         "s3:x-amz-storage-class": [
                           "STANDARD_IA"
                         ]
                       }
                     }
                   }
                 ]
            }
```

------

この例で、`Condition` ブロックは指定されたキーと値のペア `StringEquals` に適用される `"s3:x-amz-acl":["public-read"]` 条件を指定します。条件の表現に使用できる、事前に定義された一連のキーがあります。この例では、`s3:x-amz-acl` 条件キーを使用しています。この条件では、`public-read` の値が指定された `x-amz-acl` ヘッダーをすべての `PutObject` リクエストに含めることがユーザーに求められます。

### Amazon S3 のポリシーの例
<a name="security_iam_service-with-policies-examples-conditions"></a>
+ Amazon S3 のアイデンティティベースのポリシー例を確認するには、「[Amazon S3 のアイデンティティベースのポリシー](security_iam_id-based-policy-examples.md)」を参照してください。
+ Amazon S3 のリソースベースのポリシー例を確認するには、「[Amazon S3 のバケットポリシー](bucket-policies.md)」および「[アクセスポイントを使用するための IAM ポリシーの設定](access-points-policies.md)」を参照してください。

## Amazon S3 での ACL
<a name="security_iam_service-with-iam-acls"></a>

**ACL のサポート:** あり

Amazon S3 のアクセスコントロールリスト (ACL) は、どの AWS アカウント がリソースへのアクセス許可を持つかをコントロールします。ACL はリソースベースのポリシーに似ていますが、JSON ポリシードキュメント形式は使用しません。

**重要**  
Amazon S3 の最新のユースケースの大部分では ACL を使用する必要がなくなっています。

Amazon S3 での ACL を使用したアクセスコントロールについては、「[ACL によるアクセス管理](acls.md)」を参照してください。

## Amazon S3 での ABAC
<a name="security_iam_service-with-iam-tags"></a>

**ABAC (ポリシー内のタグ) のサポート:** 一部

属性ベースのアクセスコントロール (ABAC) は、タグと呼ばれる属性に基づいてアクセス許可を定義する認可戦略です。IAM エンティティと AWS リソースにタグを付けることで、プリンシパルのタグがリソースタグと一致するときに操作を許可する ABAC ポリシーを設計できます。

タグに基づいてアクセスを管理するには、`aws:ResourceTag/{{key-name}}`、`aws:RequestTag/{{key-name}}`、または `aws:TagKeys` の条件キーを使用して、ポリシーの[条件要素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)でタグ情報を提供します。

サービスがすべてのリソースタイプに対して 3 つの条件キーすべてをサポートする場合、そのサービスの値は**あり**です。サービスが一部のリソースタイプに対してのみ 3 つの条件キーのすべてをサポートする場合、値は「**部分的**」になります。

ABAC の詳細については、「*IAM ユーザーガイド*」の「[ABAC 認可でアクセス許可を定義する](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)」を参照してください。ABAC をセットアップする手順を説明するチュートリアルについては、「*IAM ユーザーガイド*」の「[属性ベースのアクセスコントロール (ABAC) を使用する](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html)」を参照してください。

Amazon S3 で ABAC をサポートするリソースの詳細については、「[属性ベースのアクセス制御 (ABAC) のタグを使用する](https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging.html#using-tags-for-abac)」を参照してください。

タグに基づいて S3 バッチオペレーションジョブへのアクセスを制限するためのアイデンティティベースのポリシー例を確認するには、「[ジョブタグを使用したバッチオペレーションのアクセス許可の制御](batch-ops-job-tags-examples.md)」を参照してください。

### ABAC とオブジェクトタグ
<a name="s3-object-tags"></a>

ABAC ポリシーでは、オブジェクトは `aws:` タグの代わりに `s3:` タグを使用します。オブジェクトタグに基づいてオブジェクトへのアクセスをコントロールするには、以下のタグを使用してポリシーの [Condition 要素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)でタグ情報を指定します。
+ `s3:ExistingObjectTag/{{tag-key}}`
+ `s3:RequestObjectTagKeys`
+ `s3:RequestObjectTag/{{tag-key}}`

アクセス許可ポリシーの例など、オブジェクトタグを使用したアクセスコントロールについては、「[タグ付けとアクセスコントロールポリシー](tagging-and-policies.md)」を参照してください。

## Amazon S3 での一時的な認証情報の使用
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**一時的な認証情報のサポート:** あり

一時的な認証情報は、AWSリソースへの短期的なアクセスを提供し、フェデレーションの使用時またはロールの切り替え時に自動的に作成されます。AWS では、長期的なアクセスキーを使用する代わりに、一時的な認証情報を動的に生成することをお勧めします。詳細については、「*IAM ユーザーガイド*」の「[IAM の一時的な認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)」および「[IAM と連携する AWS のサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。

## Amazon S3 の転送アクセスセッション
<a name="security_iam_service-with-iam-principal-permissions"></a>

**転送アクセスセッション (FAS) のサポート:** あり

 転送アクセスセッション (FAS) は、AWS のサービス を呼び出すプリンシパルのアクセス許可を AWS のサービス のリクエストと合わせて使用し、ダウンストリームのサービスに対してリクエストを行います。FAS リクエストを行う際のポリシーの詳細については、「[転送アクセスセッション](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)」を参照してください。
+ SSE-KMS を使用してオブジェクトを暗号化した場合、Amazon S3 は FAS を使用してオブジェクトを復号化するための呼び出しを AWS KMS に対して行います。詳細については、「[AWS KMS キーによるサーバー側の暗号化 (SSE-KMS) の使用](UsingKMSEncryption.md)」を参照してください。
+ S3 Access Grants も FAS を使用します。特定の ID の S3 データへのアクセス許可を作成すると、被付与者は S3 Access Grants に一時的な認証情報を要求します。S3 Access Grants は、AWS STS からリクエスタの一時的な認証情報を取得し、その認証情報をリクエスタに提供します。詳細については、「[S3 Access Grants を介して Amazon S3 データへのアクセスをリクエストする](access-grants-credentials.md)」を参照してください。

## Amazon S3 のサービスロール
<a name="security_iam_service-with-iam-roles-service"></a>

**サービスロールのサポート:** あり

 サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける [IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)です。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、IAM ユーザーガイド**の [AWS のサービス に許可を委任するロールを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)を参照してください。

**警告**  
サービスロールのアクセス許可を変更すると、Amazon S3 が機能しなくなる可能性があります。サービスロールは、Amazon S3 で指示された場合のみ編集してください。

## Amazon S3 のサービスリンクロール
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**サービスにリンクされたロールをサポート**： 一部

 サービスにリンクされたロールは、AWS のサービス にリンクされているサービスロールの一種です。サービスがロールを引き受け、ユーザーに代わってアクションを実行できるようになります。サービスにリンクされたロールは、AWS アカウント に表示され、サービスによって所有されます。IAM 管理者は、サービスリンクロールのアクセス許可を表示できますが、編集することはできません。

Amazon S3 では、Amazon S3 Storage Lens 用のサービスにリンクされたロールをサポートしています。Amazon S3 でのサービスリンクロールの作成または管理の詳細については、「[Amazon S3 ストレージレンズでのサービスにリンクされたロールの使用](using-service-linked-roles.md)」を参照してください。

**プリンシパルとしての Amazon S3 サービス**


| ポリシー内のサービス名 | S3 機能 | 詳細情報 | 
| --- | --- | --- | 
| `s3.amazonaws.com` | S3 レプリケーション | [ライブレプリケーションの設定の概要](replication-how-setup.md) | 
| `s3.amazonaws.com` | S3 イベント通知 | [Amazon S3 イベント通知](EventNotifications.md) | 
| `s3.amazonaws.com` | S3 インベントリ | [S3 インベントリを使用したデータのカタログ化と分析](storage-inventory.md) | 
| `access-grants.s3.amazonaws.com` | S3 Access Grants | [ロケーションを登録する](access-grants-location-register.md) | 
| `batchoperations.s3.amazonaws.com` | S3 バッチオペレーション | [バッチオペレーションに対するアクセス許可の付与](batch-ops-iam-role-policies.md) | 
| `logging.s3.amazonaws.com` | S3 サーバーアクセスのログ記録 | [Amazon S3 サーバーアクセスログを有効にします。](enable-server-access-logging.md) | 
| `storage-lens.s3.amazonaws.com` | S3 Storage Lens | [データエクスポートで Amazon S3 Storage Lens のメトリクスを確認する](storage_lens_view_metrics_export.md) | 