オブジェクト・ストレージでの事前認証済リクエストの作成

オブジェクト・ストレージ・バケット内のすべてのオブジェクトまたは特定のオブジェクトに対する事前認証済リクエストを作成します。

事前認証済リクエストの範囲を特定の接頭辞で始まるオブジェクトのみに制限するには、特定の接頭辞を持つオブジェクトに対する事前認証済リクエストの作成を参照してください。

事前認証済リクエストの詳細は、事前認証済リクエストの使用を参照してください。
    1. ナビゲーション・メニューを開き、「ストレージ」をクリックします。「オブジェクト・ストレージおよびアーカイブ・ストレージ」で、「バケット」をクリックします。
    2. 「リスト範囲」の下のリストからコンパートメントを選択します。そのコンパートメント内のすべてのバケットが表形式でリストされます。
    3. 詳細を取得するバケットをクリックします。バケットの「詳細」ページが表示されます。
    4. 「リソース」の下の「事前認証済リクエスト」をクリックします。「事前認証済リクエスト」リストが表示されます。すべての事前認証済リクエストが表形式でリストされます。
    5. 「事前認証済リクエストの作成」をクリックします。「事前認証済リクエストの作成」ダイアログ・ボックスが表示されます。
    6. 次の操作を実行します。
      • 名前: 事前認証済リクエストの名前を入力するか、デフォルトのシステム生成名を受け入れます。現在の年、月、日および時刻を反映するリクエスト名が生成されます(たとえば、par-bucket-20210330-1643)。ネーミングには、文字、数字、ダッシュ、アンダースコアおよびピリオドのみを使用してください。

      • 事前認証済リクエスト・ターゲット: 次のターゲットのいずれかを選択します:

        • バケット: バケット内のすべてのオブジェクトに対する事前認証済リクエストを作成します。

        • オブジェクト: 特定のオブジェクトの事前認証済リクエストを作成します。

        • 接頭辞付きのオブジェクト: バケット内の特定の名前接頭辞を持つすべてのオブジェクトに対して事前認証済リクエストを作成します。

      • オブジェクト名: (オブジェクト・ターゲットのみ)事前認証済リクエストが適用されるオブジェクト名を入力します。

      • 接頭辞: (接頭辞ターゲットを持つオブジェクトのみ): 事前認証済リクエストが適用されるオブジェクトの決定に使用する接頭辞を入力します:

        • 階層またはディレクトリ構造をシミュレーションするオブジェクト名に一致するように、1つ以上のスラッシュ("/")を含む接頭辞を指定できます。
        • オブジェクト名の左端の文字と一致する接頭辞文字列を区切り文字なしで指定できます。

        接頭辞の詳細は、接頭辞および階層を使用したオブジェクト・ネーミングを参照してください。

      • アクセス・タイプ:

        事前認証済リクエスト・ユーザーがオブジェクトに対して持つアクセス・タイプに応じて、次のいずれかのタイプのアクセスを選択します:

        バケットおよびオブジェクト・アクセス・タイプ:

        • オブジェクトの読取りを許可

        • オブジェクトの書込みを許可

        • オブジェクトの読取りと書込みを許可

        接頭辞アクセス・タイプのオブジェクト:

        • 指定された接頭辞付きのオブジェクトに対する読取りを許可

        • 指定した接頭辞付きのオブジェクトに対する書込みを許可

        • 指定された接頭辞付きのオブジェクトに対する読取りと書込みを許可

      • オブジェクト・リストの有効化: (接頭辞付きのバケットおよびオブジェクトのみ)事前認証済リクエスト・ユーザーがバケット内のオブジェクトをリストできるようにする場合に選択します。

      • 有効期限: 認証前アクセスが期限切れになる日時を入力します。ボックスをクリックして、月、日および時間を選択できるカレンダ機能を表示します。すべての時間はUTCです。デフォルトの有効期限は、事前認証済リクエストの作成から1週間です。

    7. 「事前認証済リクエストの作成」をクリックします。「事前認証済リクエストの詳細」ダイアログ・ボックスが表示されます。

      「Pre-Authenticated Request Details」ダイアログ・ボックスには、オブジェクトへのアクセスに使用されるURLが表示されます。

    8. 「Pre-Authenticated Request URL」ボックスに表示されるURLをコピーします。また、ボックスの横にある「コピー」アイコンをクリックすることもできます。後で参照できるように、URLを耐久ストレージの任意の場所に貼り付けます。
    9. 「閉じる」をクリックします。
    重要

    事前認証済リクエストを作成する際にシステムによって提供される一意のURLは、ユーザーがリクエスト・ターゲットにアクセスできる唯一の方法です。URLは作成時にのみ表示され、オブジェクト・ストレージに格納されません。「事前認証済リクエストの詳細」ダイアログ・ボックスを閉じると、再度アクセスして取得することはできません。安全で回復可能な場所に保管してください。

  • 事前認証済リクエストを作成するには、oci os preauth-request createコマンドと必要なパラメータを使用します:

    oci os preauth-request create --bucket-name bucket_name --name name --access-type access_type --time-expires expiration_timestamp [OPTIONS]

    nameパラメータは、事前認証済リクエストの名前です。機密情報の入力は避けてください。

    access-typeパラメータ値は、次のいずれかです:

    • AnyObjectRead: は、バケット内のすべてのオブジェクトに対する読取りを許可します

    • AnyObjectWrite: は、バケット内のすべてのオブジェクトに対する書込みを許可します

    • AnyObjectReadWrite: は、バケット内のすべてのオブジェクトに対する読取りおよび書込みを許可します

    RFC 3339タイムスタンプを使用するには、expiration_timestamp値が必要です。例: 2021-04-02T22:25:27.322000+00:00

    例:

    oci os preauth-request create --bucket-name MyParBucket --name MyAllObjectsReadWritePAR --access-type AnyObjectReadWrite --time-expires="2022-11-21T23:00:00+00:00"
    {  "data": {
        "access-type": "AnyObjectReadWrite",
        "access-uri": "/p/2WOshPVWv9uqIqy6abokChGEXYdCZ8l75CoO26YkSARiRevWlDWJD_QUvtFPUocn/n/MyNamespace/b/MyParBucket/o/",
        "id": "QgT6f1skUMbXDhpXKQ4BRX9u7ci8AAJ7f9OGzgdEkNJ3XQmHzeN/kDhLEbN2HvPn",
        "name": "MyAllObjectsReadWritePAR",
        "object-name": null,
        "time-created": "2021-04-02T22:25:27.322000+00:00",
        "time-expires": "2022-11-21T23:00:00+00:00"

    オブジェクトのリスト

    オブジェクトのリストはデフォルトで拒否されます。--access-typeAnyObjectReadまたはAnyObjectReadWriteの場合、ユーザーにバケット内のオブジェクトのリストを許可する事前認証済リクエストを作成するときに、オプションの--bucket-listing-action ListObjectsパラメータを指定できます。

    たとえば、MyParBucketという名前のバケット内のすべてのオブジェクトに対する読取りおよび書込みアクセスを許可する事前認証済リクエストを作成するには:
    oci os preauth-request create --namespace MyNamespace --bucket-name MyParBucket --name MyAllObjectsReadWritePAR --access-type AnyObjectReadWrite --time-expires="2022-11-21T23:00:00+00:00" --bucket-listing-action ListObjects
    {  "data": {
        "access-type": "AnyObjectReadWrite",
        "access-uri": "/p/2WOshPVWv9uqIqy6abokChGEXYdCZ8l75CoO26YkSARiRevWlDWJD_QUvtFPUocn/n/MyNamespace/b/MyParBucket/o/",
        "bucket-listing-action": "ListObjects",
        "id": "QgT6f1skUMbXDhpXKQ4BRX9u7ci8AAJ7f9OGzgdEkNJ3XQmHzeN/kDhLEbN2HvPn",
        "name": "MyAllObjectsReadWritePAR",
        "object-name": null,
        "time-created": "2021-04-02T22:25:27.322000+00:00",
        "time-expires": "2022-11-21T23:00:00+00:00"
      }
    }
    重要

    事前認証済リクエストの作成時にシステムによって提供されるaccess-uriは、ターゲット・バケットへのユーザー・アクセスを提供するために構築する必要があるURLの主要要素です。access-uriを耐久ストレージにコピーします。access-uriは作成時にのみ表示され、後で取得することはできません。

    前述の例でユーザーに提供される一意の事前認証済リクエストURLは次のように構成されます:

    https://objectstorage.region_identifier.oraclecloud.comaccess_uri

    有効なリージョン識別子のリストは、リージョンおよび可用性ドメインについてを参照してください。

    たとえば、MyParBucketという名前のバケット内のすべてのオブジェクトに対する読取りおよび書込みを許可するリクエストの完全なURLを次に示します:

    https://objectstorage.us-phoenix-1.oraclecloud.com/p/2WOshPVWv9uqIqy6abokChGEXYdCZ8l75CoO26YkSARiRevWlDWJD_QUvtFPUocn/n/MyNamespace/b/MyParBucket/o/

    curlを使用して、MyParBucketという名前のバケット内のすべてのオブジェクトに対する読取りおよび書込みを許可し、オブジェクトのリストが有効になっている事前認証済リクエストを使用してオブジェクトをPUTする例を次に示します:

    $ curl -X PUT --data-binary '@edit-lifecycle-rules.pdf' https://objectstorage.us-phoenix-1.oraclecloud.com/p/l04eqXvxQ5HcnrXkWS8Kdf4mS812KLDyG_dbArXa8hDdHssXTKiUD0w2HNCEDS4W/n/MyNamespace/b/MyParBucket/o/edit-lifecycle-rules.pdf
    

    curlを使用して、同じ事前認証済リクエストを使用してオブジェクトをGETする例を次に示します:

    $ curl -X GET https://objectstorage.us-phoenix-1.oraclecloud.com/p/2WOshPVWv9uqIqy6abokChGEXYdCZ8l75CoO26YkSARiRevWlDWJD_QUvtFPUocn/n/MyNamespace/b/MyParBucket/o/
    {"objects":[{"name":"InfoWorld DeepDive - Tips  for Git and GitHub Users.pdf"},{"name":"OCISG_README.txt"},{"name":"OCI_User_Guide.pdf"},{"name":"OracleCorporateTerminologyUsageGuideRedwood.pdf"},{"name":"VPN.png"},{"name":"eventslogreference.htm"},{"name":"flowlogreference.htm"},{"name":"functionslogreference.htm"},{"name":"glob.txt"},{"name":"loadbalancerreference.htm"},{"name":"objectstoragelogreference.htm"},{"name":"replication.txt"},{"name":"troubleshooting.txt"},{"name":"udx-1494-lifecycle-rule-glob.pdf"}]}

    GETは、edit-lifecycle-rules.pdfとバケット内の他のすべてのオブジェクトに対する最近のPUTをリストします。オプションで、fields問合せパラメータを使用して、size (バイト単位のオブジェクト・サイズ)、etagmd5timeCreated (オブジェクト作成日時)、timeModified (オブジェクト変更日時)、storageTierおよびarchivalStateの各フィールドも含めることができます。詳細は、オブジェクトのリストの取得を参照してください。

    特定のオブジェクトに対する事前認証済リクエストの作成

    object-nameパラメータとオブジェクトの名前を含めて、特定のオブジェクトに対する事前認証済リクエストを作成します。たとえば、MyParBucketという名前のバケット内のOCI_User_Guide.pdfという名前のオブジェクトに対する読取りおよび書込みを許可する事前認証済リクエストを作成するには、次のCLIコマンドを実行します:

    oci os preauth-request create --bucket-name MyParBucket --name MyObjectReadWritePAR --access-type ObjectReadWrite --object-name OCI_User_Guide.pdf --time-expires="2022-11-21T23:00:00+00:00"
    {  "data": {
        "access-type": "ObjectReadWrite",
        "access-uri": "/p/v0YC_6i3NamyrKlIds0SKnWUMQLw_PFolSyGCpjVUJ6h_A1tnkXJ9VRcuQZTgjRa/n/MyNamespace/b/MyParBucket/o/OCI_User_Guide.pdf",
        "bucket-listing-action": null,
        "id": "vNObHUdqwf7pfCq9pup/LlMLTLxBt2N2OCKrGwimLFOoJlVfxj/dlESbxyd54vpf:OCI_User_Guide.pdf",
        "name": "MyObjectReadWritePAR",
        "object-name": "OCI_User_Guide.pdf",
        "time-created": "2021-04-01T14:37:26.869000+00:00",
        "time-expires": "2022-11-21T23:00:00+00:00"
      }
    }

    前述の例でユーザーに提供される一意の事前認証済リクエストURLは次のように構成されます:

    https://objectstorage.region_ID.oraclecloud.comaccess_uri

    たとえば、MyParBucketという名前のバケット内のOCI_User_Guide.pdfという名前のオブジェクトに対する読取りおよび書込みを許可するリクエストの完全なURLを次に示します:

    https://objectstorage.us-phoenix-1.oraclecloud.com/p/v0YC_6i3NamyrKlIds0SKnWUMQLw_PFolSyGCpjVUJ6h_A1tnkXJ9VRcuQZTgjRa/n/MyNamespace/b/MyParBucket/o/OCI_User_Guide.pdf

    curlを使用して、MyParBucketという名前のバケット内のOCI_User_Guide.pdfという名前のターゲット・オブジェクトに対する読取りおよび書込みを許可する事前認証済リクエストを使用してオブジェクトをPUTする例を次に示します:

    $ curl -X PUT --data-binary '@OCI_User_Guide.pdf' https://objectstorage.us-phoenix-1.oraclecloud.com/p/v0YC_6i3NamyrKlIds0SKnWUMQLw_PFolSyGCpjVUJ6h_A1tnkXJ9VRcuQZTgjRa/n/MyNamespace/b/MyParBucket/o/OCI_User_Guide.pdf

    curlを使用して、同じ事前認証済リクエストを使用してターゲット・オブジェクトをGETする例を次に示します:

    $ curl -X GET https://objectstorage.us-phoenix-1.oraclecloud.com/p/v0YC_6i3NamyrKlIds0SKnWUMQLw_PFolSyGCpjVUJ6h_A1tnkXJ9VRcuQZTgjRa/n/MyNamespace/b/MyParBucket/o/OCI_User_Guide.pdf
    '@OCI_User_Guide.pdf'

    接頭辞付きの特定のオブジェクトに対する事前認証済リクエストの作成

    object-nameパラメータと接頭辞を含めて、指定した接頭辞に一致する名前を持つすべてのオブジェクトに対して事前認証済リクエストを作成します。たとえば、MyParBucketという名前のバケット内の接頭辞serviceを持つオブジェクトに対する読取りおよび書込みを許可する事前認証済リクエストを作成するには:
    oci os preauth-request create --bucket-name MyParBucket --name PrefixedObjectsReadWritePAR --access-type AnyObjectReadWrite --object-name service --time-expires "2022-11-21T23:00:00+00:00" --bucket-listing-action ListObjects
    {  "data": {
        "access-type": "AnyObjectReadWrite",
        "access-uri": "/p/l04eqXvxQ5HcnrXkWS8Kdf4mS812KLDyG_dbArXa8hDdHssXTKiUD0w2HNCEDS4W/n/MyNamespace/b/MyParBucket/o/",
        "bucket-listing-action": "ListObjects",
        "id": "YOExDlFsNYBNEwF8Uo4aK8WHiz59enVQm1aID+4cxFobgcaofVbZkg371rxK+6Vb",
        "name": "PrefixedObjectsReadWritePAR",
        "object-name": "service",
        "time-created": "2021-04-01T15:35:40.609000+00:00",
        "time-expires": "2022-11-21T23:00:00+00:00"
      }
    }

    --object-nameパラメータで、照合する接頭辞を指定します:

    • 階層またはディレクトリ構造をシミュレートするオブジェクト名に一致するように、1つ以上のスラッシュ(/)を含む接頭辞を指定できます。
    • オブジェクト名の左端の文字と一致する接頭辞文字列をデリミタなしで指定できます。

    前述の例でユーザーに提供される一意の事前認証済リクエストURLは次のように構成されます:

    https://objectstorage.<region_identifier>.oraclecloud.com<access-uri>

    有効なリージョン識別子のリストは、リージョンおよび可用性ドメインについてを参照してください。

    たとえば、MyParBucketという名前のバケット内の接頭辞serviceを持つオブジェクトに対する読取りおよび書込みを許可するリクエストの完全なURLを次に示します:

    https://objectstorage.us-phoenix-1.oraclecloud.com/p/l04eqXvxQ5HcnrXkWS8Kdf4mS812KLDyG_dbArXa8hDdHssXTKiUD0w2HNCEDS4W/n/MyNamespace/b/MyParBucket/o/

    特定の接頭辞を持つオブジェクトに範囲を制限する事前認証済リクエストを作成する場合、リクエスト・ユーザーは、リクエストで指定された接頭辞名を持つオブジェクトのみをGETおよびPUTできます。接頭辞を持たないか、別の接頭辞を持つオブジェクトをGETまたはPUTにしようとすると、失敗します。

    curlを使用して、MyParBucketという名前のバケット内の接頭辞serviceを持つオブジェクトに対する読取りおよび書込みを許可する事前認証済リクエストを使用してオブジェクトをPUTする例を次に示します:

    $ curl -X PUT --data-binary '@servicediscovery.dita' https://objectstorage.us-phoenix-1.oraclecloud.com/p/l04eqXvxQ5HcnrXkWS8Kdf4mS812KLDyG_dbArXa8hDdHssXTKiUD0w2HNCEDS4W/n/MyNamespace/b/MyParBucket/o/servicediscovery.dita
    

    curlを使用して、同じ事前認証済リクエストを使用してオブジェクトをGETする例を次に示します:

    $ curl -X GET https://objectstorage.us-phoenix-1.oraclecloud.com/p/l04eqXvxQ5HcnrXkWS8Kdf4mS812KLDyG_dbArXa8hDdHssXTKiUD0w2HNCEDS4W/n/MyNamespace/b/MyParBucket/o/
    {"objects":[{"name":"servicechanges.html"},{"name":"servicediscovery.dita"},{"name":"serviceessentials.html"},{"name":"servicelogreference.htm"},{"name":"services.html"}]}

    GETは、servicediscovery.ditaservice接頭辞が付いた他のすべてのオブジェクトに対する最近のPUTをリストします。オプションで、fields問合せパラメータを使用して、size (バイト単位のオブジェクト・サイズ)、etagmd5timeCreated (オブジェクト作成日時)、timeModified (オブジェクト変更日時)、storageTierおよびarchivalStateの各フィールドも含めることができます。詳細は、オブジェクトのリストの取得を参照してください。

    curlを使用して、同じ事前認証済リクエストを使用してオブジェクトをPUTする別の例を次に示します。オブジェクトにservice接頭辞がないため、リクエストに失敗しました:

    $ curl -X PUT --data-binary '@objectstoragelogreference.htm' https://objectstorage.us-phoenix-1.oraclecloud.com/p/l04eqXvxQ5HcnrXkWS8Kdf4mS812KLDyG_dbArXa8hDdHssXTKiUD0w2HNCEDS4W/n/MyNamespace/b/MyParBucket/o/objectstoragelogreference.htm
    {"code":"NotAuthenticated","message":"PAR does not exist"}

    CLIコマンドのパラメータおよび値の完全なリストは、CLIコマンド・リファレンスを参照してください。

  • CreatePreauthenticatedRequest操作を実行して、事前認証済リクエストを作成します。