バケットの処理

StorageGRID Webscaleシステムでは、S3テナント アカウントあたり最大1,000個のバケットがサポートされます。

バケット名については、AWS US Standardリージョンの制限が適用されますが、S3仮想ホスト形式の要求をサポートするためにDNSの命名規則にも従う必要があります。

GET Bucket (List Objects)処理とGET Bucket versions処理では、StorageGRID Webscaleの整合性制御がサポートされます。

最終アクセス時間の更新が個々のバケットで有効になっているか無効になっているかを確認することができます。

次の表に、StorageGRID WebscaleでのS3 REST APIバケット処理の実装方法を示します。これらの処理を実行するには、必要なアクセス クレデンシャルがアカウントに付与されている必要があります。

処理 実装
DELETE Bucket Amazon S3 REST APIのすべての動作が実装されています。
DELETE Bucket cors この処理では、バケットのCORS設定が削除されます。
DELETE Bucket policy この処理では、バケットに関連付けられているポリシーが削除されます。
DELETE Bucket replication この処理では、バケットに関連付けられているレプリケーション設定が削除されます。
GET Bucket (List Objects), version 1 この処理では、バケット内のオブジェクトの一部またはすべて(最大1,000)が返されます。

オブジェクトのストレージ クラスは、REDUCED_REDUNDANCYストレージ クラス オプションによってオブジェクトを取り込んだ場合でも、常にSTANDARDと表示されます。

多数のキーをトラバースする要求では、特別な処理が必要になります。そのような要求からは、タイムアウトを回避するために、切り捨てられた応答や空の応答が返されることがあります。

完全な結果を取得するには、結果が切り捨てられたときの通常の方法と同様に、markerパラメータを更新しながら繰り返し要求を行う必要があります。NextMarkerが返される場合は常にそのマーカーを使用します。StorageGRID WebscaleのS3 REST APIの実装では、最後に返されたキーよりも良い場合、Amazon S3 REST APIでは返されない状況でNextMarkerが返されることがあります。

GET Bucket acl この処理では、バケットの所有者にバケットに対するフル アクセスがあることを示す応答が返され、所有者のID、表示名、および権限が表示されます。
GET Bucket cors この処理では、バケットのcors設定が返されます。
GET Bucket location この処理では、バケットのリージョンが返されます。デフォルトでは、PUT Bucket要求でLocationConstraint要素を使用してリージョンが設定されていないかぎり、us-east-1が返されます。
GET Bucket Object versions

バケットに対するREADアクセスがある場合、versionsサブリソースを使用して、バケット内のオブジェクトのすべてのバージョンのメタデータのリストが表示されます。

GET Bucket notification この処理では、バケットに関連付けられている通知設定が返されます。
GET Bucket policy この処理では、バケットに関連付けられているポリシーが返されます。
GET Bucket replication この処理では、バケットに関連付けられているレプリケーション設定が返されます。
GET Bucket versioning

versioningサブリソースを使用して、バケットのバージョン管理の状態を取得できます。バケットがバージョン管理に対応していない場合は「Unversioned」、バージョン管理が有効になっている場合は「Enabled」、バージョン管理が一時停止中の場合は「Suspended」が返されます。

HEAD Bucket この処理では、バケットが存在し、そのバケットへのアクセス権限があるかどうかが判断されます。
PUT Bucket この処理では、新しいバケットが作成されます。バケットを作成すると、そのバケットの所有者になります。
  • バケット名は次のルールを満たす必要があります。
    • StorageGRID Webscaleシステム全体で(テナント アカウント内だけではなく)一意である必要があります。
    • DNSに準拠している必要があります。
    • パスワードは3~63文字で指定する必要があります。
    • 1つまたは一連の複数のラベルを指定できます。隣接するラベルはピリオドで区切ります。使用可能な文字は、小文字のアルファベット、数字、ハイフンのみで、各ラベルの先頭と末尾の文字は小文字のアルファベットか数字にする必要があります。
    • テキスト形式のIPアドレスにはできません。
    • ピリオドが原因でサーバ ワイルドカード証明書の検証で問題が発生するため、仮想ホスト形式の要求でピリオドを使用しないでください。
  • デフォルトではバケットはus-east-1リージョンに作成されますが、要求の本文でLocationConstraint 要求要素を使用し、別のリージョンを指定できます。LocationConstraint要素を使用する場合は、Grid Managerまたはグリッド管理APIを使用して定義されたリージョンの正確な名前を指定する必要があります。使用すべきリージョン名がわからない場合は、システム管理者にお問い合わせください。
    注:StorageGRID Webscaleで定義されていないリージョンをPUT Bucket要求で使用すると、エラーが発生します。
  • PUT Bucket要求を使用する場合は、XML要求の本文にSGComplianceXML要素を含めることができます。SGComplianceはカスタムのStorageGRID Webscale要素で、準拠バケットを作成できます。

PUT Bucket cors この処理では、バケットのCORS設定を指定し、クロスオリジン要求を処理できるようにします。

Cross-Origin Resource Sharing(CORS)は、あるドメインのクライアントWebアプリケーションが別のドメインのリソースにアクセスできるようにするセキュリティ機能です。たとえば、imagesという名前のS3バケットを使用してグラフィックを格納するとします。imagesバケットに対してCORS設定を指定することで、そのバケット内の画像をWebサイトhttp://www.example.comに表示できます。

PUT Bucket notification この処理では、要求の本文に含まれる通知設定XMLを使用してバケットの通知を設定します。
実装に関する次の詳細事項に注意してください。
  • StorageGRID Webscaleでは、Simple Notification Service(SNS)のトピックがデスティネーションとしてサポートされます。Simple Queue Service(SQS)エンドポイントまたはAmazon Lambdaエンドポイントはサポートされません。
  • 通知のデスティネーションは、StorageGRID WebscaleエンドポイントのURNとして指定する必要があります。エンドポイントは、Tenant Managerまたはテナント管理APIを使用して作成できます。

    通知設定が機能するためには、エンドポイントが存在している必要があります。エンドポイントが存在しない場合は、400 Bad RequestエラーがコードInvalidArgumentとともに返されます。

  • s3:ReducedRedundancyLostObjectイベントの通知はサポートされません。
  • イベント通知メッセージではほとんどのキーに標準値が使用されますが、次のキーは例外です。
    • eventSourcesgws:s3を返します。
    • awsRegion:このキーは返されません。
    • x-amz-id-2:このキーは返されません。
    • arnurn:sgws:s3:::bucket-name
PUT Bucket policy この処理では、バケットに関連付けられているポリシーが設定されます。
PUT Bucket replication この処理では、要求の本文に含まれるレプリケーション設定XMLを使用して、バケットのStorageGRID Webscale CloudMirrorレプリケーションが設定されます。
CloudMirrorレプリケーションについては、実装に関する次の詳細事項に注意してください。
  • バケット レプリケーションは、バージョン管理されているバケットでもバージョン管理されていないバケットでも設定できます。
  • レプリケーション設定XMLの各ルールで異なるデスティネーション バケットを指定できます。1つのソース バケットを複数のデスティネーション バケットにレプリケートできます。
  • デスティネーション バケットは、Tenant Managerまたはテナント管理APIで指定されたStorageGRID WebscaleエンドポイントのURNとして指定する必要があります。

    レプリケーション設定が機能するためには、エンドポイントが存在している必要があります。エンドポイントが存在しない場合は、400 Bad Requestとして要求が失敗します。エラー メッセージ:Unable to save the replication policy. The specified endpoint URN does not exist: URN.

  • 設定XMLでRoleを指定する必要はありません。この値はStorageGRID Webscaleでは使用されず、送信されても無視されます。
  • 設定XMLでストレージ クラスを省略した場合、StorageGRID WebscaleではデフォルトでSTANDARDストレージ クラスが使用されます。
  • ソース バケットからオブジェクトを削除する場合、またはソース バケット自体を削除する場合、クロスリージョン レプリケーションは次のように動作します。
    • レプリケートの前にオブジェクトまたはバケットを削除すると、オブジェクトまたはバケットはレプリケートされず、通知は届きません。
    • レプリケートのあとにオブジェクトまたはバケットを削除すると、StorageGRID Webscaleは、クロスリージョン レプリケーションに対するAmazon S3の通常の削除動作に従います。
PUT Bucket versioning

versioningサブリソースを使用して、既存のバケットのバージョン管理の状態を設定できます。バージョン管理の状態は、次のいずれかの値に設定できます。

  • Enabled:バケット内のオブジェクトに対してバージョン管理を有効にします。バケットに追加されるすべてのオブジェクトに、一意のバージョンIDが割り当てられます。
  • Suspended:バケット内のオブジェクトに対してバージョン管理を無効にします。バケットに追加されるすべてのオブジェクトに、バージョンID nullが割り当てられます。