バケットの処理

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

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

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

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

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

処理 実装
DELETE Bucket Amazon S3 REST APIのすべての動作が実装されています。
DELETE Bucket cors この処理は、バケットのCORS設定を削除します。
DELETE Bucket lifecycle この処理は、バケットからライフサイクル設定を削除します。
DELETE Bucket policy この処理は、バケットに関連付けられているポリシーを削除します。
DELETE Bucket replication この処理は、バケットに関連付けられているレプリケーション設定を削除します。
GET Bucket (List Objects)、バージョン1およびバージョン2 この処理は、バケット内のオブジェクトの一部またはすべて(最大1,000)を返します。
REDUCED_REDUNDANCYストレージ クラス オプションを使用してオブジェクトを取り込んだ場合でも、オブジェクトのストレージ クラスには次のどちらかの値が返されます。
  • STANDARD。オブジェクトがストレージ ノードで構成されるストレージ プールに格納されていることを示します。
  • GLACIER。オブジェクトがクラウド ストレージ プールによって指定された外部バケットに移動されたことを示します。

バケットに同じプレフィックスを持つ削除されたキーが多数含まれている場合は、キーを含まないCommonPrefixesが応答にいくつか追加されることがあります。

GET Bucket acl この処理は、バケットの所有者にバケットに対するフル アクセスがあることを示す応答を返し、所有者のID、表示名、および権限を表示します。
GET Bucket cors この処理は、バケットのcors設定を返します。
GET Bucket lifecycle この処理は、バケットのライフサイクル設定を返します。
GET Bucket location この処理は、PUT Bucket要求でLocationConstraint要素を使用して設定されたリージョンを返します。バケットのリージョンがus-east-1である場合は、リージョンに対して空の文字列が返されます。
GET Bucket notification この処理は、バケットに関連付けられている通知設定を返します。
GET Bucket Object versions

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

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

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

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

PUT Bucket lifecycle この処理は、バケットの新しいライフサイクル設定を作成するか、既存のライフサイクル設定を置き換えます。
StorageGRIDでは、1つのライフサイクル設定で最大1,000個のライフサイクル ルールがサポートされます。各ルールには次のXML要素を追加できます。
  • Expiration(Days、Date)
  • NoncurrentVersionExpiration(NoncurrentDays)
  • Filter(Prefix、Tag)
  • Status
  • ID
StorageGRIDでは、次のアクションがサポートされません。
  • AbortIncompleteMultipartUpload
  • ExpiredObjectDeleteMarker
  • Transition

バケット ライフサイクルのExpirationアクションとILMの配置手順の相互作用については、StorageGRIDの管理手順の中の「オブジェクトのライフサイクル全体にわたるILMの動作」を参照してください。

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

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

  • 次のイベント タイプには通知を設定できません。これらのイベント タイプはサポートされていません
    • s3:ReducedRedundancyLostObject
    • s3:ObjectRestore:Completed
    • s3:ObjectRestore:Post
  • StorageGRIDから送信されるイベント通知は標準のJSON形式を使用しますが、次の表に示すように使用されないキーおよび特定の値が使用されるキーがあります。

    キー名 StorageGRID
    eventSource sgws:s3
    awsRegion 含まれない
    x-amz-id-2 含まれない
    arn urn:sgws:s3:::bucket_name
PUT Bucket policy この処理は、バケットに関連付けられているポリシーを設定します。
PUT Bucket replication この処理は、要求の本文に含まれるレプリケーション設定XMLを使用して、バケットのStorageGRID CloudMirrorレプリケーションを設定します。
CloudMirrorレプリケーションについては、実装に関する次の詳細事項に注意してください。
  • StorageGRIDでは、V1のレプリケーション設定のみがサポートされます。つまり、StorageGRIDではルールにFilter要素を使用できず、V1の規則に従ってオブジェクト バージョンが削除されます。詳細については、レプリケーション設定に関するAmazonのドキュメントを参照してください。
  • バケット レプリケーションは、バージョン管理されているバケットでもバージョン管理されていないバケットでも設定できます。
  • レプリケーション設定XMLの各ルールで異なるデスティネーション バケットを指定できます。1つのソース バケットを複数のデスティネーション バケットにレプリケートできます。
  • デスティネーション バケットは、Tenant Managerまたはテナント管理APIで指定されたStorageGRIDエンドポイントのURNとして指定する必要があります。

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

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

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

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