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

バケットの処理

共同作成者

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 設定を削除します。

バケットの暗号化を削除

この処理は、バケットからデフォルトの暗号化を削除します。既存の暗号化オブジェクトは暗号化されたままですが、バケットに追加された新しいオブジェクトは暗号化されません。

バケットライフサイクルを削除

この処理は、バケットからライフサイクル設定を削除します。

バケットポリシーを削除

この処理は、バケットに関連付けられているポリシーを削除します。

バケットレプリケーションを削除します

この処理は、バケットに関連付けられているレプリケーション設定を削除します。

バケットのタグ付けを削除します

この処理にはを使用します tagging サブリソース:バケットからすべてのタグを削除します。

GET Bucket ( List Objects )、バージョン 1 およびバージョン 2

この処理は、バケット内のオブジェクトの一部またはすべて(最大 1 、 000 )を返します。を使用してオブジェクトを取り込んだ場合でも、オブジェクトのストレージクラスには2つの値が設定されます REDUCED_REDUNDANCY ストレージクラスのオプション:

  • `STANDARD`を指定します。このオブジェクトは、ストレージノードで構成されるストレージプールに格納されます。

  • `GLACIER`を指定します。このオブジェクトは、クラウドストレージプールで指定された外部バケットに移動されています。

バケットに同じプレフィックスを持つ削除済みキーが多数含まれている場合、応答に一部のキーが含まれることがあります CommonPrefixes キーが含まれていないもの。

GET Bucket ACL の場合

この処理では、バケットの所有者にバケットに対するフルアクセスがあることを示す応答が返され、所有者の ID 、表示名、および権限が表示されます。

GET Bucket CORS

この処理を実行するとが返されます cors バケットの設定。

GET Bucket encryption

この処理は、バケットのデフォルトの暗号化設定を返します。

GET Bucket lifecycle

この処理は、バケットのライフサイクル設定を返します。

GET Bucket location の各ノードで使用でき

この操作は、を使用して設定されたリージョンを返します LocationConstraint PUT Bucket要求の要素。バケットのリージョンがの場合 `us-east-1`を指定すると、リージョンに対して空の文字列が返されます。

GET Bucket notification

この処理は、バケットに関連付けられている通知設定を返します。

GET Bucket Object versions

バケットに対する読み取りアクセスで、を使用した処理 versions サブリソースには、バケット内のオブジェクトのすべてのバージョンのメタデータが表示されます。

GET Bucket policy の場合

この処理は、バケットに関連付けられているポリシーを返します。

GET Bucket replication

この処理は、バケットに関連付けられているレプリケーション設定を返します。

GET Bucket tagging

この処理にはを使用します tagging サブリソース:バケットのすべてのタグを返す

GET Bucket versioning

この実装ではを使用します versioning サブリソース:バケットのバージョン管理の状態を返します。返されるバージョン管理状態は'バケットがバージョン管理されていないか'バケットがバージョン管理されているか'または一時停止されているかを示します

オブジェクトロック設定の取得

この処理は、バケットでS3オブジェクトのロックが有効になっているかどうかを判断します。 "S3 オブジェクトロックを使用する"

HEAD Bucket (ヘッドバケット)

この処理は、バケットが存在し、そのバケットへのアクセス権限があるかどうかを判断します。

PUT Bucket の場合

この処理は、新しいバケットを作成します。バケットを作成すると、そのバケットの所有者になります。

  • バケット名は次のルールを満たす必要があります。

    • StorageGRID システム全体で(テナントアカウント内だけではなく)一意である必要があります。

    • DNS に準拠している必要があります。

    • 3 文字以上 63 文字以下にする必要があります。

    • 1 つ以上のラベルを連続して指定できます。隣接するラベルはピリオドで区切ります。各ラベルの先頭と末尾の文字は小文字のアルファベットか数字にする必要があり、使用できる文字は小文字のアルファベット、数字、ハイフンのみです。

    • テキスト形式の IP アドレスのようにはできません。

    • 仮想ホスト形式の要求でピリオドを使用しないでください。ピリオドを使用すると、サーバワイルドカード証明書の検証で原因 の問題が発生します。

  • デフォルトでは、バケットはに作成されます us-east-1 リージョン。ただし、を使用することはできます LocationConstraint 別のリージョンを指定するように要求本文内の要求要素。を使用する場合 LocationConstraint 要素:Grid Managerまたはグリッド管理APIを使用して定義されているリージョンの正確な名前を指定する必要があります。使用すべきリージョン名がわからない場合は、システム管理者にお問い合わせください。* 注: StorageGRID で定義されていないリージョンを PUT Bucket 要求で使用すると、エラーが発生します。

  • を含めることができます x-amz-bucket-object-lock-enabled S3オブジェクトのロックを有効にしてバケットを作成する要求ヘッダー。

    バケットの作成時に S3 オブジェクトのロックを有効にする必要があります。バケットの作成後に S3 オブジェクトのロックを追加または無効にすることはできません。S3 オブジェクトロックにはバケットのバージョン管理が必要です。バケットの作成時に自動的に有効になります。

PUT Bucket CORS

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

PUT Bucket encryption

この処理は、既存のバケットのデフォルトの暗号化状態を設定します。バケットレベルの暗号化が有効な場合は、バケットに追加されたすべての新しいオブジェクトが暗号化されます。 StorageGRID では、 StorageGRID で管理されるキーによるサーバ側の暗号化がサポートされます。サーバ側の暗号化設定ルールを指定する場合は、を設定します SSEAlgorithm パラメータの値 AES256`を使用せずに、を使用してください `KMSMasterKeyID パラメータ

バケットのデフォルトの暗号化設定は、オブジェクトのアップロード要求ですでに暗号化が指定されている場合(要求にが含まれている場合)は無視されます x-amz-server-side-encryption-* 要求ヘッダー)。

PUT Bucket lifecycle の場合

この処理は、バケットの新しいライフサイクル設定を作成するか、既存のライフサイクル設定を置き換えます。StorageGRID では、 1 つのライフサイクル設定で最大 1 、 000 個のライフサイクルルールがサポートされます。各ルールには、次の XML 要素を含めることができます。

  • 有効期限(日数、日付)

  • NoncurrentVersionExpiration ( NoncurrentDays )

  • フィルタ(プレフィックス、タグ)

  • ステータス

  • ID

StorageGRID では、次のアクションはサポートされません。

  • AbortIncompleteMultipartUpload の略

  • ExpiredObjectDeleteMarker

  • 移行

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

  • 注:バケットライフサイクル設定は S3 オブジェクトロックが有効なバケットで使用できますが、従来の準拠バケットではバケットライフサイクル設定がサポートされません。

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

  • StorageGRID から送信されるイベント通知は標準の JSON 形式を使用しますが、次のように使用されないキーおよび特定の値が使用されるキーがあります。

  • * 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 つのソースバケットを複数のデスティネーションバケットにレプリケートできます。

  • デスティネーションバケットは、テナントマネージャまたはテナント管理 API で指定された StorageGRID エンドポイントの URN として指定する必要があります。

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

  • を指定する必要はありません Role 設定XMLを使用します。この値は StorageGRID では使用されず、送信されても無視されます。

  • 設定XMLでストレージクラスを省略した場合、StorageGRID ではを使用します STANDARD デフォルトのストレージクラス。

  • ソースバケットからオブジェクトを削除する場合、またはソースバケット自体を削除する場合、クロスリージョンレプリケーションは次のように動作します。

    • レプリケートの前にオブジェクトまたはバケットを削除すると、オブジェクトまたはバケットはレプリケートされず、通知は届きません。

    • レプリケートのあとにオブジェクトまたはバケットを削除すると、 StorageGRID は、 V1 のクロスリージョンレプリケーションに対する Amazon S3 の通常の削除動作に従います。

PUT Bucket tagging

この処理にはを使用します tagging サブリソース:バケットの一連のタグを追加または更新できます。バケットタグを追加する場合は、次の制限事項に注意してください。

  • StorageGRID と Amazon S3 はどちらもバケットごとに最大 50 個のタグをサポートします。

  • バケットに関連付けられているタグには、一意のタグキーが必要です。タグキーには Unicode 文字を 128 文字まで使用できます。

  • タグ値には、 Unicode 文字を 256 文字以内で指定します。

  • キーと値では大文字と小文字が区別されます。

PUT Bucket versioning の場合

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

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

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

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. ルール1は、プレフィックスに一致するオブジェクトにのみ適用されます category1/とそれにはがあります key2 の値 tag2。。 Expiration パラメータは、フィルタに一致するオブジェクトの有効期限が2020年8月22日の午前0時に切れるように指定します。

  2. ルール2は、プレフィックスに一致するオブジェクトにのみ適用されます category2/。。 Expiration パラメータは、フィルタに一致するオブジェクトの取り込みから100日後に期限切れにするを指定します。

    重要 日数を指定するルールは、オブジェクトが取り込まれた時点を基準とした相対的なルールです。現在の日付が取り込み日と日数を超えている場合は、ライフサイクル設定の適用後すぐに一部のオブジェクトがバケットから削除される可能性があります。
  3. ルール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": {}
}