Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

バケットとグループのアクセスポリシーを使用

共同作成者

StorageGRID では、 Amazon Web Services ( AWS )ポリシー言語を使用して、 S3 テナントによるバケットおよびバケット内のオブジェクトへのアクセスを制御できます。StorageGRID システムには、 S3 REST API ポリシー言語のサブセットが実装されています。S3 API のアクセスポリシーは JSON 形式で記述されます。

アクセスポリシーの概要

StorageGRID では 2 種類のアクセスポリシーがサポートされています。

  • バケットポリシー。S3 APIのGetBucketPolicy、PutBucketPolicy、およびDeleteBucketPolicyの各処理を使用して管理されます。バケットポリシーはバケットに関連付けられ、バケットとそのオブジェクトへのバケット所有者アカウントやその他のアカウントのユーザによるアクセスを制御するために使用されます。バケットポリシー環境 は 1 つのバケットのみで、場合によっては複数のグループに分かれています。

  • * グループポリシー * 。 Tenant Manager またはテナント管理 API を使用して設定します。グループポリシーはアカウントのグループに関連付けられ、そのアカウントが所有する特定のリソースにそのグループがアクセスできるように設定されます。グループポリシー環境 は 1 つのグループに限定され、場合によっては複数のバケットに適用されます。

メモ グループポリシーとバケットポリシーの優先度に違いはありません。

StorageGRID のバケットとグループのポリシーは、 Amazon が定義している特定の文法に従って記述されます。各ポリシーは一連のステートメントからなり、各ステートメントは次の要素で構成されます。

  • ステートメント ID ( SID )(オプション)

  • 効果

  • プリンシパル / NotPrincipal

  • リソース / メモリソース

  • アクション / NotAction

  • Condition (オプション)

次の構造を使用して、権限を指定するポリシーステートメントが構築されます。 <Effect> を付与して、 <Condition> に該当する場合に <Principal> に <Resource> に対する <Action> の実行を許可または拒否します。

各ポリシー要素は、特定の機能に使用されます。

要素( Element ) 説明

SID

Sid 要素はオプションです。SID は、ユーザの概要 としてのみ使用されます。StorageGRID システムに格納はされますが、システムで解釈されません。

効果

Effect 要素では、指定した処理を許可するか拒否するかを指定します。Action 要素でサポートされるキーワードを使用して、バケットやオブジェクトで許可(または拒否)する処理を指定する必要があります。

プリンシパル / NotPrincipal

ユーザ、グループ、およびアカウントに特定のリソースへのアクセスと特定の操作の実行を許可できます。要求に S3 の署名が含まれていない場合は、ワイルドカード文字( * )をプリンシパルとして指定することで匿名アクセスが許可されます。デフォルトでは、アカウントが所有するリソースへのアクセスは root アカウントにのみ許可されます。

Principal 要素を指定する必要があるのはバケットポリシーだけです。グループポリシーの場合は、ポリシーが関連付けられたグループが暗黙的にプリンシパルになります。

リソース / メモリソース

Resource 要素では、バケットとオブジェクトを指定します。Amazon リソースネーム( ARN )を使用してリソースを指定し、バケットやオブジェクトに対する権限を許可または拒否することができます。

アクション / NotAction

権限は Action 要素と Effect 要素の 2 つで構成されます。グループがリソースを要求すると、リソースへのアクセスが許可または拒否されます。権限を明示的に割り当てていないかぎりアクセスは拒否されますが、明示的な拒否を使用して別のポリシーで付与された権限を上書きすることもできます。

条件

Condition 要素はオプションです。条件を使用すると、ポリシーを適用する条件を示す式を作成できます。

Action 要素では、ワイルドカード文字( * )を使用してすべての処理または処理のサブセットを指定できます。たとえば、次の Action の値は、 s3 : GetObject 、 s3 : PutObject 、 s3 : DeleteObject などの権限に一致します。

s3:*Object

Resource 要素では、ワイルドカード文字( \ * )および(?)を使用できます。アスタリスク( * )は 0 文字以上の文字に一致し、疑問符( ? )は 0 文字以上の文字に一致します。 任意の 1 文字に一致します。

Principal要素では、匿名アクセスを設定してすべてのユーザに権限を付与する場合を除き、ワイルドカード文字はサポートされません。たとえば、 Principal の値としてワイルドカード( * )を設定します。

"Principal":"*"
"Principal":{"AWS":"*"}

次の例では、 Effect 、 Principal 、 Action 、および Resource の各要素を使用して記述します。次の例は、「許可」の効果を使用してプリンシパル、adminグループを指定したバケットポリシーのステートメントを示しています federated-group/admin 財務グループなどです federated-group/finance、アクションを実行する権限 s3:ListBucket をバケットにインストールします mybucket そしてアクション s3:GetObject そのバケット内のすべてのオブジェクト。

{
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::27233906934684427525:federated-group/admin",
          "arn:aws:iam::27233906934684427525:federated-group/finance"
        ]
      },
      "Action": [
        "s3:ListBucket",
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:iam:s3:::mybucket",
        "arn:aws:iam:s3:::mybucket/*"
      ]
    }
  ]
}

バケットポリシーのサイズの上限は 20 、 480 バイトで、グループポリシーのサイズの上限は 5 、 120 バイトです。

ポリシーノセイコウセイ

デフォルトでは、グループポリシーに対するすべての更新の整合性レベルは結果整合性です。グループポリシーの整合性が取れた場合、ポリシーキャッシュのために変更が有効になるまでにさらに15分かかることがあります。デフォルトでは、バケットポリシーに対する更新の整合性は非常に高くなります。

バケットポリシーの更新の整合性保証は必要に応じて変更できます。たとえば、サイトが停止しているときにバケットポリシーを変更できるようにすることができます。

この場合は、を設定できます Consistency-Control PutBucketPolicy要求のヘッダー、またはPUT Bucket consistency要求を使用できます。バケットポリシーの整合性が確保されると、ポリシーキャッシュのために変更が有効になるまでにさらに8秒かかることがあります。

メモ 一時的な状況を回避するために整合性の値を別の値に設定する場合は、完了後にバケットレベルの設定を元の値に戻してください。そうしないと、以降のすべてのバケット要求で変更後の設定が使用されます。

ポリシーステートメントでは ARN を使用します

ポリシーステートメントでは、 Principal 要素と Resource 要素で ARN を使用します。

  • S3 リソースの ARN の指定には次の構文を使用します。

    arn:aws:s3:::bucket-name
    arn:aws:s3:::bucket-name/object_key
  • アイデンティティリソースの ARN (ユーザおよびグループ)の指定には次の構文を使用します。

    arn:aws:iam::account_id:root
    arn:aws:iam::account_id:user/user_name
    arn:aws:iam::account_id:group/group_name
    arn:aws:iam::account_id:federated-user/user_name
    arn:aws:iam::account_id:federated-group/group_name

その他の考慮事項:

  • オブジェクトキーの一部にワイルドカードとしてアスタリスク( * )を使用すると、 0 文字以上の文字に一致します。

  • オブジェクトキーで指定できる国際文字は、 JSON UTF-8 形式または JSON \u エスケープシーケンスを使用してエンコードする必要があります。パーセントエンコーディングはサポートされていません。

    PutBucketPolicy処理のHTTP要求の本文は、charset=UTF-8でエンコードする必要があります。

ポリシー内のリソースを指定します

ポリシーステートメントでは、 Resource 要素を使用して、権限を許可または拒否するバケットやオブジェクトを指定できます。

  • Resource 要素はポリシーの各ステートメントに必要です。ポリシーでは、リソースは要素で示されます Resource`または、 `NotResource 除外のため。

  • リソースは S3 リソースの ARN で指定します。例:

    "Resource": "arn:aws:s3:::mybucket/*"
  • オブジェクトキーの内部でポリシー変数を使用することもできます。例:

    "Resource": "arn:aws:s3:::mybucket/home/${aws:username}/*"
  • グループポリシーの作成時は、まだ存在しないバケットもリソースの値で指定することができます。

ポリシーでプリンシパルを指定します

ポリシーステートメントでリソースへのアクセスを許可または拒否するユーザ、グループ、またはテナントアカウントを指定するには、 Principal 要素を使用します。

  • バケットポリシーの各ポリシーステートメントには、 Principal 要素を含める必要があります。グループはプリンシパルとみなされるため、グループポリシーのポリシーステートメントではPrincipal要素は必要ありません。

  • ポリシーでは、「Principal」要素または「NotPrincipal」要素(除外の場合)でプリンシパルを指定します。

  • ID または ARN を使用してアカウントベースのアイデンティティを指定する必要があります。

    "Principal": { "AWS": "account_id"}
    "Principal": { "AWS": "identity_arn" }
  • 次の例では、テナントアカウント ID 27233906934684427525 を使用しています。この場合、 root アカウントとそのすべてのユーザが含まれます。

     "Principal": { "AWS": "27233906934684427525" }
  • root アカウントのみを指定する場合は次のようになります。

    "Principal": { "AWS": "arn:aws:iam::27233906934684427525:root" }
  • 特定のフェデレーテッドユーザ(「 Alex 」)を指定する場合は次のようになります。

    "Principal": { "AWS": "arn:aws:iam::27233906934684427525:federated-user/Alex" }
  • 特定のフェデレーテッドグループ(「 Managers 」)のみを指定する場合は次のようになります。

    "Principal": { "AWS": "arn:aws:iam::27233906934684427525:federated-group/Managers"  }
  • 匿名プリンシパルを指定する場合は次のようになります。

    "Principal": "*"
  • あいまいさを排除するために、ユーザ名の代わりに UUID を使用できます。

    arn:aws:iam::27233906934684427525:user-uuid/de305d54-75b4-431b-adb2-eb6b9e546013

    たとえば、Alexが組織とユーザ名を退職するとします Alex が削除されました。新しいAlexが組織に参加し、同じが割り当てられている場合 Alex ユーザ名。元のユーザに付与された権限が、新しいユーザに意図せず継承されることがあります。

  • バケットポリシーの作成時は、まだ存在しないグループ / ユーザの名前もプリンシパルの値で指定することができます。

ポリシーで権限を指定します

ポリシーでは、 Action 要素を使用してリソースに対する権限を許可または拒否します。ポリシーには、「 Action 」要素で示される一連の権限、または除外する「 NotAction 」要素で指定できる一連の権限があります。それぞれが特定の S3 REST API 処理に対応しています。

次の表に、バケットに適用される権限とオブジェクトに適用される権限を示します。

メモ Amazon S3では、PutBucketReplicationとDeleteBucketReplicationの両方のアクションにs3:PutReplicationConfiguration権限が使用されるようになりました。StorageGRID では、元の Amazon S3 仕様に一致する個別の権限が各アクションに使用されます。
メモ DELETEは、PUTを使用して既存の値を上書きした場合に実行されます。

バケットに適用される権限

権限 S3 REST API の処理 StorageGRID のカスタム

S3 : CreateBucket を指定します

CreateBucketを選択します

はい。

:グループポリシーでのみ使用します。

S3 : DeleteBucket

DeleteBucketの場合

S3 : DeleteBucketMetadataNotification

バケットのメタデータ通知設定を削除します

はい。

S3 : DeleteBucketPolicy

DeleteBucketPolicyのようになります

S3 : DeleteReplicationConfiguration

DeleteBucketReplication

○(PUTとDELETEに別 々 の権限を設定)

S3 : GetBucketAcl

GetBucketAcl

S3 : GetBucketCompliance

GET Bucket compliance (廃止)

はい。

S3 : GetBucketConsistency

GET Bucket consistency

はい。

S3 : GetBucketCORS

GetBucketCors

S3 : GetEncryptionConfiguration

GetBucketEncryptionの略

S3 : GetBucketLastAccessTime

GET Bucket last access time の場合

はい。

S3 : GetBucketLocation

GetBucketLocation

S3 : GetBucketMetadataNotification

GET Bucket metadata notification configuration

はい。

S3 : GetBucketNotification

GetBucketNotificationConfigurationを参照してください

S3 : GetBucketObjectLockConfiguration

GetObjectLockConfigurationの略

S3 : GetBucketPolicy

GetBucketPolicyのようになります

S3 : GetBucketTagging

GetBucketTagging

S3 : GetBucketVersioning

GetBucketVersioningの各ノードの設定

S3 : GetLifecycleConfiguration

GetBucketLifecycleConfiguration

S3 : GetReplicationConfiguration

GetBucketReplicationの略

S3 : ListAllMyBuckets

  • ListBuckets

  • GET Storage Usage の略

○(GET Storage Usage)。

:グループポリシーでのみ使用します。

S3 : ListBucket

  • ListObjects

  • ヘッドバケット

  • RestoreObject

S3 : ListBucketMultipartUploads

  • ListMultipartUploads

  • RestoreObject

S3 : ListBucketVersions

GET Bucket versions (バケットバージョンの取得

S3 : PutBucketCompliance

PUT Bucket compliance(廃止)

はい。

S3 : PutBucketConsistency

PUT Bucket consistency

はい。

S3 : PutBucketCORS

  • DeleteBucketCors†

  • PutBucketCorsの略

S3 : PutEncryptionConfiguration

  • DeleteBucketEncryption

  • PutBucketEncryptionの略

S3 : PutBucketLastAccessTime

PUT Bucket last access time のように指定します

はい。

S3 : PutBucketMetadataNotification

PUT Bucket metadata notification configuration のコマンドです

はい。

S3 : PutBucketNotification

PutBucketNotificationConfigurationの略

S3 : PutBucketObjectLockConfiguration

  • を使用してCreateBucketを作成します。 x-amz-bucket-object-lock-enabled: true 要求ヘッダー(s3:CreateBucket権限も必要)

  • PutObjectLockConfigurationの略

S3 : PutBucketPolicy

PutBucketPolicyのように指定します

S3 : PutBucketTagging

  • DeleteBucketTagging†

  • PutBucketTaggingの略

S3 : PutBucketVersioning

PutBucketVersioningの各ノードの設定

S3 : PutLifecycleConfiguration

  • DeleteBucketLifecycle†

  • PutBucketLifecycleConfigurationの略

S3 : PutReplicationConfiguration

PutBucketReplicationの略

○(PUTとDELETEに別 々 の権限を設定)

オブジェクトに適用される権限

権限 S3 REST API の処理 StorageGRID のカスタム

S3 : AbortMultipartUpload

  • AbortMultipartUpload の略

  • RestoreObject

S3:Bypassガバナー 保持

  • deleteObject

  • オブジェクトを削除します

  • PutObjectRetentionの略

S3 : DeleteObject

  • deleteObject

  • オブジェクトを削除します

  • RestoreObject

S3 : DeleteObjectTagging

DeleteObjectTagging の場合

S3 : DeleteObjectVersionTagging

DeleteObjectTagging(オブジェクトの特定のバージョン)

S3 : DeleteObjectVersion

deleteObject(オブジェクトの特定のバージョン)

S3 : GetObject

  • GetObject

  • HeadObject (ヘッドオブジェクト)

  • RestoreObject

  • SelectObjectContent の順に選択します

S3 : GetObjectAcl

GetObjectAcl

S3 : GetObjectLegalHold

GetObjectLegalHold

S3 : GetObjectRetention

GetObjectRetentionの略

S3 : GetObjectTagging

GetObjectTagging の 2 つの機能を

S3 : GetObjectVersionTagging

GetObjectTagging(オブジェクトの特定のバージョン)

S3 : GetObjectVersion

GetObject(オブジェクトの特定のバージョン)

S3 : ListMultipartUploadParts

ListParts、RestoreObject

S3 : PutObject

  • PutObject

  • CopyObject

  • RestoreObject

  • CreateMultipartUpload を実行します

  • CompleteMultipartUpload

  • UploadPart のアップロード

  • UploadPartCopyをクリックします

S3 : PutObjectLegalHold

PutObjectLegalHold

S3 : PutObjectRetention

PutObjectRetentionの略

S3 : PutObjectTagging

PutObjectTagging の 2 つのグループが

S3 : PutObjectVersionTagging

PutObjectTagging(オブジェクトの特定のバージョン)

S3 : PutOverwriteObject

  • PutObject

  • CopyObject

  • PutObjectTagging の 2 つのグループが

  • DeleteObjectTagging の場合

  • CompleteMultipartUpload

はい。

S3 : RestoreObject

RestoreObject

PutOverwriteObject 権限を使用します

s3 : PutOverwriteObject 権限は、オブジェクトの作成または更新を行う環境 処理のカスタムの StorageGRID 権限です。この権限の設定により、オブジェクトのデータ、ユーザ定義メタデータ、または S3 オブジェクトのタグをクライアントが上書きできるかどうかが決まります。

この権限で可能な設定は次のとおりです。

  • * allow * :クライアントはオブジェクトを上書きできます。これがデフォルト設定です。

  • Deny:クライアントはオブジェクトを上書きできません。PutOverwriteObject 権限が Deny に設定されている場合の動作は次のとおりです。

    • 同じパスで既存のオブジェクトが見つかった場合は、次の手順を実行します。

      • オブジェクトのデータ、ユーザ定義メタデータ、またはS3オブジェクトのタグを上書きすることはできません。

      • 実行中の取り込み処理はすべてキャンセルされ、エラーが返されます。

      • S3のバージョン管理が有効になっている場合は、Denyに設定すると、PutObjectTagging処理またはDeleteObjectTagging処理によってオブジェクトとその最新でないバージョンのTagSetが変更されなくなります。

    • 既存のオブジェクトが見つからない場合は、この権限の設定は影響しません。

  • この権限がない場合、 Allow が設定されたものと同じ結果になります。

メモ 現在のS3ポリシーで上書きが許可されていて、PutOverwriteObject権限がDenyに設定されている場合、オブジェクトのデータ、ユーザ定義メタデータ、またはオブジェクトのタグをクライアントが上書きすることはできません。また、[Prevent client modification]*チェックボックスが選択されている場合( configuration > Security settings > Network and objects *)、この設定はPutOverwriteObject権限の設定よりも優先されます。

ポリシーの条件を指定します

条件は、ポリシーが有効になるタイミングを定義します。条件は演算子とキーと値のペアで構成されます。

条件はキーと値のペアを使用して評価されます。Condition 要素には複数の条件を指定でき、各条件には複数のキーと値のペアを含めることができます。条件ブロックの形式は次のとおりです。

Condition: {
     condition_type: {
          condition_key: condition_values

次の例では、 IpAddress 条件で SourceIp 条件キーを使用しています。

"Condition": {
    "IpAddress": {
      "aws:SourceIp": "54.240.143.0/24"
		...
},
		...

サポートされる条件演算子は次の

条件演算子は次のように分類されます。

  • 文字列

  • 数値

  • ブール値

  • IP アドレス

  • Null チェック

条件演算子 説明

StringEquals

キーを文字列値と比較し、完全一致であるかを確認します(大文字と小文字の区別あり)。

StringNotEquals

キーを文字列値と比較し、不一致であるかを確認します(大文字と小文字の区別あり)。

StringEqualsIgnoreCase

キーを文字列値と比較し、完全一致であるかを確認します(大文字と小文字の区別なし)。

StringNotEqualsIgnoreCase

キーを文字列値と比較し、不一致であるかを確認します(大文字と小文字の区別なし)。

StringLike

キーを文字列値と比較し、完全一致であるかを確認します(大文字と小文字の区別あり)。含めることができる * と?ワイルドカード文字を使用できます。

StringNotLike

キーを文字列値と比較し、不一致であるかを確認します(大文字と小文字の区別あり)。含めることができる * と?ワイルドカード文字を使用できます。

NumericEquals (数値機器)

キーを数値と比較し、完全一致であるかを確認します。

NumericNotEquals

キーを数値と比較し、不一致であるかを確認します。

NumericGreaterThan

キーを数値と比較し、「より大きい」の一致であるかどうかを確認します。

NumericGreaterThanEquals

キーを数値と比較し、「以上」の一致であるかどうかを確認します。

NumericLessThan

キーを数値と比較し、「より小さい」一致であるかを確認します。

NumericLessThanEquals

キーを数値と比較し、「小なり」の一致であるかを確認します。

ブール値

キーをブール値と比較し、「trueまたはfalse」の一致であるかを確認します。

IP アドレス

キーを IP アドレスまたは IP アドレスの範囲と比較します。

NotIpAddress

キーを IP アドレスまたは IP アドレスの範囲と比較し、不一致であるかを確認します。

null

現在の要求コンテキストに条件キーが存在するかどうかを確認します。

サポートされている条件キー

Conditionキー アクション 説明

AWS : sourceIP

IP 演算子

要求の送信元の IP アドレスと比較します。バケットまたはオブジェクトの処理に使用できます。

  • 注: S3 要求が管理ノードおよびゲートウェイノード上のロードバランササービスを介して送信された場合は、ロードバランササービスのアップストリームの IP アドレスと比較します。

  • 注 * :サードパーティ製の非透過型ロードバランサを使用する場合は、そのロードバランサの IP アドレスと比較します。任意 X-Forwarded-For ヘッダーの有効性を確認できないため、ヘッダーは無視されます。

AWS :ユーザ名

リソース / ID

要求の送信者のユーザ名と比較します。バケットまたはオブジェクトの処理に使用できます。

S3 :デリミタ

S3 : ListBucket と

S3 : ListBucketVersions 権限

ListObjects要求またはListObjectVersions要求で指定されたdelimiterパラメータと比較します。

S3:ExistingObjectTag /<tag-key>

S3 : DeleteObjectTagging

S3 : DeleteObjectVersionTagging

S3 : GetObject

S3 : GetObjectAcl

3:GetObjectTagging

S3 : GetObjectVersion

S3:GetObjectVersionAcl

S3 : GetObjectVersionTagging

S3:PutObjectAcl

S3 : PutObjectTagging

S3:PutObjectVersionAcl

S3 : PutObjectVersionTagging

既存のオブジェクトに特定のタグキーと値が必要になります。

S3 : max-keys

S3 : ListBucket と

S3 : ListBucketVersions 権限

ListObjects要求またはListObjectVersions要求で指定されたmax-keysパラメータと比較します。

S3 : object-lock-remaining-retention-days

S3 : PutObject

で指定されたretain-until-dateと比較します x-amz-object-lock-retain-until-date 次の要求について、これらの値が許容範囲内であることを確認するために、要求ヘッダーまたはバケットのデフォルト保持期間から計算されます。

  • PutObject

  • CopyObject

  • CreateMultipartUpload を実行します

S3 : object-lock-remaining-retention-days

S3 : PutObjectRetention

は、PutObjectRetention要求で指定されたretain-until-dateと比較して、許容範囲内であることを確認します。

S3 :プレフィックス

S3 : ListBucket と

S3 : ListBucketVersions 権限

ListObjects要求またはListObjectVersions要求で指定されたprefixパラメータと比較します。

S3:RequestObjectTag /<tag-key>

S3 : PutObject

S3 : PutObjectTagging

S3 : PutObjectVersionTagging

オブジェクト要求にタグ付けが含まれている場合は、特定のタグキーと値が必要になります。

ポリシーで変数を指定します

ポリシーで変数を使用すると、該当するポリシーの情報を設定できます。でポリシー変数を使用できます Resource の要素と文字列比較 Condition 要素(Element):

この例では、変数を使用しています ${aws:username} はResource要素の一部です。

"Resource": "arn:aws:s3:::bucket-name/home/${aws:username}/*"

この例では、変数を使用しています ${aws:username} は、条件ブロックの条件値の一部です。

"Condition": {
    "StringLike": {
      "s3:prefix": "${aws:username}/*"
		...
},
		...
変数( Variable ) 説明

${aws:SourceIp}

SourceIp キーを指定の変数として使用します。

${aws:username}

username キーを指定の変数として使用します。

${s3:prefix}

サービス固有のプレフィックスキーを指定の変数として使用します。

${s3:max-keys}

サービス固有の max-keys キーを指定の変数として使用します。

${*}

特殊文字です。文字をリテラル * 文字として使用します。

${?}

特殊文字です。文字をリテラル文字として使用しますか?を押します。

${$}

特殊文字です。文字「 $ 」をリテラル文字として使用します。

特別な処理を必要とするポリシーを作成します

ポリシーで付与される権限によって、アカウントの root ユーザがロックアウトされるなど、セキュリティや継続的な運用に支障が生じることがあります。StorageGRID の S3 REST API の実装では、ポリシーの検証時の制限は Amazon よりも厳しくありませんが、評価時は同等の制限が適用されます。

Policy 概要 の略 ポリシータイプ Amazon の動作 StorageGRID の動作

自身に対し、 root アカウントに対するすべての権限を拒否する

バケット

有効で適用されるが、 S3 バケットのすべてのポリシー処理に対する権限は引き続き root ユーザアカウントに付与される

同じ

自身に対しユーザ / グループに対するすべての権限を拒否する

グループ

有効で適用されます

同じ

外部アカウントグループに対し任意の権限を許可します

バケット

無効なプリンシパルです

有効だが、 S3 バケットのすべてのポリシー処理に対する権限をポリシーで許可すると 405 Method Not Allowed エラーが返されます

外部アカウントの root またはユーザに任意の権限を許可します

バケット

有効だが、 S3 バケットのすべてのポリシー処理に対する権限をポリシーで許可すると 405 Method Not Allowed エラーが返されます

同じ

すべてのユーザにすべての処理に対する権限を許可します

バケット

有効だが、外部アカウントの root およびユーザについては、 S3 バケットのすべてのポリシー処理に対する権限で 405 Method Not Allowed エラーが返されます

同じ

すべてのユーザに対してすべての処理に対する権限を拒否する

バケット

有効で適用されるが、 S3 バケットのすべてのポリシー処理に対する権限は引き続き root ユーザアカウントに付与される

同じ

プリンシパルとして新規のユーザまたはグループを指定します

バケット

無効なプリンシパルです

有効

リソースとして新規の S3 バケットを指定する必要があります

グループ

有効

同じ

プリンシパルとしてローカルグループを指定します

バケット

無効なプリンシパルです

有効

ポリシーは、オブジェクトをPUTするための非所有者アカウント(匿名アカウントを含む)権限を付与します。

バケット

有効。オブジェクトは作成者アカウントによって所有され、バケットポリシーは適用されません。作成者アカウントは、オブジェクトの ACL を使用してオブジェクトにアクセス権限を付与する必要があります。

有効。オブジェクトはバケット所有者アカウントによって所有され、バケットポリシーが適用される。

Write-Once-Read-Many ( WORM )による保護

データ、ユーザ定義オブジェクトのメタデータ、 S3 オブジェクトのタグを保護するために、 Write-Once-Read-Many ( WORM )バケットを作成することができます。新しいオブジェクトの作成を許可し、既存のコンテンツの上書きや削除を防止するように WORM バケットを設定します。ここで説明するいずれかの方法を使用します。

上書きを常に拒否するには、次の操作を実行します。

  • Grid Managerで、* configuration > Security > Security settings > Network and objects の順に選択し、 Prevent client modification *チェックボックスを選択します。

  • 次のルールと S3 ポリシーを適用します。

    • S3 ポリシーに PutOverwriteObject DENY 処理を追加します。

    • S3 ポリシーに DeleteObject DENY 処理を追加します。

    • S3ポリシーにPutObject Allow処理を追加します。

メモ S3ポリシーでDeleteObjectをDENYに設定しても、「zero copies after 30 days」などのルールが存在する場合はILMによってオブジェクトが削除されます。
メモ これらのルールとポリシーがすべて適用されても、同時書き込みからは保護されません(状況Aを参照)。保護の対象になるのはシーケンシャルな上書きです(状況 B を参照)。
  • 状況 A * :同時書き込み(保護対象外)

/mybucket/important.doc
PUT#1 ---> OK
PUT#2 -------> OK
  • 状況 B * :シーケンシャルな上書き(保護対象)

/mybucket/important.doc
PUT#1 -------> PUT#2 ---X (denied)