リクエストの認証と承認 - Amazon Simple Storage Service

リクエストの認証と承認

デフォルトでは、ディレクトリバケットはプライベートであり、アクセスを明示的に許可されているユーザーのみがアクセスできます。ディレクトリバケットのアクセスコントロール境界は、バケットレベルでのみ設定されます。対照的に、汎用バケットのアクセス制御境界は、バケット、プレフィックス、またはオブジェクトタグレベルで設定できます。この違いは、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 オペレーション (オブジェクトレベルまたはデータプレーンオペレーション) を使用するには、CopyObjectHeadBucket を除き、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 が、ユーザーに代わってセッションの確立、更新、終了の処理を行います。

セッショントークンはゾーン (オブジェクトレベル) オペレーション (CopyObjectHeadBucket を除く) でのみ使用し、承認関連のレイテンシーをセッション内の多数のリクエストに分散させます。リージョンのエンドポイント 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 あり