リクエストの認証と承認
デフォルトでは、ディレクトリバケットはプライベートであり、アクセスを明示的に許可されているユーザーのみがアクセスできます。ディレクトリバケットのアクセスコントロール境界は、バケットレベルでのみ設定されます。対照的に、汎用バケットのアクセス制御境界は、バケット、プレフィックス、またはオブジェクトタグレベルで設定できます。この違いは、S3 Express One Zone アクセスのバケットポリシーまたは IAM アイデンティティポリシーに含めることができるリソースがディレクトリバケットのみであるためです。
Amazon S3 Express One Zone は、AWS Identity and Access Management (AWS IAM) 承認とセッションベースの承認の両方をサポートしています。
-
S3 Express One Zone でリージョンエンドポイント API オペレーション (バケットレベル、またはコントロールプレーンのオペレーション) を使用するには、セッション管理を必要としない IAM 認可モデルを使用します。アクセス許可はアクションごとに個別に付与されます。詳細については、「IAM を使用したリージョンエンドポイント API オペレーションの承認」を参照してください。
-
ゾーンエンドポイント API オペレーション (オブジェクトレベルまたはデータプレーンオペレーション) を使用するには、
CopyObject
とHeadBucket
を除き、CreateSession
API オペレーションを使用して、データリクエストの低レイテンシー承認に最適化されたセッションを作成および管理します。ッショントークンを取得して使用するには、アイデンティティベースのポリシーまたはバケットポリシーでディレクトリバケットのs3express:CreateSession
アクションを許可する必要があります。詳細については、「IAM を使用したリージョンエンドポイント API オペレーションの承認」を参照してください。Amazon S3 コンソール、AWS Command Line Interface (AWS CLI)、または AWS SDK を使用して S3 Express One ゾーンにアクセスしている場合、S3 Express One Zone はユーザーに代わってセッションを作成します。
CreateSession
API オペレーションでは、新しいセッションベースのメカニズムを使用してリクエストを認証および承認します。CreateSession
を使用して、バケットへの低レイテンシーアクセスを実現する一時的な認証情報をリクエストできます。このような一時的な認証情報は、特定のディレクトリバケットに限定されます。
CreateSession
を使用するには、最新バージョンの AWS SDK を使用するか AWS Command Line Interface (AWS CLI) を使用することをお勧めします。サポートされている AWS SDK と AWS CLI が、ユーザーに代わってセッションの確立、更新、終了の処理を行います。
セッショントークンはゾーン (オブジェクトレベル) オペレーション (CopyObject
と HeadBucket
を除く) でのみ使用し、承認関連のレイテンシーをセッション内の多数のリクエストに分散させます。リージョンのエンドポイント API オペレーション (バケットレベルのオペレーション) には IAM 認可を使用しますが、セッションの管理は不要です。詳細については、IAM を使用したリージョンエンドポイント API オペレーションの承認およびCreateSession を使用したゾーンエンドポイント API オペレーションの承認を参照してください。
API オペレーションの認証および承認方法
次の表は、ディレクトリバケット API オペレーションの認証および承認情報の一覧です。この表には、API オペレーションごとに、API オペレーション名、IAM ポリシーアクション、エンドポイントタイプ (リージョンまたはゾーン)、承認メカニズム (IAM またはセッションベース) が表示されています。この表には、クロスアカウントアクセスがサポートされているかどうかも示されています。バケットレベルのアクションへのアクセスは、バケットポリシーではなく、IAM アイデンティティベースのポリシー (ユーザーまたはロール) でのみ付与でます。
API | [エンドポイントタイプ] | IAM アクション | クロスアカウントアクセス |
---|---|---|---|
CreateBucket |
リージョン別 | s3express:CreateBucket |
いいえ |
DeleteBucket |
リージョン別 | s3express:DeleteBucket |
いいえ |
ListDirectoryBuckets |
リージョン別 | s3express:ListAllMyDirectoryBuckets |
いいえ |
PutBucketPolicy |
リージョン別 | s3express:PutBucketPolicy |
いいえ |
GetBucketPolicy |
リージョン別 | s3express:GetBucketPolicy |
いいえ |
DeleteBucketPolicy |
リージョン別 | s3express:DeleteBucketPolicy |
いいえ |
CreateSession |
ゾーン別 | s3express:CreateSession |
あり |
CopyObject |
ゾーン別 | s3express:CreateSession |
あり |
DeleteObject |
ゾーン別 | s3express:CreateSession |
あり |
DeleteObjects |
ゾーン別 | s3express:CreateSession |
あり |
HeadObject |
ゾーン別 | s3express:CreateSession |
あり |
PutObject |
ゾーン別 | s3express:CreateSession |
あり |
GetObjectAttributes |
ゾーン別 | s3express:CreateSession |
あり |
ListObjectsV2 |
ゾーン別 | s3express:CreateSession |
あり |
HeadBucket |
ゾーン別 | s3express:CreateSession |
あり |
CreateMultipartUpload |
ゾーン別 | s3express:CreateSession |
あり |
UploadPart |
ゾーン別 | s3express:CreateSession |
あり |
UploadPartCopy |
ゾーン別 | s3express:CreateSession |
あり |
CompleteMultipartUpload |
ゾーン別 | s3express:CreateSession |
あり |
AbortMultipartUpload |
ゾーン別 | s3express:CreateSession |
あり |
ListParts |
ゾーン別 | s3express:CreateSession |
あり |
ListMultipartUploads |
ゾーン別 | s3express:CreateSession |
あり |