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

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

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

アクセスポリシーの概要

StorageGRIDでサポートされているアクセス ポリシーには 2 種類あります。

  • バケット ポリシー。GetBucketPolicy、PutBucketPolicy、DeleteBucketPolicy S3 API 操作、または Tenant Manager または Tenant Management API を使用して管理されます。バケット ポリシーはバケットに添付され、バケット所有者アカウントまたはその他のアカウントのユーザーによるバケットおよびバケット内のオブジェクトへのアクセスを制御するように構成されます。バケット ポリシーは 1 つのバケットにのみ適用され、複数のグループに適用される場合があります。

  • グループ ポリシー。これは、Tenant Manager または Tenant Management API を使用して設定されます。グループ ポリシーはアカウント内のグループに添付され、そのグループがそのアカウントが所有する特定のリソースにアクセスできるように構成されます。グループ ポリシーは 1 つのグループにのみ適用され、複数のバケットに適用される場合もあります。

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

StorageGRIDバケットおよびグループ ポリシーは、Amazon によって定義された特定の文法に従います。各ポリシー内にはポリシー ステートメントの配列があり、各ステートメントには次の要素が含まれています。

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

  • 効果

  • プリンシパル/非プリンシパル

  • リソース/非リソース

  • アクション/非アクション

  • 条件(オプション)

ポリシー ステートメントは、次の構造を使用して作成され、アクセス許可を指定します: <Condition> が適用される場合に、<Principal> が <Resource> に対して <Action> を実行することを許可/拒否するには、<Effect> を付与します。

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

要素 説明

シド

Sid 要素はオプションです。 Sid はユーザーへの説明としてのみ使用されます。これはStorageGRIDシステムによって保存されますが、解釈されません。

効果

Effect 要素を使用して、指定された操作が許可されるか拒否されるかを決定します。サポートされているアクション要素のキーワードを使用して、バケットまたはオブジェクトに対して許可 (または拒否) する操作を識別する必要があります。

プリンシパル/非プリンシパル

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

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

リソース/非リソース

リソース要素はバケットとオブジェクトを識別します。リソースを識別する Amazon リソースネーム (ARN) を使用して、バケットとオブジェクトへのアクセス許可を許可または拒否できます。

アクション/非アクション

アクション要素と効果要素は、権限の 2 つのコンポーネントです。グループがリソースを要求すると、リソースへのアクセスが許可または拒否されます。権限を明示的に割り当てない限りアクセスは拒否されますが、明示的な拒否を使用して、別のポリシーによって付与された権限を上書きすることができます。

条件

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

Action 要素では、ワイルドカード文字 (*) を使用して、すべての操作または操作のサブセットを指定できます。たとえば、このアクションは、s3:GetObject、s3:PutObject、s3:DeleteObject などの権限と一致します。

s3:*Object

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

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

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

次の例では、ステートメントは Effect、Principal、Action、および Resource 要素を使用しています。この例では、効果「許可」を使用してプリンシパル、管理者グループに権限を付与する完全なバケットポリシーステートメントを示しています。 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:s3:::mybucket",
        "arn:aws:s3:::mybucket/*"
      ]
    }
  ]
}

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

政策の一貫性

デフォルトでは、グループ ポリシーに加えた更新はすべて最終的に一貫性を持ちます。グループ ポリシーが整合すると、ポリシーのキャッシュにより、変更が有効になるまでにさらに 15 分かかることがあります。デフォルトでは、バケット ポリシーに加えた更新はすべて強力な整合性を持ちます。

必要に応じて、バケット ポリシー更新の一貫性保証を変更できます。たとえば、サイトが停止している間もバケット ポリシーの変更を利用できるようにしたい場合があります。

この場合、 Consistency-Control PutBucketPolicy リクエストのヘッダーを追加するか、PUT Bucket 一貫性リクエストを使用することもできます。バケット ポリシーが整合すると、ポリシーのキャッシュにより、変更が有効になるまでにさらに 8 秒かかることがあります。

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

ポリシーステートメントで ARN を使用する

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

  • 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、または、 `NotResource`除外のため。

  • S3 リソース ARN を使用してリソースを指定します。例えば:

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

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

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

Principal 要素を使用して、ポリシー ステートメントによってリソースへのアクセスが許可/拒否されるユーザー、グループ、またはテナント アカウントを識別します。

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

  • ポリシーでは、プリンシパルは要素「Principal」で示され、除外する場合は「NotPrincipal」で示されます。

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

    "Principal": { "AWS": "account_id"}
    "Principal": { "AWS": "identity_arn" }
  • この例では、アカウント ルートとアカウント内のすべてのユーザーを含むテナント アカウント ID 27233906934684427525 を使用します。

     "Principal": { "AWS": "27233906934684427525" }
  • アカウント ルートのみを指定することもできます。

    "Principal": { "AWS": "arn:aws:iam::27233906934684427525:root" }
  • 特定のフェデレーション ユーザー (「Alex」) を指定できます。

    "Principal": { "AWS": "arn:aws:iam::27233906934684427525:federated-user/Alex" }
  • 特定のフェデレーション グループ (「マネージャー」) を指定できます。

    "Principal": { "AWS": "arn:aws:iam::27233906934684427525:federated-group/Managers"  }
  • 匿名プリンシパルを指定できます。

    "Principal": "*"
  • 曖昧さを避けるために、ユーザー名の代わりにユーザーの UUID を使用できます。

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

    例えば、アレックスが組織を離れ、ユーザー名が `Alex`削除されます。新しいアレックスが組織に参加し、同じ役割を担う場合 `Alex`ユーザー名を変更すると、新しいユーザーが元のユーザーに付与された権限を意図せず継承してしまう可能性があります。

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

ポリシーで権限を指定する

ポリシーでは、アクション要素はリソースへのアクセス許可を許可/拒否するために使用されます。ポリシーで指定できる一連の権限があり、これらは要素「Action」で示され、除外の場合は「NotAction」で示されます。これらの各要素は、特定の S3 REST API 操作にマッピングされます。

表には、バケットに適用される権限とオブジェクトに適用される権限がリストされています。

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

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

権限 S3 REST API 操作 StorageGRID向けカスタム

s3:バケットの作成

CreateBucket

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

s3:バケットの削除

DeleteBucket

s3:DeleteBucketMetadata通知

バケットメタデータ通知設定の削除

はい

s3:DeleteBucketポリシー

DeleteBucketPolicy

s3:レプリケーション構成の削除

バケットレプリケーションの削除

はい、PUTとDELETEに別々の権限が必要です

s3:GetBucketAcl

GetBucketAcl

s3:GetBucketCompliance

GET バケットコンプライアンス(非推奨)

はい

s3:GetBucketConsistency

GETバケットの一貫性

はい

s3:GetBucketCORS

GetBucketCors

s3:暗号化設定の取得

バケット暗号化を取得

s3:GetBucketLastAccessTime

GET バケットの最終アクセス時刻

はい

s3:GetBucketLocation

GetBucketLocation

s3:GetBucketMetadataNotification

バケットメタデータ通知設定の取得

はい

s3:GetBucketNotification

GetBucketNotificationConfiguration

s3:GetBucketObjectLockConfiguration

GetObjectLockConfiguration

s3:GetBucketPolicy

GetBucketPolicy

s3:GetBucketTagging

GetBucketTagging

s3:GetBucketVersioning

GetBucketVersioning

s3:GetLifecycleConfiguration

GetBucketLifecycleConfiguration

s3:GetReplicationConfiguration

GetBucketReplication

s3:すべてのバケットをリスト

  • ListBuckets

  • ストレージ使用量の取得

はい、GET ストレージ使用量の場合です。

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

s3:リストバケット

  • ListObjects

  • HeadBucket

  • オブジェクトの復元

s3:リストバケットマルチパートアップロード

  • リストマルチパートアップロード

  • オブジェクトの復元

s3:バケットバージョンのリスト

GETバケットのバージョン

s3:PutBucketコンプライアンス

PUT バケットコンプライアンス(非推奨)

はい

s3:PutBucketConsistency

PUT バケットの一貫性

はい

s3:PutBucketCORS

  • バケットCorsの削除†

  • PutBucketCors

s3:PutEncryptionConfiguration

  • バケット暗号化の削除

  • PutBucketEncryption

s3:PutBucket最終アクセス時間

バケットの最終アクセス時刻をPUTする

はい

s3:PutBucketMetadataNotification

PUT バケットメタデータ通知設定

はい

s3:PutBucket通知

PutBucketNotificationConfiguration

s3:PutBucketObjectLockConfiguration

  • CreateBucketで `x-amz-bucket-object-lock-enabled: true`リクエストヘッダー(s3:CreateBucket権限も必要)

  • PutObjectLockConfiguration

s3:PutBucketポリシー

PutBucketPolicy

s3:PutBucketTagging

  • バケットタグの削除†

  • PutBucketTagging

s3:PutBucketバージョン管理

PutBucketVersioning

s3:PutLifecycleConfiguration

  • バケットライフサイクルの削除†

  • PutBucketLifecycleConfiguration

s3:PutReplicationConfiguration

PutBucketレプリケーション

はい、PUTとDELETEに別々の権限が必要です

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

権限 S3 REST API 操作 StorageGRID向けカスタム

s3:マルチパートアップロードの中止

  • AbortMultipartUpload

  • オブジェクトの復元

s3:バイパスガバナンス保持

  • DeleteObject

  • DeleteObjects

  • PutObjectRetention

s3:オブジェクトの削除

  • DeleteObject

  • DeleteObjects

  • オブジェクトの復元

s3:オブジェクトのタグ付けを削除

DeleteObjectTagging

s3:オブジェクトバージョンタグ付けの削除

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

s3:オブジェクトバージョンの削除

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

s3:GetObject

  • GetObject

  • HeadObject

  • オブジェクトの復元

  • オブジェクトコンテンツの選択

s3:GetObjectAcl

GetObjectAcl

s3:GetObjectLegalHold

GetObjectLegalHold

s3:GetObjectRetention

GetObjectRetention

s3:GetObjectTagging

GetObjectTagging

s3:GetObjectVersionTagging

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

s3:GetObjectVersion

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

s3:ListMultipartUploadParts

リストパーツ、復元オブジェクト

s3:PutObject

  • PutObject

  • CopyObject

  • オブジェクトの復元

  • CreateMultipartUpload

  • CompleteMultipartUpload

  • UploadPart

  • UploadPartCopy

s3:PutObjectLegalHold

PutObjectLegalHold

s3:PutObjectRetention

PutObjectRetention

s3:オブジェクトのタグ付け

PutObjectTagging

s3:PutObjectVersionTagging

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

s3:上書きオブジェクト

  • PutObject

  • CopyObject

  • PutObjectTagging

  • DeleteObjectTagging

  • CompleteMultipartUpload

はい

s3:オブジェクトの復元

オブジェクトの復元

PutOverwriteObject権限を使用する

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

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

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

  • 拒否: クライアントはオブジェクトを上書きできません。 Deny に設定すると、PutOverwriteObject 権限は次のように動作します。

    • 同じパスに既存のオブジェクトが見つかった場合:

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

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

      • S3 のバージョン管理が有効になっている場合、Deny 設定により、PutObjectTagging または DeleteObjectTagging 操作によってオブジェクトとその非現在のバージョンの TagSet が変更されることが防止されます。

    • 既存のオブジェクトが見つからない場合、この権限は効果がありません。

  • この権限が存在しない場合は、Allow が設定されている場合と同じ効果になります。

メモ 現在の S3 ポリシーで上書きが許可されていて、PutOverwriteObject 権限が Deny に設定されている場合、クライアントはオブジェクトのデータ、ユーザー定義のメタデータ、またはオブジェクトのタグ付けを上書きできません。さらに、クライアントによる変更を禁止する チェックボックスが選択されている場合 ([構成] > [セキュリティ設定] > [ネットワークとオブジェクト])、その設定は PutOverwriteObject 権限の設定よりも優先されます。

ポリシーで条件を指定する

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

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

Condition: {
     condition_type: {
          condition_key: condition_values

次の例では、IpAddress 条件で SourceIp 条件キーが使用されています。

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

サポートされている条件演算子

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

  • 数字

  • ブーリアン

  • IPアドレス

  • ヌルチェック

条件演算子 説明

文字列に等しい

完全一致 (大文字と小文字を区別) に基づいてキーと文字列値を比較します。

文字列が等しくない

否定一致(大文字と小文字を区別)に基づいてキーと文字列値を比較します。

文字列が等しい場合、大文字と小文字を区別しない

完全一致 (大文字と小文字は区別されません) に基づいてキーと文字列値を比較します。

文字列が等しくない場合大文字と小文字を区別しない

否定一致(大文字と小文字を区別しない)に基づいてキーと文字列値を比較します。

文字列のような

完全一致 (大文字と小文字を区別) に基づいてキーと文字列値を比較します。 * および ? ワイルドカード文字を含めることができます。

文字列が似ていない

否定一致(大文字と小文字を区別)に基づいてキーと文字列値を比較します。 * および ? ワイルドカード文字を含めることができます。

数値等しい

完全一致に基づいてキーと数値を比較します。

数値NotEquals

否定一致に基づいてキーと数値を比較します。

数値より大きい

「より大きい」一致に基づいてキーと数値を比較します。

数値より大きい

「以上」の一致に基づいてキーと数値を比較します。

数値の小数点以下

「より小さい」一致に基づいてキーを数値と比較します。

数値の「未満」

「以下」の一致に基づいてキーと数値を比較します。

ブール

「true または false」の一致に基づいてキーをブール値と比較します。

IPアドレス

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

IPアドレスなし

否定一致に基づいて、キーを IP アドレスまたは IP アドレスの範囲と比較します。

Null

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

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

条件キー アクション 説明

aws:ソースIP

IPオペレーター

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

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

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

aws:ユーザー名

リソース/アイデンティティ

リクエストの送信元のユーザー名と比較します。バケットまたはオブジェクトの操作に使用できます。

s3:区切り文字

s3:ListBucketと

s3:ListBucketVersions 権限

ListObjects または ListObjectVersions リクエストで指定された区切り文字パラメータと比較します。

s3:ExistingObjectTag/<タグキー>

s3:オブジェクトのタグ付けを削除

s3:オブジェクトバージョンタグ付けの削除

s3:GetObject

s3:GetObjectAcl

3:オブジェクトのタグ付けを取得する

s3:GetObjectVersion

s3:GetObjectVersionAcl

s3:GetObjectVersionTagging

s3:PutObjectAcl

s3:オブジェクトのタグ付け

s3:PutObjectVersionAcl

s3:PutObjectVersionTagging

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

s3:最大キー数

s3:ListBucketと

s3:ListBucketVersions 権限

ListObjects または ListObjectVersions リクエストで指定された max-keys パラメータと比較します。

s3:オブジェクトロックの残り保持日数

s3:PutObject

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

  • PutObject

  • CopyObject

  • CreateMultipartUpload

s3:オブジェクトロックの残り保持日数

s3:PutObjectRetention

PutObjectRetention リクエストで指定された retain-until-date と比較して、それが許容範囲内であることを確認します。

s3:プレフィックス

s3:ListBucketと

s3:ListBucketVersions 権限

ListObjects または ListObjectVersions リクエストで指定されたプレフィックス パラメータと比較します。

s3:RequestObjectTag/<タグキー>

s3:PutObject

s3:オブジェクトのタグ付け

s3:PutObjectVersionTagging

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

ポリシーで変数を指定する

利用可能な場合にポリシー情報を入力するには、ポリシー内の変数を使用できます。ポリシー変数は、 `Resource`要素と文字列の比較では `Condition`要素。

この例では、変数 `${aws:username}`リソース要素の一部です:

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

この例では、変数 `${aws:username}`条件ブロック内の条件値の一部です。

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

${aws:SourceIp}

提供された変数として SourceIp キーを使用します。

${aws:username}

提供された変数としてユーザー名キーを使用します。

${s3:prefix}

提供された変数としてサービス固有のプレフィックス キーを使用します。

${s3:max-keys}

提供された変数としてサービス固有の max-keys キーを使用します。

${*}

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

${?}

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

${$}

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

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

場合によっては、ポリシーによって、アカウントのルート ユーザーをロックアウトするなど、セキュリティ上危険な権限や継続的な操作にとって危険な権限が付与されることがあります。 StorageGRID S3 REST API 実装は、ポリシー検証時には Amazon よりも制限が少なくなりますが、ポリシー評価時には同様に厳格になります。

ポリシーの説明 ポリシー タイプ アマゾンの行動 StorageGRIDの動作

ルートアカウントへのすべての権限を拒否する

バケット

有効かつ強制されていますが、ルートユーザーアカウントはすべての S3 バケットポリシー操作の権限を保持します。

同じ

ユーザー/グループへのすべての権限を拒否する

グループ

有効かつ強制

同じ

外国のアカウントグループに任意の権限を許可する

バケット

無効なプリンシパル

有効ですが、すべての S3 バケットポリシー操作の権限は、ポリシーで許可されている場合、405 メソッドが許可されていないエラーを返します。

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

バケット

有効ですが、すべての S3 バケットポリシー操作の権限は、ポリシーで許可されている場合、405 メソッドが許可されていないエラーを返します。

同じ

すべてのアクションに対する権限を全員に許可する

バケット

有効ですが、すべてのS3バケットポリシー操作の権限は、外部アカウントのルートとユーザーに対して405 Method Not Allowedエラーを返します。

同じ

すべてのアクションに対する全員の権限を拒否

バケット

有効かつ強制されていますが、ルートユーザーアカウントはすべての S3 バケットポリシー操作の権限を保持します。

同じ

プリンシパルは存在しないユーザーまたはグループです

バケット

無効なプリンシパル

有効

リソースは存在しないS3バケットです

グループ

有効

同じ

校長は地元のグループです

バケット

無効なプリンシパル

有効

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

バケット

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

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

一度書き込み、何度も読み取り可能な(WORM)保護

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

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

  • グリッド マネージャーから、[構成] > [セキュリティ] > [セキュリティ設定] > [ネットワークとオブジェクト] に移動し、[クライアントの変更を禁止する] チェックボックスをオンにします。

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

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

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

    • S3 ポリシーに PutObject ALLOW 操作を追加します。

メモ S3 ポリシーで DeleteObject を DENY に設定しても、「30 日後にコピーがゼロ」などのルールが存在する場合は ILM によるオブジェクトの削除を防ぐことはできません。
メモ これらすべてのルールとポリシーを適用しても、同時書き込みを防ぐことはできません (状況 A を参照)。連続した完了上書きは防止します (状況 B を参照)。

状況A: 同時書き込み(防御されていない)

/mybucket/important.doc
PUT#1 ---> OK
PUT#2 -------> OK

状況B: 連続した完了上書き(防止対象)

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