オブジェクト・ストレージAmazon S3 Compatibility API
Oracle Cloud InfrastructureのAmazon S3 Compatibility APIの使用方法について学習します。ここでは、既存のAmazon S3ツールを使用してObject Storageを操作できます。
Amazon S3 Compatibility APIを使用すると、顧客は、引き続き既存のAmazon S3ツール(SDKクライアントなど)を使用し、アプリケーションに最小限の変更を加えてオブジェクト・ストレージで動作するようにできます。Amazon S3 Compatibility APIとオブジェクト・ストレージのデータセットは一致しています。Amazon S3 Compatibility APIを使用してデータをオブジェクト・ストレージに書き込む場合、そのデータはネイティブのオブジェクト・ストレージAPIを使用して読み取ることができます。逆も同様です。
Amazon S3 Compatibility APIでは、パス・スタイルURLのみがサポートされています。V2 (仮想ホスト)スタイルURLはサポートされていません。
Object StorageがAmazon S3 Compatibility APIをサポートする方法の詳細は、Amazon S3 Compatibility APIのサポートを参照してください。
Object StorageがAmazon S3 Compatibility APIとSwift APIの両方に対するAPIサポートを提供する方法については、Amazon S3互換およびSwift APIのコンパートメントを参照してください
オブジェクト・ストレージAPIとAmazon S3 Compatibility APIの間の相違点
Oracle Cloud InfrastructureおよびAmazon S3が提供するオブジェクト・ストレージ・サービスでは、同様の概念および用語が使用されています。どちらの場合も、データはオブジェクトとしてバケットに格納されます。相違点は、オブジェクトを操作するための機能およびツールの実装にあります。
次に、2つのストレージのテクノロジ間の相違点を示します:
-
コンパートメント
Amazon S3ではコンパートメントは使用されません。デフォルトでは、Amazon S3 Compatibility APIまたはSwift APIを使用して作成されたバケットは、Oracle Cloud Infrastructureテナンシのルート・コンパートメントに作成されます。かわりに、Amazon S3 Compatibility APIまたはSwift APIに異なるコンパートメントを指定して、バケットを作成できます。
-
グローバル・バケット・ネームスペース
オブジェクト・ストレージではグローバル・バケット・ネームスペースは使用されません。オブジェクト・ストレージ・ネームスペースは、すべてのバケットおよびオブジェクトの最上位のコンテナとして機能します。アカウント作成時に、各Oracle Cloud Infrastructureテナントには、システムによって生成された変更不可能な一意のオブジェクト・ストレージ・ネームスペース名が1つ割り当てられます。ネームスペースは、リージョン内のすべてのコンパートメントにまたがります。バケット名はユーザーが制御しますが、それらのバケット名は1つのネームスペース内で一意である必要があります。ネームスペースはリージョン固有ですが、ネームスペース名自体はすべてのリージョンで同じです。米国西部(フェニックス)にMyBucketという名前のバケットと、ドイツ中央部(フランクフルト).にMyBucketという名前のバケットを持つことができます
-
暗号化
Object Storageサービスは、すべての保存データをデフォルトで暗号化します。APIを使用して暗号化を有効または無効にすることはできません。
-
オブジェクト・レベルのアクセス制御リスト(ACL)
Oracle Cloud Infrastructureでは、オブジェクトにACLは使用されません。かわりに、管理者は、グループ、コンパートメントおよびポリシーを設定して、どのユーザーがどのサービス、どのリソースにアクセスできるか、およびアクセスのタイプを制御する必要があります。たとえば、ポリシーは、ユーザーとグループの作成、バケットの作成、オブジェクトのダウンロード、オブジェクト・ストレージ関連のポリシーとルールの管理などを実行できるユーザーを制御します。
詳細は、「概要」を参照してください。
Amazon S3 Compatibility APIの前提条件
Amazon S3からオブジェクト・ストレージへのアプリケーション・アクセスを有効にするには、Oracle Cloud Infrastructureへのアクセスを設定し、次の項の説明に従ってアプリケーションを変更する必要があります。
Oracle Cloud Infrastructureへのアクセスの設定
-
Oracle Cloud Infrastructureにサインアップして、一意のネームスペースを取得します。
-
オブジェクト・ストレージを使用するAmazon S3互換APIのユーザーには、サービスの操作権限が必要です。権限があるかわからない場合は、管理者に連絡してください。ポリシーの基本情報は、ポリシーの仕組みを参照してください。オブジェクト・ストレージの使用を可能にするポリシーについては、共通ポリシーおよびポリシー・リファレンスを参照してください。
-
既存の顧客秘密キーを使用するか、顧客秘密キーを作成します。顧客秘密キーはアクセス・キー/秘密キーのペアで構成されます。詳細は、顧客秘密キーの操作を参照してください。キー・ペアを使用または作成するには:
- 既存の顧客秘密キーを使用するには、秘密キーをすでに把握している必要があります。セキュリティ上の理由から、秘密キーを生成後に取得することはできません。アクセス・キーを表示またはコピーするには、「プロファイル」メニューを開き、「ユーザー設定」をクリックします。ページの左側の「顧客秘密キー」をクリックします。特定の顧客秘密キーの名前に関連付けられているアクセス・キーにカーソルを置き、「コピー」をクリックします。
- コンソールを使用して顧客秘密キーを作成するには、顧客秘密キーを作成するにはを参照してください。
- コマンドライン・インタフェース(CLI)を使用して顧客秘密キーを作成するには、oci iam customer-secret-key createを参照してください。
アプリケーションの変更
-
アプリケーションの新しいエンドポイント(ネームスペース名およびリージョン識別子を含む)を構成します。次の構文を使用します:
https://{object-storage-namespace}.compat.objectstorage.{region}.oraclecloud.com
-
ターゲット・リージョンをOracle Cloud Infrastructureリージョンの1つとして設定します。
重要
アプリケーションでリージョン識別子を正しいOracle Cloud Infrastructure識別子に設定できない場合、リージョンをus-east-1
に設定するか、または空白のままにする必要があります。この構成を使用する場合、Oracle Cloud Infrastructureホーム・リージョンにあるAmazon S3 Compatibility APIのみを使用できます。リージョンを手動で設定できる場合は、任意のOracle Cloud Infrastructureリージョンに対してアプリケーションを使用できます。 -
顧客秘密キーを使用するようにアプリケーションを構成します。顧客秘密キーはアクセス・キーと秘密キーで構成されます。これらのキーは両方ともアプリケーションに指定する必要があります。
-
アプリケーションにパス・ベースのアクセスを含めます。次の構文を使用します:
https://{object-storage-namespace}.compat.objectstorage.{region}.oraclecloud.com/{bucket}
-
仮想ホスト形式のアクセス
-
AWS署名バージョン2 (SigV2)
これで、Amazon S3 Compatibility APIを使用してOracle Cloud Infrastructureのオブジェクト・ストレージにアクセスできるようになります。