IAM を使用したリージョンエンドポイント API の承認
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 の詳細については、次のトピックを参照してください。
トピック
プリンシパル
バケットへのアクセスを許可するリソースベースのポリシーを作成する場合は、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:CreateSession |
CreateSession |
セッショントークンを作成する権限を付与します。このセッショントークンは、 |
書き込み |
|
s3express:DeleteBucket |
DeleteBucket |
URI で指定されたバケットを削除するアクセス許可を付与します。 |
書き込み |
|
s3express:DeleteBucketPolicy |
DeleteBucketPolicy |
指定されたバケットのポリシーを削除するアクセス許可を付与します。 |
権限の管理 |
|
s3express:GetBucketPolicy |
GetBucketPolicy |
指定されたバケットのポリシーを戻すアクセス許可を付与します。 |
読み取り |
|
s3express:GetEncryptionConfiguration |
GetBucketEncryption |
ディレクトリバケットにデフォルトの暗号化設定を返すアクセス許可を付与します。 |
読み取り |
|
s3express:ListAllMyDirectoryBuckets |
ListDirectoryBuckets |
認証されたリクエストの送信者が所有するすべてのディレクトリバケットを一覧表示するアクセス許可を付与します。 |
リスト |
|
s3express:PutBucketPolicy |
PutBucketPolicy |
バケットのバケットポリシーを追加または置き換えるアクセス許可を付与します。 |
権限の管理 |
|
s3express:PutBucketPolicy |
PutBucketPolicy |
バケットのバケットポリシーを追加または置き換えるアクセス許可を付与します。 |
権限の管理 |
|
s3express:PutEncryptionConfiguration |
PutBucketEncryption 、または DeleteBucketEncryption |
ディレクトリバケットの暗号化設定を設定するアクセス許可を付与します |
書き込み |
|
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 |
バケット内の未署名のコンテンツでアクセスをフィルタリングします この条件キーを使用すると、バケット内にある署名されていないコンテンツを許可しません。
バケットポリシーでこの条件キーを使用すると、ペイロードが署名されていないアップロードを拒否できます。例:
有効な値: |
文字列 |
s3express:x-amz-server-side-encryption |
サーバー側の暗号化でアクセスをフィルタリングします 有効な値: |
文字列 |
s3express:x-amz-server-side-encryption-aws-kms-key-id |
サーバー側の暗号化のための AWS KMS カスタマーマネージド CMK で、アクセスをフィルタリングします 値の例: |
ARN |