ポリシーの指定項目
対象リージョン:東日本第3/西日本第3
ポリシーに指定可能な項目について説明します。
ポリシーは以下のようなJSON形式で記載します。
{
"Statement": [
{
"Sid": "AllowListBucketOfASpecificUserPrefix",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:ListBucket",
"Resource": "urn:sgws:s3:::department-bucket",
"Condition": {
"StringLike": {
"s3:prefix": "${sgws:username}/*"
}
}
},
{
"Effect": "Allow",
"Principal": "*",
...
}
]
}
ポリシーに指定可能な項目を以下に示します。
項目 | 説明 | バケットポリシー | グループポリシー |
---|---|---|---|
本項目の中にポリシー(Sid~Conditionの組合せ)を記載します。 |
◯ | ◯ | |
ユーザーが識別のために付ける任意の文字列を記述します。 |
△ | △ | |
ポリシーの方向性を指定します。そのポリシーが許可(Allow)を表すか禁止(Deny)を表すかを指定します。 |
◯ | ◯ | |
ポリシーの対象者(テナント、グループ、ユーザー)を指定します。 |
◯ | × | |
ポリシーの対象となる操作(バケット/オブジェクトに対する操作権限)を指定します。 |
◯ | ◯ | |
ポリシーの対象になるリソース(バケット/オブジェクト)を指定します。 |
◯ | ◯ | |
条件式を使用して、ポリシーを適用する条件を指定できます。 |
△ | △ |
◯:必須、△:任意、×:指定不可
Statement(バケットポリシー:必須/グループポリシー:必須)
本項目の中にポリシー(Sid~Conditionの組合せ)を記載します。
指定形式 |
|
---|---|
設定例 |
ヒント: 1つのStatementの中に、複数のポリシー(Sid~Conditionの組合せ)を記載できます。
|
Sid(バケットポリシー:省略可/グループポリシー:省略可)
ユーザーが識別のために付ける任意の文字列を記述します。
指定形式 |
|
---|---|
設定例 |
|
Effect(バケットポリシー:必須/グループポリシー:必須)
ポリシーの方向性を指定します。そのポリシーが許可(Allow)を表すか禁止(Deny)を表すかを指定します。
指定形式 |
|
---|
- 複数のポリシーで同一の対象( Principal/NotPrincipal 、 Action/NotAction 、Resource/NotResource )を設定している場合、Effect がDeny に設定されているポリシーがひとつでもあれば、Deny が優先して適用されます。
Principal/NotPrincipal(バケットポリシー:必須/グループポリシー:指定不可)
ポリシーの対象者(テナント、グループ、ユーザー)を指定します。
- 「root」ユーザーのリソースへのアクセスはデフォルトで許可されます。
- グループポリシーの場合、暗黙的に自身のグループがポリシーの対象になります。このため、グループポリシーに本項目の指定は不要です。
- バケットポリシーの作成時に、作成予定のグループやユーザーを指定できます。
指定形式 |
「Principal」は包含、「NotPrincipal」は除外を意味します。指定した対象者にポリシーを適用する場合は「Principal」、指定した対象者以外にポリシーを適用する場合は「NotPrincipal」を使用してください。
|
---|---|
設定例 |
|
Action/NotAction(バケットポリシー:必須/グループポリシー:必須)
ポリシーの対象となる操作(バケット/オブジェクトに対する操作権限)を指定します。
操作権限を明示的に割り当てなければ、バケット/オブジェクトに対する操作は実行できません。
また、明示的にバケット/オブジェクトに対する操作を禁止することで、ほかのポリシーで許可された操作を禁止できます。
指定形式 |
「Action」は包含、「NotAction」は除外を意味します。指定した操作にポリシーを適用する場合は「Action」、指定した操作以外にポリシーを適用する場合は「NotAction」を使用してください。
<操作権限>に指定できる操作権限については「操作権限」を参照してください。 |
---|---|
設定例 |
ヒント: ワイルドカード(*)を使用してすべての操作権限や特定の操作権限を指定できます。
|
種別 | 権限 | S3 REST APIの処理 |
---|---|---|
バケットに適用できる権限 | s3:CreateBucket | PUT Bucket |
s3:DeleteBucket | DELETE Bucket | |
s3:DeleteBucketPolicy | DELETE Bucket policy | |
s3:GetBucketAcl | GET Bucket ACL | |
s3:GetBucketCORS | GET Bucket cors | |
s3:GetBucketPolicy | GET Bucket policy | |
s3:GetBucketVersioning | GET Bucket versioning | |
s3:ListAllMyBuckets | ||
s3:ListBucket | ||
s3:ListBucketMultipartUploads | List Multipart Uploads | |
s3:ListBucketVersions | GET Bucket versions | |
s3:PutBucketCORS | ||
s3:PutBucketPolicy | PUT Bucket policy | |
s3:PutBucketVersioning | PUT Bucket versioning | |
オブジェクトに適用できる権限 | s3:AbortMultipartUpload | Abort Multipart Upload |
s3:DeleteObject | ||
s3:DeleteObjectTagging | DELETE Object Tagging | |
s3:DeleteObjectVersionTagging | DELETE Object Tagging(オブジェクトの特定のバージョン) | |
s3:DeleteObjectVersion | DELETE Object(オブジェクトの特定のバージョン) | |
s3:GetObject | ||
s3:GetObjectAcl | GET Object ACL | |
s3:GetObjectTagging | GET Object Tagging | |
s3:GetObjectVersionTagging | GET Object Tagging(オブジェクトの特定のバージョン) | |
s3:GetObjectVersion | GET Object(オブジェクトの特定のバージョン) | |
s3:ListMultipartUploadParts | List Parts | |
s3:PutObject | ||
s3:PutObjectTagging | PUT Object Tagging | |
s3:PutObjectVersionTagging | PUT Object Tagging(オブジェクトの特定のバージョン) |
Resource/NotResource(バケットポリシー:必須/グループポリシー:必須)
ポリシーの対象になるリソース(バケット/オブジェクト)を指定します。
グループポリシーの作成時に、作成予定のバケットを指定できます。
指定形式 |
「Resource」は包含、「NotResource」は除外を意味します。指定したリソースにポリシーを適用する場合は「Resource」、指定したリソース以外にポリシーを適用する場合は「NotResource」を使用してください。 指定形式はURNを使用した以下の形式です。
<URN>の指定には以下の構文を使用します。
注:
<オブジェクト名>に指定できる文字は、JSON UTF-8形式またはJSON \uエスケープシーケンスを使用してエンコードする必要があります。パーセントエンコーディングはサポートされていません。 PUT Bucket policy処理のHTTP要求の本文は、charset=UTF-8でエンコードする必要があります。 |
---|---|
設定例 |
|
Condition(バケットポリシー:省略可/グループポリシー:省略可)
条件式を使用して、ポリシーを適用する条件を指定できます。
指定形式 |
条件キーと値のペアを条件演算子で評価します。
|
---|---|
設定例 |
|
分類 | 条件演算子 | 説明 |
---|---|---|
String (条件キーを文字列値と比較) |
StringEquals | 完全に一致する(大文字と小文字の区別あり) |
StringNotEquals | 完全に一致しない(大文字と小文字の区別あり) | |
StringEqualsIgnoreCase | 完全に一致する(大文字と小文字の区別なし) | |
StringNotEqualsIgnoreCase | 完全に一致しない(大文字と小文字の区別なし) | |
StringLike |
指定された文字列が含まれている(大文字と小文字の区別あり) ヒント: ワイルドカード文字(*, ?)を使用できます。
|
|
StringNotLike |
指定された文字列が含まれていない(大文字と小文字の区別あり) ヒント: ワイルドカード文字(*, ?)を使用できます。
|
|
Numeric (条件キーを数値と比較) |
NumericEquals | 完全に一致する |
NumericNotEquals | 完全に一致しない | |
NumericGreaterThan | 指定された値を超過する | |
NumericGreaterThanEquals | 指定された値以上である | |
NumericLessThan | 指定された値未満である | |
NumericLessThanEquals | 指定された値以下である | |
Null Check (条件キーの有無を確認) |
Null | 条件キーがあるかどうかを確認する |
カテゴリ | 適用される条件キー | 説明 |
---|---|---|
リソース/アイデンティティ | sgws:username | APIリクエストを実行したユーザー名と比較します。バケットまたはオブジェクトの処理に使用できます。 |
S3:ListBucketおよびS3:ListBucketVersions権 |
s3:delimiter | APIリクエスト※のdelimiterパラメーターと比較します。 |
s3:max-keys | APIリクエスト※のmax-keysパラメーターと比較します。 | |
s3:prefix | APIリクエスト※のprefixパラメーターと比較します。 |
※「バケット内のオブジェクト一覧表示」または「バケットのバージョニング状態」のAPIで使用できます。