Halaman ini menyediakan ringkasan untuk URL yang ditandatangani, yang menggunakan tanda tangan untuk memberikan akses berbatas waktu ke resource Cloud Storage tertentu. Siapa pun yang memiliki URL bertanda tangan dapat menggunakannya saat aktif, terlepas dari apakah mereka memiliki akun yang valid atau tidak. Untuk mempelajari cara membuat URL bertanda tangan, lihat Proses Penandatanganan V4 dengan Alat Cloud Storage dan Proses Penandatanganan V4 dengan Program Anda Sendiri. Untuk mempelajari cara lain dalam mengontrol akses ke bucket dan objek, lihat Ringkasan Kontrol Akses.
Ringkasan
URL bertanda tangan adalah URL yang memberikan izin dan waktu terbatas untuk membuat permintaan. URL yang ditandatangani berisi informasi autentikasi, termasuk a tanda tangan, dalam string kuerinya, yang memungkinkan pengguna tanpa kredensial melakukan tindakan tertentu pada resource.
Saat membuat URL bertanda tangan, Anda harus menentukan akun yang memiliki izin yang memadai untuk membuat permintaan yang akan dibuat oleh URL bertanda tangan.
Dalam sebagian besar kasus, akun tersebut adalah akun layanan.
Jika Anda membuat program sendiri untuk membuat URL yang ditandatangani, Anda dapat menggunakan akun pengguna, jika akun tersebut memiliki kunci HMAC terkait.
Setelah membuat URL bertanda tangan, siapa saja yang memilikinya dapat menggunakan URL bertanda tangan untuk melakukan tindakan tertentu, seperti membaca objek, dalam jangka waktu tertentu.
Kapan Anda harus menggunakan URL bertanda tangan?
Dalam beberapa skenario, sebaiknya jangan mengharuskan pengguna memiliki akun sendiri untuk dapat mengakses Cloud Storage. Namun, sebaiknya tetap kontrol akses menggunakan logika khusus aplikasi. Cara umum untuk mengatasi kasus penggunaan ini adalah dengan memberikan URL bertanda tangan kepada pengguna, sehingga pengguna tersebut dapat membaca, menulis, atau menghapus akses ke resource tersebut selama waktu yang terbatas. Anda menentukan waktu habis masa berlaku saat membuat URL bertanda tangan. Siapa saja yang memiliki URL ini dapat mengakses resource hingga waktu habis masa berlaku untuk URL tercapai atau kunci yang digunakan untuk menandatangani URL diputar.
Penggunaan URL yang ditandatangani paling umum adalah untuk mengupload dan mendownload, karena dalam permintaan semacam itu, data objek berpindah antara pemohon dan Cloud Storage. Dalam sebagian besar kasus lainnya, seperti menyalin objek, menulis objek, menghapus objek, atau mengedit metadata, pembuatan URL bertanda tangan dan pemberiannya kepada seseorang untuk digunakan merupakan langkah tambahan yang tidak perlu dilakukan. Sebagai gantinya, Anda harus mempertimbangkan desain yang memungkinkan entity yang bertanggung jawab untuk membuat URL bertanda tangan secara langsung membuat permintaan yang diinginkan ke Cloud Storage.
Contoh URL bertanda tangan
Berikut ini adalah contoh URL bertanda tangan yang dibuat setelah proses penandatanganan V4 dengan autentikasi akun layanan:
https://storage.googleapis.com/example-bucket/cat.jpeg?X-Goog-Algorithm= GOOG4-RSA-SHA256&X-Goog-Credential=example%40example-project.iam.gserviceaccount.com %2F20181026%2Fus-central1%2Fstorage%2Fgoog4_request&X-Goog-Date=20181026T18 1309Z&X-Goog-Expires=900&X-Goog-SignedHeaders=host&X-Goog-Signature=247a2aa45f16 9edf4d187d54e7cc46e4731b1e6273242c4f4c39a1d2507a0e58706e25e3a85a7dbb891d62afa849 6def8e260c1db863d9ace85ff0a184b894b117fe46d1225c82f2aa19efd52cf21d3e2022b3b868dc c1aca2741951ed5bf3bb25a34f5e9316a2841e8ff4c530b22ceaa1c5ce09c7cbb5732631510c2058 0e61723f5594de3aea497f195456a2ff2bdd0d13bad47289d8611b6f9cfeef0c46c91a455b94e90a 66924f722292d21e24d31dcfb38ce0c0f353ffa5a9756fc2a9f2b40bc2113206a81e324fc4fd6823 a29163fa845c8ae7eca1fcf6e5bb48b3200983c56c5ca81fffb151cca7402beddfc4a76b13344703 2ea7abedc098d2eb14a7
URL yang ditandatangani ini memberikan akses untuk membaca objek cat.jpeg di bucket example-bucket. Parameter kueri yang membuatnya menjadi URL bertanda tangan antara lain:
X-Goog-Algorithm: Algoritme yang digunakan untuk menandatangani URL.X-Goog-Credential: Informasi tentang kredensial yang digunakan untuk membuat URL bertanda tangan.X-Goog-Date: Tanggal dan waktu URL bertanda tangan mulai dapat digunakan, dalam format dasar ISO 8601YYYYMMDD'T'HHMMSS'Z'.X-Goog-Expires: Jangka waktu URL bertanda tangan tetap valid, diukur dalam detik dari nilai diX-Goog-Date. Dalam contoh ini, URL bertanda tangan akan habis masa berlakunya dalam 15 menit. Nilai habis masa berlaku terpanjang adalah 604800 detik (7 hari).X-Goog-SignedHeaders: Header yang harus disertakan sebagai bagian dari permintaan apa pun yang menggunakan URL bertanda tangan.X-Goog-Signature: String autentikasi yang memungkinkan permintaan menggunakan URL bertanda tangan ini untuk mengaksescat.jpeg.
Menggunakan URL yang ditandatangani dengan operasi upload yang dapat dilanjutkan
Secara umum, pembuatan URL yang ditandatangani untuk operasi upload yang dapat dilanjutkan tidak diperlukan,
karena setelah permintaan untuk memulai upload, permintaan PUT
berikutnya untuk mengupload data objek menggunakan URI sesi, yang bertindak sebagai
token autentikasi. Artinya, permintaan PUT tidak menggunakan URL yang ditandatangani.
Meskipun Anda dapat membuat dan menggunakan URL bertanda tangan untuk permintaan POST awal untuk memulai upload, dalam sebagian besar kasus, server dapat memulai operasi upload yang dapat dilanjutkan. Kemudian, server akan mengirimkan URI sesi ke klien untuk melakukan upload. Hal ini menghindari kompleksitas server yang membuat URL bertanda tangan, serta kompleksitas klien yang menangani URL bertanda tangan dan memulai operasi upload yang dapat dilanjutkan.
Seperti URL yang ditandatangani, URI sesi dapat digunakan oleh siapa saja yang memilikinya untuk mengupload data. Pastikan untuk mengirimkan URI sesi melalui HTTPS saat memberikannya kepada klien.
Pertimbangan URL bertanda tangan
Saat menggunakan URL yang ditandatangani, perhatikan hal-hal berikut:
URL yang ditandatangani hanya dapat digunakan untuk mengakses resource Cloud Storage melalui endpoint XML API.
Saat menentukan kredensial, sebaiknya Anda mengidentifikasi akun layanan menggunakan alamat emailnya. Namun, Anda juga dapat menggunakan ID akun layanan.
Permintaan kanonis
URL yang ditandatangani menggunakan permintaan kanonis sebagai bagian dari informasi yang dienkode dalam
parameter string kueri X-Goog-Signature terkait. Saat Anda
membuat URL bertanda tangan dengan alat Cloud Storage, permintaan kanonis yang diperlukan
akan dibuat dan digabungkan secara otomatis. Namun, saat Anda
membuat URL bertanda tangan dengan program milik sendiri, Anda harus menentukan sendiri permintaan kanonis
dan menggunakannya untuk membuat tanda tangan.
Cakupan kredensial
Cakupan kredensial muncul di string-to-sign dan
parameter string kueri X-Goog-Credential.
Langkah berikutnya
- Membuat URL bertanda tangan dengan alat Cloud Storage, seperti library klien atau Google Cloud CLI.
- Membuat URL bertanda tangan dengan program Anda sendiri.
- Mempelajari Permintaan kanonis lebih lanjut.
- Mempelajari Tanda Tangan lebih lanjut.