IAM を使用したリージョンエンドポイント API の承認 - Amazon Simple Storage Service

IAM を使用したリージョンエンドポイント API の承認

AWS Identity and Access Management (IAM) は、管理者が AWS リソースへのアクセスを安全に管理するうえで役立つ AWS のサービス です。IAM 管理者は、どのユーザーが認証 (サインイン) して、どのユーザーにリソースの使用を許可する (アクセス許可を持たせる) かを制御します。IAMは追加料金なしでご利用いただけます。

デフォルトでは、ユーザーにはディレクトリバケットと S3 Express One Zone オペレーションのためのアクセス許可はありません。ディレクトリバケットへのアクセス権限を付与するには、IAM を使用してユーザー、グループ、またはロールを作成し、それらのアイデンティティにアクセス許可をアタッチします。IAM の詳細については、「IAM ユーザーガイド」の「IAM でのセキュリティのベストプラクティス」を参照してください。

アクセスを提供するには、ユーザー、グループ、またはロールにアクセス許可を追加します。

S3 Express One Zone 向けの IAM の詳細については、次のトピックを参照してください。

プリンシパル

バケットへのアクセスを許可するリソースベースのポリシーを作成する場合は、Principal 要素を使用して、そのリソースに対するアクションまたはオペレーションをリクエストできるユーザーまたはアプリケーションを指定する必要があります。ディレクトリバケットポリシーでは、次のプリンシパルを使用できます。

  • AWS アカウント。

  • IAM ユーザー

  • IAM ロール

  • フェデレーションユーザー

詳細については、IAM ユーザーガイドPrincipalの を参照してください。

リソース

ディレクトリバケットの Amazon リソースネーム (ARN) には、s3express 名前空間、AWS リージョン、AWS アカウント ID、アベイラビリティーゾーン ID を含むディレクトリバケット名が含まれます。ディレクトリバケットにアクセスしてアクションを実行するには、次の ARN 形式を使用する必要があります。

arn:aws:s3express:region:account-id:bucket/base-bucket-name--azid--x-s3

ARN の詳細については、「IAM ユーザーガイド」の「Amazon Resource Names (ARNs)」を参照してください。リソースの詳細については、「IAM ユーザーガイド」の「IAM JSON ポリシー要素: Resource」を参照してください。

S3 Express One Zone 向けアクション

IAM ポリシーまたはリソースベースのポリシーで、どの S3 on Outposts アクションを許可または拒否するかを定義します。S3 Express One Zone のアクションは特定の API オペレーションに対応しています。S3 Express One Zone には、Amazon S3 の標準名前空間とは異なる固有の IAM 名前空間があります。この名前空間は s3express です。

s3express:CreateSession アクセス許可を付与すると、CreateSession API オペレーションは ゾーンのエンドポイント API (またはオブジェクトレベル) オペレーションにアクセスする際にセッショントークンを取得できるようになります。このようなセッショントークンは、その他すべての ゾーンのエンドポイント API オペレーションへのアクセスを許可するために使用される認証情報を返します。この結果、IAM ポリシーを使用してゾーンの API オペレーションにアクセス許可を付与する必要がなくなります。代わりに、セッショントークンによりアクセスが実現します。ゾーンエンドポイント API オペレーションとアクセス許可のリストについては、「Authenticating and authorizing requests」を参照してください。

ゾーンとリージョンのエンドポイント API オペレーションの詳細については、「S3 Express One Zone のネットワーク」を参照してください。CreateSession API オペレーションの詳細については、「Amazon Simple Storage Service API リファレンス」の「CreateSession」を参照してください。.

IAM ポリシーステートメントの Action エレメントでは、以下のアクションを指定できます。ポリシーを使用して、AWS でオペレーションを実行するアクセス許可を付与します。ポリシーでアクションを使用する場合は、通常、同じ名前の API オペレーションまたは CLI コマンドへのアクセスを許可または拒否します。ただし、単独のアクションが複数のオペレーションへのアクセスを制御する場合もあります。バケットレベルのアクションへのアクセスは IAM アイデンティティベースのポリシー (ユーザーまたはロール) でのみ付与でき、バケットポリシーでは付与できません。

次の表は、S3 Express One Zone のアクションと条件キーを示しています。

アクション API 説明 アクセスレベル 条件キー
s3express:CreateBucket CreateBucket

上がらしいバケット作成のための権限

書き込み

s3express:authType

s3express:LocationName

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:CreateSession CreateSession

セッショントークンを作成する権限を付与します。このセッショントークンは、PutObjectGetObject などのすべてのゾーン (オブジェクトレベル) API オペレーションへのアクセスを許可するために使用されます。

書き込み

s3express:authType

s3express:SessionMode

s3express:ResourceAccount

s3express:signatureversion

s3express:signatureAge

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:x-amz-server-side-encryption

s3express:x-amz-server-side-encryption-aws-kms-key-id

s3express:DeleteBucket DeleteBucket

URI で指定されたバケットを削除するアクセス許可を付与します。

書き込み

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:DeleteBucketPolicy DeleteBucketPolicy

指定されたバケットのポリシーを削除するアクセス許可を付与します。

権限の管理

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:GetBucketPolicy GetBucketPolicy

指定されたバケットのポリシーを戻すアクセス許可を付与します。

読み取り

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:GetEncryptionConfiguration GetBucketEncryption

ディレクトリバケットにデフォルトの暗号化設定を返すアクセス許可を付与します。

読み取り

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:ListAllMyDirectoryBuckets ListDirectoryBuckets

認証されたリクエストの送信者が所有するすべてのディレクトリバケットを一覧表示するアクセス許可を付与します。

リスト

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:PutBucketPolicy PutBucketPolicy

バケットのバケットポリシーを追加または置き換えるアクセス許可を付与します。

権限の管理

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:PutBucketPolicy PutBucketPolicy

バケットのバケットポリシーを追加または置き換えるアクセス許可を付与します。

権限の管理

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:PutEncryptionConfiguration PutBucketEncryption、または DeleteBucketEncryption

ディレクトリバケットの暗号化設定を設定するアクセス許可を付与します

書き込み

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

S3 Express One Zone の条件キー

S3 Express One Zone は、IAM ポリシーの Condition 要素で使用できる次の条件キーを定義します。これらのキーを使用して、ポリシーステートメントが適用される条件をさらに絞り込むことができます。

条件キー 説明 [Type] (タイプ)
s3express:authType

認証方式でアクセスをフィルタリングします 受信するリクエストが特定の認証方法を使用するように制限するには、このオプションの条件キーを使用します。例えば、この条件キーを使用すると、リクエスト認証のために HTTP Authorization ヘッダーのみの使用を指定できます。

有効な値:REST-HEADERREST-QUERY-STRING|

文字列
s3express:LocationName

CreateBucket API オペレーションへのアクセスを、usw2-az1 などの特定のアベイラビリティーゾーン ID (AZ ID) でフィルタリングします。

値の例: usw2-az1

文字列
s3express:ResourceAccount

リソース所有者の AWS アカウント ID でアクセスをフィルタリングします

特定の AWS アカウント ID が所有するディレクトリバケットへのユーザー、ロール、またはアプリケーションアクセスを制限するには、aws:ResourceAccount または s3express:ResourceAccount 条件キーを使用できます。この条件キーは、AWS Identity and Access Management (IAM) ID ポリシーまたは仮想プライベートクラウド (VPC) エンドポイントポリシーのいずれかで使用できます。例えば、この条件キーを使用して、VPC 内でユーザーの所有していないバケットにクライアントがアクセスできないように制限できます。

値の例: 111122223333

文字列
s3express:SessionMode

CreateSession API オペレーションがリクエストしたアクセス許可でアクセスをフィルタリングします。デフォルトでは、このセッションは ReadWrite です。この条件キーを使用して、ReadOnly アクセスを制限したり、ReadWrite アクセスを明示的に拒否したりできます。詳細については、「Amazon Simple Storage Service API リファレンス」の「S3 Express One Zone のディレクトリバケットポリシーの例」と「CreateSession」を参照してください。

有効な値:ReadWriteReadOnly|

文字列
s3express:signatureAge

リクエスト署名の経過時間 (ミリ秒単位) でアクセスをフィルタリングします この条件は、署名付き URL でのみ機能します。

AWS Signature Version 4 では、署名キーは最大 7 日間有効です。したがって、署名の有効期間も最大 7 日間となります。詳細については、「Amazon Simple Storage Service API リファレンス」の「Introduction to Signing Requests」(リクエスト署名の導入) を参照してください。この条件を使用すると、署名の有効期間をさらに制限できます。

値の例: 600000

数値
s3express:signatureversion

認証されたリクエストでサポートされる AWS 署名のバージョンを識別します。認証されたリクエストの場合、S3 Express One Zone は Signature Version 4 をサポートします。

有効な値: "AWS4-HMAC-SHA256" (Signature Version 4 を識別)

文字列
s3express:TlsVersion

クライアントが使用する TLS バージョンでアクセスをフィルタリングします

s3:TlsVersion 条件キーを使用して、クライアントが使用する TLS バージョンに基づいてディレクトリバケットへのユーザーまたはアプリケーションのア クセスを制限する IAM ポリシー、仮想プライベートクラウドエンドポイント (VPCE) ポリシー、またはバケットポリシーを作成できます。この条件キーを使用して、最小の TLS バージョンを必要とするポリシーを作成することもできます。

値の例: 1.3

数値
s3express:x-amz-content-sha256

バケット内の未署名のコンテンツでアクセスをフィルタリングします

この条件キーを使用すると、バケット内にある署名されていないコンテンツを許可しません。

Authorization ヘッダーを使用するリクエストに Signature Version 4 を使用する場合、署名計算に x-amz-content-sha256 ヘッダーを追加してから、その値をハッシュペイロードに設定します。

バケットポリシーでこの条件キーを使用すると、ペイロードが署名されていないアップロードを拒否できます。例:

  • リクエスト認証において、Authorization ヘッダーを使用するアップロードを拒否し、ペイロードには署名しません。詳細については、「Amazon Simple Storage Service API リファレンス」の「Transferring payload in a single chunk」(ペイロードを 1 つのチャンクで転送する) を参照してください。

  • 署名付き URL を使用するアップロードを拒否します。署名済み URL は常に UNSIGNED_PAYLOAD を持ちます。詳細については、「Amazon Simple Storage Service API リファレンス」の「Authenticating Requests」(認証リクエスト) 「Authentication methods」(認証メソッド) を参照してください。

有効な値: UNSIGNED-PAYLOAD

文字列
s3express:x-amz-server-side-encryption

サーバー側の暗号化でアクセスをフィルタリングします

有効な値:"AWS256"aws:kms|

文字列
s3express:x-amz-server-side-encryption-aws-kms-key-id

サーバー側の暗号化のための AWS KMS カスタマーマネージド CMK で、アクセスをフィルタリングします

値の例: "arn:aws:kms:region:acct-id:key/key-id"

ARN