Amazon S3 Compatibility APIおよびSwift API用のコンパートメントの指定

Oracle Cloud Infrastructure Object Storageサービスでは、バケットは、オブジェクト・ストレージネームスペース内のコンパートメント  にオブジェクトを格納するためのコンテナです。バケットは単一のコンパートメントに関連付けられており、データはバケット内のオブジェクトとして格納されます。

ネイティブのObject Storage APIに加えて、オブジェクト・ストレージは、Amazon S3 Compatibility APISwift APIの両方に対するAPIサポートを提供します。ただし、これらのAPIでは、コンパートメントのOracle Cloud Infrastructure概念が理解されません。デフォルトでは、Amazon S3 Compatibility APIまたはSwift APIを使用して作成されたバケットは、Oracle Cloud Infrastructureテナンシのルート・コンパートメントに作成されます。かわりに、Amazon S3 Compatibility APIまたはSwift APIに異なるコンパートメントを指定して、バケットを作成できます。

Amazon S3 Compatibility APIまたはSwift APIに対して使用する別のコンパートメントを指定すると、Amazon S3 Compatibility APIまたはSwift APIを使用して作成する新しいバケットは、この新しく指定されたコンパートメントに作成されます。別のコンパートメントで以前に作成されたバケットは、新しく指定されたコンパートメントに自動的に移動されません。以前に作成したバケットをこの新しく指定したコンパートメントに移動する場合は、バケットの管理を参照してください。

必須IAMポリシー

Oracle Cloud Infrastructureを使用するには、管理者によってポリシーでセキュリティ・アクセス権が付与されている必要があります。このアクセス権は、コンソール、あるいはSDK、CLIまたはその他のツールを使用したREST APIのいずれを使用している場合でも必要です。権限がない、または認可されていないというメッセージが表示された場合は、自分がどのタイプのアクセス権を持っているか、およびどのコンパートメントで作業するかを管理者に確認してください。

コンパートメントには、バケットおよびバケット内のすべてのオブジェクトでユーザーが実行できるアクションを示すポリシー  があります。

管理者の場合:

  • Amazon S3 Compatibility APIとSwift APIのデフォルトのコンパートメントを変更するには、ユーザーはOBJECTSTORAGE_NAMESPACE_UPDATE権限を持つグループに属している必要があります。
  • Amazon S3 Compatibility APIとSwift APIの現在のデフォルトのコンパートメントを表示するには、ユーザーはOBJECTSTORAGE_NAMESPACE_READ権限を持つグループに属している必要があります。
  • バケットを別のコンパートメントに移動するには、ユーザーは、ソース・コンパートメント内のBUCKET_UPDATEおよびBUCKET_CREATE権限、およびターゲット・コンパートメント内のBUCKET_CREATE権限を持つグループに属している必要があります。

ポリシーを初めて使用する場合は、ポリシーの開始共通ポリシーを参照してください。バケットおよびオブジェクトのポリシーの記述を詳細に確認する場合は、オブジェクト・ストレージ、アーカイブ・ストレージおよびデータ転送の詳細を参照してください。

指定されたコンパートメントの表示および指定

Amazon S3 Compatibility APIおよびSwift APIデータに対する現在のデフォルトのコンパートメント指定を表示できます。権限で許可されている場合は、Amazon S3 Compatibility APIおよびSwift APIのコンパートメント指定を変更することもできます。

指定されたコンパートメント名:

  • テナンシ内のすべてのコンパートメントで一意である必要があります。
  • 1から100文字の長さにします。
  • 機密情報を含めることはできません。
  • 有効なのは、文字(大文字または小文字)、数字、ハイフンおよびアンダースコアです。

コンソールの使用

Amazon S3 Compatibility APIおよびSwift APIのコンパートメント指定を表示するには

「プロファイル」メニュー(ユーザー・メニュー・アイコン)を開き、テナンシ: <your_tenancy_name>をクリックします。

APIのデフォルトのコンパートメント指定は、「オブジェクト・ストレージ設定」の下にリストされます。

テナンシのAmazon S3 Compatibility APIおよびSwift APIのコンパートメント指定を編集するには
  1. 「プロファイル」メニュー(ユーザー・メニュー・アイコン)を開き、テナンシ: <your_tenancy_name>をクリックします。

  2. オブジェクト・ストレージ設定の編集」をクリックします。
  3. オブジェクト・ストレージ設定の編集」ダイアログで:

    • Amazon S3 Compatibility APIの指定されたコンパートメントに必要なコンパートメントを選択します。
    • Swift APIの指定されたコンパートメントに必要なコンパートメントを選択します。
  4. 「保存」をクリックします。

    新しい「オブジェクト・ストレージ設定」が表示されます。

コマンドライン・インタフェース(CLI)の使用

CLIの使用の詳細は、コマンド・ライン・インタフェース(CLI)を参照してください。CLIコマンドで使用できるフラグおよびオプションの完全なリストは、コマンドライン・リファレンスを参照してください。

テナンシのAmazon S3 Compatibility APIおよびSwift APIのコンパートメント指定を取得するには

このCLIコマンドを使用して、テナンシ内の指定されたネームスペースのAmazon S3およびSwiftコンパートメントに関連付けられているメタデータを表示します。

oci os ns get-metadata --namespace <object_storage_namespace>

例:

oci os ns get-metadata --namespace MyNamespace
{
    "data": {
    "default-s3-compartment-id": "ocid.compartment.oc1..exampleuniqueID",
    "default-swift-compartment-id": "ocid.compartment.oc1..exampleuniqueID",
    "namespace": "MyNamespace"
    }
}							
テナンシのAmazon S3 Compatibility APIのコンパートメント指定を更新するには

このCLIコマンドを使用して、テナンシ内の指定されたネームスペースのデフォルトのAmazon S3コンパートメントを指定します。

oci os ns update-metadata --namespace <object_storage_namespace> --default-s3-compartment-id <your_oci_compartment_id>

<your_oci_compartment_id>は、テナンシのルート・コンパートメントではないコンパートメントを指定します。

例:

oci os ns update-metadata --namespace MyNamespace --default-s3-compartment-id ocid.compartment.oc1..exampleuniqueID
{
    "data": {
    "default-s3-compartment-id": "ocid.compartment.oc1..exampleuniqueID",
    "default-swift-compartment-id": null,
	"namespace": null
    }
}				
テナンシのSwift APIのコンパートメント指定を更新するには

このCLIコマンドを使用して、テナンシ内の指定されたネームスペースのデフォルトのSwiftコンパートメントを指定します。

oci os ns update-metadata --namespace <object_storage_namespace> --default-swift-compartment-id <your_oci_compartment_id>

<your_oci_compartment_id>は、テナンシのルート・コンパートメントではないコンパートメントを指定します。

例:

oci os ns update-metadata --namespace MyNamespace --default-swift-compartment-id ocid.compartment.oc1..exampleuniqueID
{
    "data": {
    "default-s3-compartment-id": null,
    "default-swift-compartment-id": "ocid.compartment.oc1..exampleuniqueID",
	"namespace": null
    }
}								 

APIの使用

APIの使用およびリクエストの署名の詳細は、REST APIおよびセキュリティ資格証明を参照してください。SDKの詳細は、ソフトウェア開発キットとコマンドライン・インタフェースを参照してください。

次の操作を使用して、デフォルトのAmazon S3 Compatibility APIおよびSwift APIのコンパートメント指定を取得し、これらのコンパートメント指定を変更します: