

# ディレクトリバケットの IAM アイデンティティベースのポリシー
<a name="s3-express-security-iam-identity-policies"></a>

ディレクトリバケットを作成する前に、AWS Identity and Access Management (IAM) ロールまたはユーザーに必要なアクセス許可を付与する必要があります。このポリシー例では、`CreateSession` API オペレーション (ゾーンエンドポイント [オブジェクトレベル] API オペレーションで使用) とすべてのリージョンエンドポイント (バケットレベル) API オペレーションへのアクセスを許可します。このポリシーでは、すべてのディレクトリバケットでの `CreateSession` API オペレーションの使用が許可されます。ただし、リージョンエンドポイント API オペレーションは、指定されたディレクトリバケットでの使用のみが許可されます。このポリシーの例を実行するには、`{{user input placeholders}}` をユーザー自身の情報に置き換えます。

**注記**  
ベストプラクティスとして、タスクを実行するために必要なアクセス許可のみ (最小特権) を付与するようにしてください。ユースケースに必要のないアクションをこのポリシーから削除します。S3 Express One Zone アクションの完全なリストについては、「*サービス認可リファレンス*」の「[S3 Express One Zone のアクション、リソース、および条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3express.html)」を参照してください。

**Example - ディレクトリバケットへのアクセスに関する ID ベースのポリシー**  

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowRegionalEndpointAPIs",
            "Effect": "Allow",
            "Action": [
                "s3express:CreateBucket",
                "s3express:DeleteBucket",
                "s3express:DeleteBucketPolicy",
                "s3express:GetBucketPolicy",
                "s3express:PutBucketPolicy",
                "s3express:GetEncryptionConfiguration",
                "s3express:PutEncryptionConfiguration",
                "s3express:GetLifecycleConfiguration",
                "s3express:PutLifecycleConfiguration",
                "s3express:GetInventoryConfiguration",
                "s3express:PutInventoryConfiguration",
                "s3express:GetMetricsConfiguration",
                "s3express:PutMetricsConfiguration"
            ],
            "Resource": "arn:aws:s3express:{{region}}:{{account-id}}:bucket/{{bucket-base-name--zone-id--x-s3}}"
        },
        {
            "Sid": "AllowListAndCreateSession",
            "Effect": "Allow",
            "Action": [
                "s3express:ListAllMyDirectoryBuckets",
                "s3express:CreateSession"
            ],
            "Resource": "*"
        }
    ]
}
```

このポリシーには以下の 2 つのステートメントがあります。
+ 最初のステートメントは、特定のディレクトリバケットに対するリージョンエンドポイント (バケットレベル) API オペレーションのアクセス許可を付与します。ユースケースに不要なアクションを削除できます。
+ 2 つ目のステートメントは、`ListAllMyDirectoryBuckets` および `CreateSession` に対するアクセス許可を付与します。これらのアクションはリソースレベルのアクセス許可をサポートしていないため、`Resource` は `"*"` になります。`CreateSession` アクセス許可は、`PutObject`、`GetObject`、`DeleteObject` などのすべてのゾーンエンドポイント (オブジェクトレベル) API オペレーションを有効にします。