オブジェクト・ストレージでの事前認証済リクエストの作成
オブジェクト・ストレージ・バケット内のすべてのオブジェクトまたは特定のオブジェクトに対する事前認証済リクエストを作成します。
事前認証済リクエストの範囲を特定の接頭辞で始まるオブジェクトのみに制限するには、特定の接頭辞を持つオブジェクトに対する事前認証済リクエストの作成を参照してください。
事前認証済リクエストの詳細は、事前認証済リクエストの使用を参照してください。- 重要
事前認証済リクエストを作成する際にシステムによって提供される一意の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-type
がAnyObjectRead
または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
(バイト単位のオブジェクト・サイズ)、etag
、md5
、timeCreated
(オブジェクト作成日時)、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.dita
とservice
接頭辞が付いた他のすべてのオブジェクトに対する最近のPUT
をリストします。オプションで、fields
問合せパラメータを使用して、size
(バイト単位のオブジェクト・サイズ)、etag
、md5
、timeCreated
(オブジェクト作成日時)、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操作を実行して、事前認証済リクエストを作成します。