Dokumentasi Amazon S3 File Gateway telah dipindahkan ke Apa itu Amazon S3 File Gateway?
Dokumentasi Amazon FSx File Gateway telah dipindahkan ke Apa itu Amazon FSx File Gateway?
Dokumentasi Tape Gateway telah dipindahkan ke Apa itu Tape Gateway?
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
APIReferensi untuk Storage Gateway
Selain menggunakan konsol, Anda dapat menggunakan AWS Storage Gateway API untuk mengonfigurasi dan mengelola gateway Anda secara terprogram. Bagian ini menjelaskan AWS Storage Gateway operasi, penandatanganan permintaan untuk otentikasi dan penanganan kesalahan. Untuk informasi tentang wilayah dan titik akhir yang tersedia untuk Storage Gateway, lihat AWS Storage Gateway Titik Akhir dan Kuota di. Referensi Umum AWS
catatan
Anda juga dapat menggunakan AWS SDKs saat mengembangkan aplikasi dengan AWS Storage Gateway. AWS SDKsUntuk Jawa, NET, dan PHP bungkus yang mendasarinya AWS Storage Gateway API, menyederhanakan tugas pemrograman Anda. Untuk informasi tentang mengunduh SDK pustaka, lihat Pustaka Kode Contoh
Topik
Header Permintaan yang Diperlukan Storage Gateway
Bagian ini menjelaskan header yang diperlukan yang harus Anda kirim dengan setiap POST permintaan ke Storage Gateway. Anda menyertakan HTTP header untuk mengidentifikasi informasi penting tentang permintaan termasuk operasi yang ingin Anda panggil, tanggal permintaan, dan informasi yang menunjukkan otorisasi Anda sebagai pengirim permintaan. Header tidak peka huruf besar/kecil dan urutan header tidak penting.
Contoh berikut menunjukkan header yang digunakan dalam ActivateGatewayoperasi.
POST / HTTP/1.1 Host: storagegateway.us-east-2.amazonaws.com Content-Type: application/x-amz-json-1.1 Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20120425/us-east-2/storagegateway/aws4_request, SignedHeaders=content-type;host;x-amz-date;x-amz-target, Signature=9cd5a3584d1d67d57e61f120f35102d6b3649066abdd4bf4bbcf05bd9f2f8fe2 x-amz-date: 20120912T120000Z x-amz-target: StorageGateway_20120630.ActivateGateway
Berikut ini adalah header yang harus disertakan dengan POST permintaan Anda ke Storage Gateway. Header yang ditampilkan di bawah ini yang dimulai dengan “x-amz” adalah AWS header -specific. Semua header lain yang terdaftar adalah header umum yang digunakan dalam HTTP transaksi.
Header | Deskripsi |
---|---|
Authorization |
Header otorisasi berisi beberapa informasi tentang permintaan yang memungkinkan Storage Gateway untuk menentukan apakah permintaan tersebut merupakan tindakan yang valid untuk pemohon. Format header ini adalah sebagai berikut (jeda baris ditambahkan untuk keterbacaan):
Dalam sintaks sebelumnya, Anda menentukan, tahun, bulan YourAccessKey, dan hari (yyyymmdd), wilayah, dan. CalculatedSignature Format header otorisasi ditentukan oleh persyaratan proses Penandatanganan AWS V4. Rincian penandatanganan dibahas dalam topikMenandatangani Permintaan. |
Content-Type |
Gunakan
|
Host |
Gunakan header host untuk menentukan titik akhir Storage Gateway tempat Anda mengirim permintaan. Misalnya,
|
x-amz-date |
Anda harus memberikan cap waktu di HTTP
|
x-amz-target |
Header ini menentukan versi API dan operasi yang Anda minta. Nilai header target dibentuk dengan menggabungkan API versi dengan API nama dan dalam format berikut.
operationNameNilai (misalnya "ActivateGateway“) dapat ditemukan dari API daftar,APIReferensi untuk Storage Gateway. |
Menandatangani Permintaan
Storage Gateway mengharuskan Anda mengautentikasi setiap permintaan yang Anda kirim dengan menandatangani permintaan. Untuk menandatangani permintaan, Anda menghitung tanda tangan digital menggunakan fungsi hash kriptografi. Hash kriptografi adalah fungsi yang mengembalikan nilai hash unik berdasarkan input. Input ke fungsi hash termasuk teks permintaan Anda dan secret access key Anda. Fungsi hash mengembalikan nilai hash yang Anda sertakan dalam permintaan sebagai tanda tangan Anda. Tanda tangan adalah bagian header Authorization
dari permintaan Anda.
Setelah menerima permintaan Anda, Storage Gateway menghitung ulang tanda tangan menggunakan fungsi hash yang sama dan input yang Anda gunakan untuk menandatangani permintaan. Jika tanda tangan yang dihasilkan cocok dengan tanda tangan dalam permintaan, Storage Gateway memproses permintaan. Jika tidak, permintaan ditolak.
Storage Gateway mendukung otentikasi menggunakan AWS Signature Version 4. Proses untuk menghitung tanda tangan dapat dibagi menjadi tiga tugas:
-
Tugas 1: Buat Permintaan Canonical
Atur ulang HTTP permintaan Anda ke dalam format kanonik. Menggunakan formulir kanonik diperlukan karena Storage Gateway menggunakan bentuk kanonik yang sama ketika menghitung ulang tanda tangan untuk dibandingkan dengan yang Anda kirim.
-
Tugas 2: Buat String untuk Ditandatangani
Buat string yang akan Anda gunakan sebagai salah satu nilai input untuk fungsi hash kriptografi Anda. String, yang disebut string to sign, adalah rangkaian dari nama algoritme hash, tanggal permintaan, string cakupan kredensial, dan permintaan kanonikalisasi dari tugas sebelumnya. String lingkup kredensyal itu sendiri adalah rangkaian informasi tanggal, wilayah, dan layanan.
-
Buat tanda tangan untuk permintaan Anda menggunakan fungsi hash kriptografi yang menerima dua string input: string to sign dan kunci turunan. Kunci turunan dihitung dengan memulai dengan kunci akses rahasia Anda dan menggunakan string cakupan kredensyal untuk membuat serangkaian Kode Otentikasi Pesan berbasis Hash (). HMACs
Contoh Perhitungan Tanda Tangan
Contoh berikut memandu Anda melalui detail pembuatan tanda tangan untuk ListGateways. Contoh dapat digunakan sebagai referensi untuk memeriksa metode perhitungan tanda tangan Anda. Perhitungan referensi lainnya disertakan dalam Rangkaian Pengujian Signature Versi 4 dari Daftar Istilah Amazon Web Services.
Contoh tersebut mengasumsikan sebagai berikut:
-
Cap waktu permintaan adalah “Senin, 10 Sep 2012 00:00:00". GMT
-
Titik akhirnya adalah wilayah AS Timur (Ohio).
Sintaks permintaan umum (termasuk JSON isi) adalah:
POST / HTTP/1.1 Host: storagegateway.us-east-2.amazonaws.com x-amz-Date: 20120910T000000Z Authorization:
SignatureToBeCalculated
Content-type: application/x-amz-json-1.1 x-amz-target: StorageGateway_20120630.ListGateways {}
Bentuk kanonik dari permintaan yang dihitung adalah:
POST / content-type:application/x-amz-json-1.1 host:storagegateway.us-east-2.amazonaws.com x-amz-date:20120910T000000Z x-amz-target:StorageGateway_20120630.ListGateways content-type;host;x-amz-date;x-amz-target 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
Baris terakhir dari permintaan kanonik adalah hash dari isi permintaan. Selain itu, perhatikan baris ketiga kosong dalam permintaan kanonik. Ini karena tidak ada parameter kueri untuk ini API (atau Storage Gateway apa punAPIs).
String yang akan ditandatangani adalah:
AWS4-HMAC-SHA256 20120910T000000Z 20120910/us-east-2/storagegateway/aws4_request 92c0effa6f9224ac752ca179a04cecbede3038b0959666a8160ab452c9e51b3e
Baris pertama dari string yang akan ditandatangani adalah algoritma, baris kedua adalah cap waktu, baris ketiga adalah ruang lingkup kredensi, dan baris terakhir adalah hash dari permintaan kanonik dari Tugas 1.
Untuk, kunci turunan dapat direpresentasikan sebagai:
derived key = HMAC(HMAC(HMAC(HMAC("AWS4" + YourSecretAccessKey,"20120910"),"us-east-2"),"storagegateway"),"aws4_request")
Jika secret access key, wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY , digunakan, tanda tangan yang dihitung adalah:
6d4c40b8f2257534dbdca9f326f147a0a7a419b63aff349d9d9c737c9a0f4c81
Langkah terakhir adalah membangun header Authorization
. Untuk kunci akses demonstrasiAKIAIOSFODNN7EXAMPLE, header (dengan jeda baris ditambahkan untuk keterbacaan) adalah:
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20120910/us-east-2/storagegateway/aws4_request, SignedHeaders=content-type;host;x-amz-date;x-amz-target, Signature=6d4c40b8f2257534dbdca9f326f147a0a7a419b63aff349d9d9c737c9a0f4c81
Respons Kesalahan
Bagian ini memberikan informasi referensi tentang AWS Storage Gateway kesalahan. Kesalahan ini diwakili oleh pengecualian kesalahan dan kode kesalahan operasi. Misalnya, pengecualian kesalahan dikembalikan InvalidSignatureException
oleh API respons apa pun jika ada masalah dengan tanda tangan permintaan. Namun, kode kesalahan operasi ActivationKeyInvalid
dikembalikan hanya untuk file ActivateGatewayAPI.
Bergantung pada jenis kesalahannya, Storage Gateway hanya dapat mengembalikan pengecualian, atau mungkin mengembalikan pengecualian dan kode kesalahan operasi. Contoh respons kesalahan ditampilkan diRespons Kesalahan.
Pengecualian
Tabel berikut mencantumkan AWS Storage Gateway API pengecualian. Ketika sebuah AWS Storage Gateway operasi mengembalikan respons kesalahan, badan respons berisi salah satu pengecualian ini. InternalServerError
Dan InvalidGatewayRequestException
mengembalikan salah satu kode Kode Kesalahan Operasi pesan kode kesalahan operasi yang memberikan kode kesalahan operasi tertentu.
Pengecualian | Pesan | HTTPKode Status |
---|---|---|
IncompleteSignatureException |
Tanda tangan yang ditentukan tidak lengkap. | 400 Permintaan Buruk |
InternalFailure |
Pemrosesan permintaan gagal karena beberapa kesalahan, pengecualian, atau kegagalan yang tidak diketahui. | 500 Kesalahan Server Internal |
InternalServerError |
Salah satu pesan kode kesalahan operasiKode Kesalahan Operasi. | 500 Kesalahan Server Internal |
InvalidAction |
Tindakan atau operasi yang diminta tidak valid. | 400 Permintaan Buruk |
InvalidClientTokenId |
Sertifikat X.509 atau ID Kunci AWS Akses yang disediakan tidak ada dalam catatan kami. | 403 Dilarang |
InvalidGatewayRequestException |
Salah satu pesan kode kesalahan operasi diKode Kesalahan Operasi. | 400 Permintaan Buruk |
InvalidSignatureException |
Tanda tangan permintaan yang kami hitung tidak sesuai dengan tanda tangan yang Anda berikan. Periksa Kunci AWS Akses dan metode penandatanganan. | 400 Permintaan Buruk |
MissingAction |
Permintaan tidak memiliki parameter tindakan atau operasi. | 400 Permintaan Buruk |
MissingAuthenticationToken |
Permintaan harus berisi ID Kunci AWS Akses yang valid (terdaftar) atau sertifikat X.509. | 403 Dilarang |
RequestExpired |
Permintaan telah melewati tanggal kedaluwarsa atau tanggal permintaan (baik dengan padding 15 menit), atau tanggal permintaan terjadi lebih dari 15 menit di masa mendatang. | 400 Permintaan Buruk |
SerializationException |
Terjadi kesalahan selama serialisasi. Periksa apakah JSON muatan Anda terbentuk dengan baik. | 400 Permintaan Buruk |
ServiceUnavailable |
Permintaan telah gagal karena kegagalan sementara server. | 503 Layanan Tidak Tersedia |
SubscriptionRequiredException |
AWS Access Key Id memerlukan langganan untuk layanan ini. | 400 Permintaan Buruk |
ThrottlingException |
Tarif terlampaui. | 400 Permintaan Buruk |
TooManyRequests |
Terlalu banyak permintaan. | 429 Terlalu Banyak Permintaan |
UnknownOperationException |
Operasi yang tidak diketahui ditentukan. Operasi yang valid tercantum dalamOperasi di Storage Gateway. | 400 Permintaan Buruk |
UnrecognizedClientException |
Token keamanan yang termasuk dalam permintaan tidak valid. | 400 Permintaan Buruk |
ValidationException |
Nilai parameter input buruk atau di luar jangkauan. | 400 Permintaan Buruk |
Kode Kesalahan Operasi
Tabel berikut menunjukkan pemetaan antara kode kesalahan AWS Storage Gateway operasi dan APIs yang dapat mengembalikan kode. Semua kode kesalahan operasi dikembalikan dengan salah satu dari dua pengecualian umum— InternalServerError
dan InvalidGatewayRequestException
—dijelaskan dalam. Pengecualian
Kode Kesalahan Operasi | Pesan | Operasi yang Mengembalikan Kode Kesalahan ini |
---|---|---|
ActivationKeyExpired |
Kunci aktivasi yang ditentukan telah kedaluwarsa. | ActivateGateway |
ActivationKeyInvalid |
Kunci aktivasi yang ditentukan tidak valid. | ActivateGateway |
ActivationKeyNotFound |
Kunci aktivasi yang ditentukan tidak ditemukan. | ActivateGateway |
BandwidthThrottleScheduleNotFound |
Throttle bandwidth yang ditentukan tidak ditemukan. | DeleteBandwidthRateLimit |
CannotExportSnapshot |
Snapshot yang ditentukan tidak dapat diekspor. | |
InitiatorNotFound |
Inisiator yang ditentukan tidak ditemukan. | DeleteChapCredentials |
DiskAlreadyAllocated |
Disk yang ditentukan sudah dialokasikan. | |
DiskDoesNotExist |
Disk yang ditentukan tidak ada. | |
DiskSizeNotGigAligned |
Disk yang ditentukan tidak selaras dengan gigabyte. | |
DiskSizeGreaterThanVolumeMaxSize |
Ukuran disk yang ditentukan lebih besar dari ukuran volume maksimum. | CreateStorediSCSIVolume |
DiskSizeLessThanVolumeSize |
Ukuran disk yang ditentukan kurang dari ukuran volume. | CreateStorediSCSIVolume |
DuplicateCertificateInfo |
Informasi sertifikat yang ditentukan adalah duplikat. | ActivateGateway |
GatewayInternalError |
Terjadi kesalahan internal gateway. | |
GatewayNotConnected |
Gateway yang ditentukan tidak terhubung. | |
GatewayNotFound |
Gateway yang ditentukan tidak ditemukan. | |
GatewayProxyNetworkConnectionBusy |
Koneksi jaringan proxy gateway yang ditentukan sibuk. | |
InternalError |
Terjadi kesalahan internal. | |
InvalidParameters |
Permintaan yang ditentukan berisi parameter yang salah. | |
LocalStorageLimitExceeded |
Batas penyimpanan lokal terlampaui. | |
LunInvalid |
Yang ditentukan LUN tidak benar. | CreateStorediSCSIVolume |
MaximumVolumeCountExceeded |
Jumlah volume maksimum terlampaui. | |
NetworkConfigurationChanged |
Konfigurasi jaringan gateway telah berubah. | |
NotSupported |
Operasi yang ditentukan tidak didukung. | |
OutdatedGateway |
Gateway yang ditentukan sudah kedaluwarsa. | ActivateGateway |
SnapshotInProgressException |
Snapshot yang ditentukan sedang berlangsung. | DeleteVolume |
SnapshotIdInvalid |
Snapshot yang ditentukan tidak valid. | |
StagingAreaFull |
Area pementasan penuh. | |
TargetAlreadyExists |
Target yang ditentukan sudah ada. | |
TargetInvalid |
Target yang ditentukan tidak valid. | |
TargetNotFound |
Target yang ditentukan tidak ditemukan. | |
UnsupportedOperationForGatewayType |
Operasi yang ditentukan tidak valid untuk jenis gateway. | |
VolumeAlreadyExists |
Volume yang ditentukan sudah ada. | |
VolumeIdInvalid |
Volume yang ditentukan tidak valid. | DeleteVolume |
VolumeInUse |
Volume yang ditentukan sudah digunakan. | DeleteVolume |
VolumeNotFound |
Volume yang ditentukan tidak ditemukan. | |
VolumeNotReady |
Volume yang ditentukan belum siap. |
Respons Kesalahan
Ketika ada kesalahan, informasi header respons berisi:
-
Tipe Konten: aplikasi/ -1.1 x-amz-json
-
Kode yang sesuai
4xx
atau5xx
HTTP status
Tubuh respons kesalahan berisi informasi tentang kesalahan yang terjadi. Contoh respons kesalahan berikut menunjukkan sintaks keluaran elemen respons yang umum untuk semua respons kesalahan.
{ "__type": "String", "message": "String", "error": { "errorCode": "String", "errorDetails": "String" } }
Tabel berikut menjelaskan bidang respon JSON kesalahan yang ditunjukkan dalam sintaks sebelumnya.
- __jenis
-
Salah satu pengecualian dariPengecualian.
Tipe: String
- kesalahan
-
Berisi detail kesalahan API -spesifik. Secara umum kesalahan (yaitu, tidak spesifik untuk apapunAPI), informasi kesalahan ini tidak ditampilkan.
Jenis: Koleksi
- errorCode
-
Salah satu kode kesalahan operasi.
Tipe: String
- errorDetails
-
Bidang ini tidak digunakan dalam versi saat iniAPI.
Tipe: String
- pesan
-
Salah satu pesan kode kesalahan operasi.
Tipe: String
Contoh Respon Kesalahan
JSONBadan berikut dikembalikan jika Anda menggunakan DescribeStoredi SCSIVolumes API dan menentukan input ARN permintaan gateway yang tidak ada.
{ "__type": "InvalidGatewayRequestException", "message": "The specified volume was not found.", "error": { "errorCode": "VolumeNotFound" } }
JSONIsi berikut dikembalikan jika Storage Gateway menghitung tanda tangan yang tidak cocok dengan tanda tangan yang dikirim dengan permintaan.
{ "__type": "InvalidSignatureException", "message": "The request signature we calculated does not match the signature you provided." }
Operasi di Storage Gateway
Untuk daftar operasi Storage Gateway, lihat Tindakan dalam AWS Storage Gateway APIReferensi.