StorageGRIDにおけるS3バケットの操作と実装の詳細
StorageGRIDシステムは、S3テナントアカウントごとに最大5,000個のバケットをサポートします。
各グリッドには最大100,000個のバケットを設定できます。
5,000個のバケットをサポートするには、グリッド内の各ストレージノードに最低64 GBのRAMが必要です。
バケット名の制限は AWS US Standard リージョンの制限に従いますが、S3 仮想ホスト型リクエストをサポートするために、さらに DNS 命名規則に基づいて制限する必要があります。
詳細については、次を参照してください。
ListObjects(GET Bucket)およびListObjectVersions(GET Bucket object versions)操作は StorageGRID "一貫性値"をサポートしています。
個々のバケットについて、最終アクセス時刻の更新が有効になっているか無効になっているかを確認できます。"GET Bucketの最終アクセス時間"を参照してください。
次の表は、StorageGRID が S3 REST API バケット操作を実装する方法を示しています。これらの操作を実行するには、アカウントに必要なアクセス認証情報を提供する必要があります。
| 処理 | 導入 |
|---|---|
CreateBucket |
新しいバケットを作成します。バケットを作成すると、バケットの所有者になります。
|
DeleteBucket |
バケットを削除します。 |
DeleteBucketCors |
バケットのCORS設定を削除します。 |
DeleteBucketEncryption |
バケットからデフォルトの暗号化を削除します。既存の暗号化されたオブジェクトは暗号化されたままですが、バケットに新しく追加されたオブジェクトは暗号化されません。 |
DeleteBucketLifecycle |
バケットからライフサイクル設定を削除します。"S3ライフサイクル構成を作成する"を参照してください。 |
DeleteBucketPolicy |
バケットに紐付けられているポリシーを削除します。 |
DeleteBucketReplication |
バケットに紐付けられているレプリケーション構成を削除します。 |
DeleteBucketTagging |
`tagging`サブリソースを使用して、バケットからすべてのタグを削除します。 注意:このバケットにデフォルト以外の ILM ポリシータグが設定されている場合、値が割り当てられた `NTAP-SG-ILM-BUCKET-TAG`バケットタグが存在します。 `NTAP-SG-ILM-BUCKET-TAG`バケットタグが存在する場合は、DeleteBucketTaggingリクエストを発行しないでください。代わりに、 `NTAP-SG-ILM-BUCKET-TAG`タグとその割り当てられた値のみを指定してPutBucketTaggingリクエストを発行し、バケットから他のすべてのタグを削除してください。 `NTAP-SG-ILM-BUCKET-TAG`バケットタグを変更または削除しないでください。 |
GetBucketAcl |
肯定的な応答と、バケット所有者のID、DisplayName、および権限を返します。これは、所有者がバケットへの完全なアクセス権を持っていることを示します。 |
GetBucketCors |
バケットの `cors`設定を返します。 |
GetBucketEncryption |
バケットのデフォルトの暗号化設定を返します。 |
GetBucketLifecycleConfiguration (以前は GET Bucket lifecycle と呼ばれていました) |
バケットのライフサイクル構成を返します。"S3ライフサイクル構成を作成する"を参照してください。 |
GetBucketLocation |
`LocationConstraint`要素を使用してCreateBucketリクエストで設定されたリージョンを返します。バケットのリージョンが `us-east-1`の場合、リージョンには空の文字列が返されます。 |
GetBucketNotificationConfiguration (以前はGET Bucket notificationという名称でした) |
バケットに添付されている通知設定を返します。 |
GetBucketPolicy |
バケットに添付されているポリシーを返します。 |
GetBucketReplication |
バケットに添付されているレプリケーション構成を返します。 |
GetBucketTagging |
`tagging`サブリソースを使用して、バケットのすべてのタグを返します。 注意:このバケットにデフォルト以外の ILM ポリシータグが設定されている場合、値が割り当てられた `NTAP-SG-ILM-BUCKET-TAG`バケットタグが存在します。このタグを変更または削除しないでください。 |
GetBucketVersioning |
この実装では、 `versioning`サブリソースを使用してバケットのバージョン管理状態を返します。
|
GetObjectLockConfiguration |
バケットのデフォルトの保持モードとデフォルトの保持期間が設定されている場合は、それらを返します。 "S3 REST APIを使用してS3オブジェクトロックを設定する"を参照してください。 |
HeadBucket |
バケットが存在するかどうか、また、それにアクセスする権限があるかどうかを判断します。 この操作は以下を返します:
|
ListObjectsおよびListObjectsV2 (以前はGET Bucketという名称でした) |
バケット内のオブジェクトの一部または全部(最大1,000個)を返します。オブジェクトのストレージクラスは、オブジェクトが `REDUCED_REDUNDANCY`ストレージクラスオプションを使用して取り込まれた場合でも、2つの値のいずれかを持つことができます:
バケットに同じプレフィックスを持つ削除済みキーが多数含まれている場合、レスポンスにはキーを含まない `CommonPrefixes`が含まれる場合があります。 HeadObject および ListObject リクエストの場合、StorageGRID は以下の例に示すように異なる精度で LastModified タイムスタンプを返しますが、AWS は同じ精度でタイムスタンプを返します。
|
ListObjectVersions (以前は GET Bucket Object versions と呼ばれていました) |
バケットへの READ アクセスがある場合、この操作を `versions`サブリソースとともに使用すると、バケット内のオブジェクトのすべてのバージョンのメタデータが一覧表示されます。 |
PutBucketCors |
バケットのCORS設定を行い、バケットがクロスオリジンリクエストを処理できるようにします。クロスオリジンリソース共有(CORS)は、あるドメインのクライアントWebアプリケーションが別のドメインのリソースにアクセスできるようにするセキュリティメカニズムです。例えば、グラフィックを保存するために `images`という名前のS3バケットを使用するとします。 `images`バケットのCORS設定を行うことで、そのバケット内の画像をウェブサイト `http://www.example.com`に表示させることができます。 |
PutBucketEncryption |
既存のバケットのデフォルトの暗号化状態を設定します。バケットレベルの暗号化が有効になっている場合、バケットに追加された新しいオブジェクトはすべて暗号化されます。StorageGRID は、StorageGRID が管理するキーを使用したサーバー側暗号化をサポートします。サーバー側の暗号化設定ルールを指定する場合は、 `SSEAlgorithm`パラメータを `AES256`に設定し、 `KMSMasterKeyID`パラメータは使用しないでください。 オブジェクトアップロード要求で既に暗号化が指定されている場合(つまり、要求に `x-amz-server-side-encryption-*`リクエストヘッダーが含まれている場合)、バケットのデフォルトの暗号化設定は無視されます。 |
PutBucketLifecycleConfiguration (以前は PUT Bucket lifecycle と呼ばれていました) |
バケットの新しいライフサイクル構成を作成するか、既存のライフサイクル構成を置き換えます。StorageGRIDはライフサイクル構成において、最大1,000個のライフサイクルルールをサポートします。各ルールには、以下のXML要素を含めることができます:
StorageGRID は以下のアクションをサポートしていません:
"S3ライフサイクル構成を作成する"を参照してください。バケットライフサイクルの有効期限アクションがILM配置指示とどのように相互作用するかを理解するには、"ILMがオブジェクトのライフサイクル全体を通してどのように機能するか"を参照してください。 注:バケットライフサイクル構成は、S3 オブジェクトロックが有効になっているバケットで使用できますが、従来の準拠バケットではバケットライフサイクル構成はサポートされていません。 |
PutBucketNotificationConfiguration (以前はPUT Bucket notificationと呼ばれていました) |
リクエスト本文に含まれる通知設定XMLを使用して、バケットの通知を設定します。以下の実装の詳細についてご留意ください:
|
PutBucketPolicy |
バケットに適用されるポリシーを設定します。"バケットおよびグループのアクセスポリシーを使用する"を参照してください。 |
PutBucketReplication |
リクエスト本文で提供されるレプリケーション設定XMLを使用して、バケットの"StorageGRID CloudMirror レプリケーション"を設定します。CloudMirrorレプリケーションについては、以下の実装の詳細に注意してください:
|
PutBucketTagging |
`tagging`サブリソースを使用して、バケットのタグセットを追加または更新します。バケットタグを追加する際は、以下の制限事項にご注意ください。
注意:このバケットにデフォルト以外の ILM ポリシータグが設定されている場合、値が割り当てられた `NTAP-SG-ILM-BUCKET-TAG`バケットタグが存在します。割り当てられた値を持つ `NTAP-SG-ILM-BUCKET-TAG`バケットタグが、すべての PutBucketTagging リクエストに含まれていることを確認してください。このタグを変更または削除しないでください。 注:この操作を行うと、バケットに既に存在するタグはすべて上書きされます。セットから既存のタグが省略された場合、それらのタグはバケットから削除されます。 |
PutBucketVersioning |
`versioning`サブリソースを使用して、既存のバケットのバージョン管理状態を設定します。バージョン管理の状態は、以下のいずれかの値で設定できます。
|
PutObjectLockConfiguration |
バケットのデフォルトの保持モードとデフォルトの保持期間を設定または削除します。 デフォルトの保持期間が変更された場合、既存のオブジェクトバージョンの保持期限は変更されず、新しいデフォルトの保持期間を使用して再計算されることはありません。 詳細については、"S3 REST APIを使用してS3オブジェクトロックを設定する"を参照してください。 |