バケットの処理
StorageGRID システムでは、 S3 テナントアカウントあたり最大 1 、 000 個のバケットがサポートされます。
バケット名については、 AWS US Standard リージョンの制限が適用されますが、 S3 仮想ホスト形式の要求をサポートするために DNS の命名規則にも従う必要があります。
GET Bucket ( List Objects )処理と GET Bucket versions 処理では、 StorageGRID の整合性制御がサポートされます。
最終アクセス時間の更新が個々のバケットで有効になっているか無効になっているかを確認することができます。
次の表に、 StorageGRID での S3 REST API バケット処理の実装方法を示します。これらの処理を実行するには、アカウントに必要なアクセスクレデンシャルが付与されている必要があります。
操作 | 実装 |
---|---|
バケットを削除します |
Amazon S3 REST API のすべての動作が実装されています。 |
バケットの CORS を削除します |
この処理は、バケットの CORS 設定を削除します。 |
バケットの暗号化を削除 |
この処理は、バケットからデフォルトの暗号化を削除します。既存の暗号化オブジェクトは暗号化されたままですが、バケットに追加された新しいオブジェクトは暗号化されません。 |
バケットライフサイクルを削除 |
この処理は、バケットからライフサイクル設定を削除します。 |
バケットポリシーを削除 |
この処理は、バケットに関連付けられているポリシーを削除します。 |
バケットレプリケーションを削除します |
この処理は、バケットに関連付けられているレプリケーション設定を削除します。 |
バケットのタグ付けを削除します |
この処理にはを使用します |
GET Bucket ( List Objects )、バージョン 1 およびバージョン 2 |
この処理は、バケット内のオブジェクトの一部またはすべて(最大 1 、 000 )を返します。を使用してオブジェクトを取り込んだ場合でも、オブジェクトのストレージクラスには2つの値が設定されます
バケットに同じプレフィックスを持つ削除済みキーが多数含まれている場合、応答に一部のキーが含まれることがあります |
GET Bucket ACL の場合 |
この処理では、バケットの所有者にバケットに対するフルアクセスがあることを示す応答が返され、所有者の ID 、表示名、および権限が表示されます。 |
GET Bucket CORS |
この処理を実行するとが返されます |
GET Bucket encryption |
この処理は、バケットのデフォルトの暗号化設定を返します。 |
GET Bucket lifecycle |
この処理は、バケットのライフサイクル設定を返します。 |
GET Bucket location の各ノードで使用でき |
この操作は、を使用して設定されたリージョンを返します |
GET Bucket notification |
この処理は、バケットに関連付けられている通知設定を返します。 |
GET Bucket Object versions |
バケットに対する読み取りアクセスで、を使用した処理 |
GET Bucket policy の場合 |
この処理は、バケットに関連付けられているポリシーを返します。 |
GET Bucket replication |
この処理は、バケットに関連付けられているレプリケーション設定を返します。 |
GET Bucket tagging |
この処理にはを使用します |
GET Bucket versioning |
この実装ではを使用します |
オブジェクトロック設定の取得 |
この処理は、バケットでS3オブジェクトのロックが有効になっているかどうかを判断します。 "S3 オブジェクトロックを使用する" |
HEAD Bucket (ヘッドバケット) |
この処理は、バケットが存在し、そのバケットへのアクセス権限があるかどうかを判断します。 |
PUT Bucket の場合 |
この処理は、新しいバケットを作成します。バケットを作成すると、そのバケットの所有者になります。
|
PUT Bucket CORS |
この処理は、バケットの CORS 設定を指定し、クロスオリジン要求を処理できるようにします。Cross-Origin Resource Sharing ( CORS )は、あるドメインのクライアント Web アプリケーションが別のドメインのリソースにアクセスできるようにするセキュリティ機能です。たとえば、というS3バケットを使用するとします |
PUT Bucket encryption |
この処理は、既存のバケットのデフォルトの暗号化状態を設定します。バケットレベルの暗号化が有効な場合は、バケットに追加されたすべての新しいオブジェクトが暗号化されます。 StorageGRID では、 StorageGRID で管理されるキーによるサーバ側の暗号化がサポートされます。サーバ側の暗号化設定ルールを指定する場合は、を設定します バケットのデフォルトの暗号化設定は、オブジェクトのアップロード要求ですでに暗号化が指定されている場合(要求にが含まれている場合)は無視されます |
PUT Bucket lifecycle の場合 |
この処理は、バケットの新しいライフサイクル設定を作成するか、既存のライフサイクル設定を置き換えます。StorageGRID では、 1 つのライフサイクル設定で最大 1 、 000 個のライフサイクルルールがサポートされます。各ルールには、次の XML 要素を含めることができます。
StorageGRID では、次のアクションはサポートされません。
バケット・ライフサイクルの Expiration アクションと ILM 配置手順の相互作用については ' 情報ライフサイクル管理を使用してオブジェクトを管理する手順のオブジェクトのライフサイクル全体にわたる ILM の動作を参照してください
|
PUT Bucket notification |
この処理は、要求の本文に含まれる通知設定 XML を使用してバケットの通知を設定します。実装に関する次の詳細事項に注意してください。
|
PUT Bucket policy の場合 |
この処理は、バケットに関連付けられているポリシーを設定します。 |
PUT Bucket replication |
この処理では、要求の本文に含まれるレプリケーション設定 XML を使用して、バケットの StorageGRID CloudMirror レプリケーションが設定されます。CloudMirror レプリケーションについては、実装に関する次の詳細事項に注意してください。
|
PUT Bucket tagging |
この処理にはを使用します
|
PUT Bucket versioning の場合 |
この実装ではを使用します
|
S3ライフサイクル設定を作成する
S3 ライフサイクル設定を作成して、特定のオブジェクトが StorageGRID システムから削除されるタイミングを制御できます。
このセクションの簡単な例では、 S3 ライフサイクル設定で特定のオブジェクトが特定の S3 バケットから削除(期限切れ)されるタイミングを制御する方法を示します。このセクションの例は、説明のみを目的としています。S3ライフサイクル設定の作成の詳細については、Amazon Simple Storage Service Developer Guide _のオブジェクトライフサイクル管理に関するセクションを参照してください。StorageGRID では、 Expiration アクションのみがサポートされ、移行アクションはサポートされません。
ライフサイクル構成とは
ライフサイクル設定は、特定の S3 バケット内のオブジェクトに適用される一連のルールです。各ルールは、影響を受けるオブジェクトと、それらのオブジェクトの有効期限(特定の日付または日数後)を指定します。
StorageGRID では、 1 つのライフサイクル設定で最大 1 、 000 個のライフサイクルルールがサポートされます。各ルールには、次の XML 要素を含めることができます。
-
Expiration :指定した日付に達した場合、またはオブジェクトが取り込まれたときから指定した日数に達した場合にオブジェクトを削除します。
-
NoncurrentVersionExpiration :指定した日数に達したオブジェクトを削除します。これは、オブジェクトが最新でなくなったときからです。
-
フィルタ(プレフィックス、タグ)
-
ステータス
-
ID
バケットにライフサイクル設定を適用する場合、バケットのライフサイクル設定は常に StorageGRID の ILM 設定よりも優先されます。StorageGRID は、 ILM ではなくバケットの Expiration 設定を使用して、特定のオブジェクトを削除するか保持するかを決定します。
そのため、 ILM ルールの配置手順がオブジェクトに引き続き適用されていても、オブジェクトがグリッドから削除されることがあります。あるいは、 ILM 配置手順がすべて終了したあとも、オブジェクトがグリッドに保持される場合があります。詳細については'情報ライフサイクル管理を使用してオブジェクトを管理する手順のオブジェクトのライフサイクル全体にわたるILMの動作を参照してください
バケットライフサイクル設定は S3 オブジェクトロックが有効になっているバケットで使用できますが、従来の準拠バケットではバケットライフサイクル設定がサポートされません。 |
StorageGRID では、次のバケット処理を使用してライフサイクル設定を管理できます。
-
バケットライフサイクルを削除
-
GET Bucket lifecycle
-
PUT Bucket lifecycle の場合
ライフサイクル構成を作成します
ライフサイクル設定を作成するための最初の手順として、 1 つ以上のルールを含む JSON ファイルを作成します。たとえば、この JSON ファイルには次の 3 つのルールが含まれています。
-
ルール1は、プレフィックスに一致するオブジェクトにのみ適用されます
category1
/とそれにはがありますkey2
の値tag2
。。Expiration
パラメータは、フィルタに一致するオブジェクトの有効期限が2020年8月22日の午前0時に切れるように指定します。 -
ルール2は、プレフィックスに一致するオブジェクトにのみ適用されます
category2
/。。Expiration
パラメータは、フィルタに一致するオブジェクトの取り込みから100日後に期限切れにするを指定します。日数を指定するルールは、オブジェクトが取り込まれた時点を基準とした相対的なルールです。現在の日付が取り込み日と日数を超えている場合は、ライフサイクル設定の適用後すぐに一部のオブジェクトがバケットから削除される可能性があります。 -
ルール3は、プレフィックスに一致するオブジェクトにのみ適用されます
category3
/。。Expiration
パラメータは、最新でないバージョンの一致オブジェクトが最新でなくなったあと50日で期限切れになるように指定します。
{ "Rules": [ { "ID": "rule1", "Filter": { "And": { "Prefix": "category1/", "Tags": [ { "Key": "key2", "Value": "tag2" } ] } }, "Expiration": { "Date": "2020-08-22T00:00:00Z" }, "Status": "Enabled" }, { "ID": "rule2", "Filter": { "Prefix": "category2/" }, "Expiration": { "Days": 100 }, "Status": "Enabled" }, { "ID": "rule3", "Filter": { "Prefix": "category3/" }, "NoncurrentVersionExpiration": { "NoncurrentDays": 50 }, "Status": "Enabled" } ] }
バケットへのライフサイクル設定の適用
ライフサイクル設定ファイルを作成したら、 PUT Bucket lifecycle 要求を発行してバケットに適用します。
次の要求は、サンプルファイル内のライフサイクル設定を、という名前のバケット内のオブジェクトに適用します testbucket
:バケット
aws s3api --endpoint-url <StorageGRID endpoint> put-bucket-lifecycle-configuration --bucket testbucket --lifecycle-configuration file://bktjson.json
ライフサイクル設定がバケットに正常に適用されたことを検証するために、問題 には GET Bucket lifecycle 要求があります。例:
aws s3api --endpoint-url <StorageGRID endpoint> get-bucket-lifecycle-configuration --bucket testbucket
成功応答には、適用したライフサイクル設定が表示されます。
バケットライフサイクルの有効期限を検証すると、オブジェクトが環境 に期限切れになります
PUT Object 、 HEAD Object 、または GET Object 要求の発行時に、ライフサイクル設定の有効期限ルールが環境 の特定のオブジェクトかどうかを確認できます。ルールが適用される場合、応答にはが含まれます Expiration
オブジェクトの有効期限と一致する有効期限を示すパラメータ。
バケットライフサイクルはILMよりも優先されるため、を参照してください expiry-date 表示されているのは、オブジェクトが削除される実際の日付です。詳細については、StorageGRID 管理の実行手順の「オブジェクト保持の決定方法」を参照してください。
|
たとえば、このPUT Object要求は2020年6月22日に実行され、にオブジェクトが配置されます testbucket
バケット。
aws s3api --endpoint-url <StorageGRID endpoint> put-object --bucket testbucket --key obj2test2 --body bktjson.json
成功の応答は、オブジェクトの有効期限が 100 日( 2020 年 10 月 1 日)に切れ、ライフサイクル設定のルール 2 に一致したことを示します。
{
*"Expiration": "expiry-date=\"Thu, 01 Oct 2020 09:07:49 GMT\", rule-id=\"rule2\"",
"ETag": "\"9762f8a803bc34f5340579d4446076f7\""
}
たとえば、この HEAD Object 要求を使用して、 testbucket バケット内の同じオブジェクトのメタデータを取得しました。
aws s3api --endpoint-url <StorageGRID endpoint> head-object --bucket testbucket --key obj2test2
成功の応答にはオブジェクトのメタデータが含まれ、オブジェクトが 100 日で期限切れになり、ルール 2 に一致したことが示されます。
{
"AcceptRanges": "bytes",
*"Expiration": "expiry-date=\"Thu, 01 Oct 2020 09:07:48 GMT\", rule-id=\"rule2\"",
"LastModified": "2020-06-23T09:07:48+00:00",
"ContentLength": 921,
"ETag": "\"9762f8a803bc34f5340579d4446076f7\""
"ContentType": "binary/octet-stream",
"Metadata": {}
}