S3 Express One Zone 向け AWS Identity and Access Management (IAM)
AWS Identity and Access Management (IAM) は、管理者が AWS リソースへのアクセスを安全に管理するうえで役立つ AWS サービス です。IAM 管理者は、どのユーザーが認証 (サインイン) して、どのユーザーにリソースの使用を許可する (アクセス許可を持たせる) かを制御します。IAMは追加料金なしでご利用いただけます。
デフォルトでは、ユーザーにはディレクトリバケットと S3 Express One Zone オペレーションのためのアクセス許可はありません。ディレクトリバケットへのアクセス権限を付与するには、IAM を使用してユーザー、グループ、またはロールを作成し、それらのアイデンティティにアクセス許可をアタッチします。IAM の詳細については、「IAM ユーザーガイド」の「IAM でのセキュリティのベストプラクティス」を参照してください。
アクセスを提供するには、ユーザー、グループ、またはロールにアクセス許可を追加します。
-
AWS IAM Identity Center 内のユーザーとグループ — アクセス許可セットを作成します。「AWS IAM Identity Center ユーザーガイド」の「権限設定を作成する」の手順に従ってください。
-
アイデンティティプロバイダーを介して IAM で管理されているユーザー — ID フェデレーションのロールを作成します。詳細については、「IAM ユーザーガイド」の「サードパーティー ID プロバイダー (フェデレーション) 用のロールの作成」を参照してください。
-
IAM ロールとユーザー — ユーザーが引き受けることができるロールを作成します。詳細については、「IAM ユーザーガイド」の「 IAM ユーザーにアクセス許可を委任するロールの作成」を参照してください。
デフォルトでは、ディレクトリバケットはプライベートであり、アクセスを明示的に許可されているユーザーのみがアクセスできます。ディレクトリバケットのアクセスコントロール境界は、バケットレベルでのみ設定されます。対照的に、汎用バケットのアクセス制御境界は、バケット、プレフィックス、またはオブジェクトタグレベルで設定できます。この違いは、S3 Express One Zone アクセスのバケットポリシーまたは IAM アイデンティティポリシーに含めることができるリソースがディレクトリバケットのみであるためです。
S3 Express One Zone では、IAM 認証に加えて、CreateSession
API オペレーションが処理する新しいセッションベースのメカニズムを使用してリクエストを認証および承認します。CreateSession
を使用して、バケットへの低レイテンシーアクセスを実現する一時的な認証情報をリクエストできます。このような一時的な認証情報は、特定のディレクトリバケットに限定されます。
CreateSession
を使用するには、最新バージョンの AWS SDK を使用するか AWS Command Line Interface (AWS CLI) を使用することをお勧めします。サポートされている AWS SDK と AWS CLI が、ユーザーに代わってセッションの確立、更新、終了の処理を行います。
セッショントークンはゾーン (オブジェクトレベル) オペレーション (CopyObject
と HeadBucket
を除く) でのみ使用し、認証関連のレイテンシーをセッション内の多数のリクエストに分散させます。リージョンのエンドポイント API オペレーション (バケットレベルのオペレーション) には IAM 認証を使用しますが、セッションの管理は不要です。詳細については、S3 Express One Zone 向け AWS Identity and Access Management (IAM)およびCreateSession authorizationを参照してください。
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 オペレーションの詳細については、「S3 Express One Zone のネットワーク」を参照してください。CreateSession
API オペレーションの詳細については、「Amazon Simple Storage Service API リファレンス」の「CreateSession」を参照してください。.
IAM ポリシーステートメントの Action
エレメントでは、以下のアクションを指定できます。ポリシーを使用して、AWS でオペレーションを実行するアクセス許可を付与します。ポリシーでアクションを使用する場合は、通常、同じ名前の API オペレーションまたは CLI コマンドへのアクセスを許可または拒否します。ただし、単独のアクションが複数のオペレーションへのアクセスを制御する場合もあります。バケットレベルのアクションへのアクセスは IAM アイデンティティベースのポリシー (ユーザーまたはロール) でのみ付与でき、バケットポリシーでは付与できません。
S3 Express One Zone のアクションと条件キー | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
アクション | API | 説明 | アクセスレベル | 条件キー | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
CreateBucket |
上がらしいバケット作成のための権限 |
書き込み |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
s3express:CreateSession |
CreateSession |
セッショントークンを作成する権限を付与します。このセッショントークンは、 |
書き込み |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
s3express:DeleteBucket |
DeleteBucket |
URI で指定されたバケットを削除するアクセス許可を付与します。 |
書き込み |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
s3express:DeleteBucketPolicy |
DeleteBucketPolicy |
指定されたバケットのポリシーを削除するアクセス許可を付与します。 |
権限の管理 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
s3express:GetBucketPolicy |
GetBucketPolicy |
指定されたバケットのポリシーを戻すアクセス許可を付与します。 |
読み取り |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
s3express:ListAllMyDirectoryBuckets |
ListDirectoryBuckets |
認証されたリクエストの送信者が所有するすべてのディレクトリバケットを一覧表示するアクセス許可を付与します。 |
リスト |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
s3express:PutBucketPolicy |
PutBucketPolicy |
バケットのバケットポリシーを追加または置き換えるアクセス許可を付与します。 |
権限の管理 |
|
S3 Express One Zone の条件キー
S3 Express One Zone は、IAM ポリシーの Condition
要素で使用できる次の条件キーを定義します。これらのキーを使用して、ポリシーステートメントが適用される条件をさらに絞り込むことができます。
条件キー | 説明 | [Type] (タイプ) |
---|---|---|
s3express:authType |
認証方式でアクセスをフィルタリングします 受信するリクエストが特定の認証方法を使用するように制限するには、このオプションの条件キーを使用します。例えば、この条件キーを使用すると、リクエスト認証のために HTTP 有効な値: |
文字列 |
s3express:LocationName |
値の例: |
文字列 |
s3express:ResourceAccount |
リソース所有者の AWS アカウント ID でアクセスをフィルタリングします 特定の AWS アカウント ID が所有するディレクトリバケットへのユーザー、ロール、またはアプリケーションアクセスを制限するには、 値の例: |
文字列 |
s3express:SessionMode |
有効な値: |
文字列 |
s3express:signatureAge |
リクエスト署名の経過時間 (ミリ秒単位) でアクセスをフィルタリングします この条件は、署名付き URL でのみ機能します。 AWS Signature Version 4 では、署名キーは最大 7 日間有効です。したがって、署名の有効期間も最大 7 日間となります。詳細については、「Amazon Simple Storage Service API リファレンス」の「Introduction to Signing Requests」(リクエスト署名の導入) を参照してください。この条件を使用すると、署名の有効期間をさらに制限できます。 値の例: |
数値 |
s3express:signatureversion |
認証されたリクエストでサポートされる AWS 署名のバージョンを識別します。認証されたリクエストの場合、S3 Express One Zone は Signature Version 4 をサポートします。 有効な値: |
文字列 |
s3express:TlsVersion |
クライアントが使用する TLS バージョンでアクセスをフィルタリングします
値の例: |
数値 |
s3express:x-amz-content-sha256 |
バケット内の未署名のコンテンツでアクセスをフィルタリングします この条件キーを使用すると、バケット内にある署名されていないコンテンツを許可しません。
バケットポリシーでこの条件キーを使用すると、ペイロードが署名されていないアップロードを拒否できます。例:
有効な値: |
文字列 |
API オペレーションの承認と認証方法
S3 Express One Zone 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 |
はい |