Izinkan akses tamu yang tidak diautentikasi ke aplikasi Anda menggunakan kunci API - Amazon Location Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Izinkan akses tamu yang tidak diautentikasi ke aplikasi Anda menggunakan kunci API

Ketika Anda memanggil Amazon Location Service APIs di aplikasi Anda, Anda biasanya membuat panggilan ini sebagai pengguna yang diautentikasi yang berwenang untuk melakukan API panggilan. Namun, ada beberapa kasus di mana Anda tidak ingin mengautentikasi setiap pengguna aplikasi Anda. Misalnya, Anda mungkin ingin aplikasi web yang menunjukkan lokasi bisnis Anda tersedia bagi siapa saja yang menggunakan situs web, apakah mereka masuk atau tidak. Dalam hal ini, salah satu alternatifnya adalah menggunakan API kunci untuk melakukan API panggilan.

APIkunci adalah nilai kunci yang dikaitkan dengan sumber daya Amazon Location Service tertentu di Anda Akun AWS, dan tindakan spesifik yang dapat Anda lakukan pada sumber daya tersebut. Anda dapat menggunakan API kunci dalam aplikasi Anda untuk membuat panggilan yang tidak diautentikasi ke Lokasi Amazon APIs untuk sumber daya tersebut. Misalnya, jika Anda mengaitkan API kunci dengan sumber daya peta myMap, dan GetMap* tindakannya, maka aplikasi yang menggunakan API kunci tersebut akan dapat melihat peta yang dibuat dengan sumber daya tersebut, dan akun Anda akan dikenakan biaya sebagai penggunaan lain dari akun Anda. APIKunci yang sama tidak akan memberikan izin untuk mengubah atau memperbarui sumber daya peta—hanya menggunakan sumber daya yang diizinkan.

catatan

APIkunci tersedia untuk digunakan hanya dengan peta, tempat, dan sumber daya rute, dan Anda tidak dapat memodifikasi atau membuat sumber daya tersebut. Jika aplikasi Anda memerlukan akses ke sumber daya atau tindakan lain untuk pengguna yang tidak diautentikasi, Anda dapat menggunakan Amazon Cognito untuk menyediakan akses bersama dengan, atau bukan, kunci. API Untuk informasi selengkapnya, lihat Izinkan akses tamu yang tidak diautentikasi ke aplikasi Anda menggunakan Amazon Cognito.

APIkunci menyertakan nilai teks biasa yang memberikan akses ke satu atau lebih sumber daya di Anda Akun AWS. Jika seseorang menyalin API kunci Anda, mereka dapat mengakses sumber daya yang sama. Untuk menghindari hal ini, Anda dapat menentukan domain tempat API kunci dapat digunakan saat Anda membuat kunci. Domain ini disebut referer. Jika diperlukan, Anda juga dapat membuat API Kunci jangka pendek dengan menetapkan waktu kedaluwarsa untuk Kunci AndaAPI.

APIkunci dibandingkan dengan Amazon Cognito

APIkunci dan Amazon Cognito digunakan dengan cara yang sama untuk skenario serupa, jadi mengapa Anda menggunakan satu di atas yang lain? Daftar berikut menyoroti beberapa perbedaan antara keduanya.

  • APIkunci hanya tersedia untuk peta, tempat, dan sumber daya rute, dan hanya untuk tindakan tertentu. Amazon Cognito dapat digunakan untuk mengautentikasi akses ke sebagian besar Amazon Location Service. APIs

  • Kinerja permintaan peta dengan API kunci biasanya lebih cepat daripada skenario serupa dengan Amazon Cognito. Otentikasi yang lebih sederhana berarti lebih sedikit perjalanan pulang pergi ke layanan dan permintaan cache saat mendapatkan ubin peta yang sama lagi dalam periode waktu singkat.

  • Dengan Amazon Cognito, Anda dapat menggunakan proses otentikasi Anda sendiri atau menggabungkan beberapa metode otentikasi, menggunakan Identitas Federasi Amazon Cognito. Untuk informasi selengkapnya, lihat Memulai Identitas Federasi di Panduan Pengembang Amazon Cognito.

Buat API kunci

Anda dapat membuat API kunci, dan mengaitkannya dengan satu atau lebih sumber daya di Anda Akun AWS.

Anda dapat membuat API kunci menggunakan konsol Amazon Location Service, the AWS CLI, atau Amazon LocationAPIs.

Console
Untuk membuat API kunci menggunakan konsol Amazon Location Service
  1. Di konsol Lokasi Amazon, pilih APItombol dari menu kiri.

  2. Pada halaman APIkunci, pilih APItombol Buat.

  3. Pada halaman Create API key, isi informasi berikut:

    • Nama — Nama untuk API kunci Anda, sepertiMyWebAppKey.

    • Deskripsi - Deskripsi opsional untuk API kunci Anda.

    • Sumber Daya — Pilih sumber daya Lokasi Amazon untuk memberikan akses dengan API kunci ini dari dropdown. Anda dapat menambahkan lebih dari satu sumber daya dengan memilih Tambah sumber daya.

    • Tindakan - Tentukan tindakan yang ingin Anda otorisasi dengan API kunci ini. Anda harus memilih setidaknya satu tindakan untuk mencocokkan setiap jenis sumber daya yang telah Anda pilih. Misalnya, jika Anda memilih sumber daya tempat, Anda harus memilih setidaknya salah satu pilihan di bawah Tindakan Tempat.

    • Waktu kedaluwarsa - Secara opsional, tambahkan tanggal kedaluwarsa dan waktu untuk kunci Anda. API Untuk informasi selengkapnya, lihat Kelola masa hidup API utama.

    • Referer — Secara opsional, tambahkan satu atau lebih domain tempat Anda dapat menggunakan kunci. API Misalnya, jika API kuncinya adalah mengizinkan aplikasi berjalan di situs webexample.com, maka Anda dapat menempatkan *.example.com/ sebagai perujuk yang diizinkan.

    • Tag — Secara opsional, tambahkan tag ke API kunci.

  4. Pilih Buat API kunci untuk membuat API kunci.

  5. Pada halaman detail untuk API kunci, Anda dapat melihat informasi tentang API kunci yang telah Anda buat. Pilih Tampilkan API kunci untuk melihat nilai kunci yang Anda gunakan saat memanggil Lokasi AmazonAPIs. Nilai kunci akan memiliki formatv1.public.a1b2c3d4.... Untuk informasi selengkapnya tentang menggunakan API kunci untuk merender peta, lihatGunakan API kunci untuk membuat peta.

API

Untuk membuat API kunci menggunakan Lokasi Amazon APIs

Gunakan CreateKey operasi dari Lokasi AmazonAPIs.

Contoh berikut adalah API permintaan untuk membuat API kunci yang disebut ExampleKey tanpa tanggal kedaluwarsa, dan akses ke sumber daya peta tunggal.

POST /metadata/v0/keys HTTP/1.1 Content-type: application/json { "KeyName": "ExampleKey" "Restrictions": { "AllowActions": [ "geo:GetMap*" ], "AllowResources": [ "arn:aws:geo:region:map/mapname" ] }, "NoExpiry": true } }

Responsnya mencakup nilai API kunci yang akan digunakan saat mengakses sumber daya di aplikasi Anda. Nilai kunci akan memiliki formatv1.public.a1b2c3d4.... Untuk mempelajari selengkapnya tentang menggunakan API kunci untuk merender peta, lihatGunakan API kunci untuk membuat peta.

Anda juga dapat menggunakan DescribeKey API untuk menemukan nilai kunci untuk kunci di lain waktu.

AWS CLI

Untuk membuat API kunci menggunakan AWS CLI perintah

Gunakan perintah create-key.

Contoh berikut menciptakan API kunci yang disebut ExampleKey tanpa tanggal kedaluwarsa, dan akses ke sumber daya peta tunggal.

aws location \ create-key \ --key-name ExampleKey \ --restrictions '{"AllowActions":["geo:GetMap*"],"AllowResources":["arn:aws:geo:region:map/mapname"]}' \ --no-expiry

Responsnya mencakup nilai API kunci yang akan digunakan saat mengakses sumber daya di aplikasi Anda. Nilai kunci akan memiliki formatv1.public.a1b2c3d4.... Untuk mempelajari selengkapnya tentang menggunakan API kunci untuk merender peta, lihatGunakan API kunci untuk membuat peta. create-keyResponsnya terlihat seperti berikut ini.

{ "Key": "v1.public.a1b2c3d4...", "KeyArn": "arn:aws:geo:region:accountId:api-key/ExampleKey", "KeyName": "ExampleKey", "CreateTime": "2023-02-06T22:33:15.693Z" }

Anda juga dapat menggunakan describe-key untuk menemukan nilai kunci di lain waktu. Contoh berikut menunjukkan cara describe-key memanggil API kunci bernama ExampleKey.

aws location describe-key \ --key-name ExampleKey

Gunakan API tombol untuk memanggil Lokasi Amazon API

Setelah membuat API kunci, Anda dapat menggunakan nilai kunci untuk melakukan panggilan ke Lokasi Amazon APIs di aplikasi Anda.

APIKunci dukungan APIs itu memiliki parameter tambahan yang mengambil nilai API kunci. Misalnya, jika Anda memanggil GetPlaceAPI, Anda dapat mengisi parameter kunci, sebagai berikut

GET /places/v0/indexes/IndexName/places/PlaceId?key=KeyValue

Jika Anda mengisi nilai ini, Anda tidak perlu mengautentikasi API panggilan dengan AWS Sig v4 seperti biasa.

Untuk JavaScript pengembang, Anda dapat menggunakan Lokasi Amazon JavaScript Pembantu otentikasi untuk membantu mengautentikasi API operasi dengan API kunci.

Untuk pengembang seluler, Anda dapat menggunakan otentikasi SDKs seluler Lokasi Amazon berikut:

Untuk AWS CLI pengguna, ketika Anda menggunakan --key parameter, Anda juga harus menggunakan --no-sign-request parameter, untuk menghindari penandatanganan dengan Sig v4.

catatan

Jika Anda menyertakan tanda tangan AWS Sig v4 key dan Sig dalam panggilan ke Amazon Location Service, hanya API kunci yang digunakan.

Gunakan API kunci untuk membuat peta

Anda dapat menggunakan nilai API kunci untuk membuat peta dalam aplikasi Anda menggunakan MapLibre. Ini sedikit berbeda dari menggunakan API kunci di Lokasi Amazon lain APIs yang Anda panggil secara langsung, karena MapLibre membuat panggilan itu untuk Anda.

Kode contoh berikut menunjukkan menggunakan API kunci untuk membuat peta di halaman web sederhana dengan menggunakan kontrol peta MapLibre GL JS. Agar kode ini berfungsi dengan baik, ganti v1.public.your-api-key-value, us-east-1, dan ExampleMap string dengan nilai yang cocok dengan Anda Akun AWS.

<!-- index.html --> <html> <head> <link href="https://unpkg.com/maplibre-gl@1.14.0/dist/maplibre-gl.css" rel="stylesheet" /> <style> body { margin: 0; } #map { height: 100vh; } </style> </head> <body> <!-- Map container --> <div id="map" /> <!-- JavaScript dependencies --> <script src="https://unpkg.com/maplibre-gl@1.14.0/dist/maplibre-gl.js"></script> <script> const apiKey = "v1.public.your-api-key-value"; // API key const region = "us-east-1"; // Region const mapName = "ExampleMap"; // Map name // URL for style descriptor const styleUrl = `https://maps.geo.${region}.amazonaws.com/maps/v0/maps/${mapName}/style-descriptor?key=${apiKey}`; // Initialize the map const map = new maplibregl.Map({ container: "map", style: styleUrl, center: [-123.1187, 49.2819], zoom: 11, }); map.addControl(new maplibregl.NavigationControl(), "top-left"); </script> </body> </html>

Kelola masa hidup API utama

Anda dapat membuat API kunci yang berfungsi tanpa batas waktu. Namun, jika Anda ingin membuat API kunci sementara, memutar API kunci secara teratur, atau mencabut kunci yang ada, Anda dapat menggunakan API kedaluwarsa APIkunci.

Saat membuat API kunci baru, atau memperbarui yang sudah ada, Anda dapat mengatur waktu kedaluwarsa untuk kunci ituAPI.

  • Ketika API kunci mencapai waktu kedaluwarsa, kunci secara otomatis dinonaktifkan. Kunci tidak aktif tidak lagi dapat digunakan untuk membuat permintaan peta.

  • Anda dapat menghapus API kunci 90 hari setelah menonaktifkannya.

  • Jika Anda memiliki kunci tidak aktif yang belum dihapus, Anda dapat memulihkannya dengan memperbarui waktu kedaluwarsa ke masa depan.

  • Untuk membuat kunci permanen, Anda dapat menghapus waktu kedaluwarsa.

  • Jika Anda mencoba menonaktifkan API kunci yang telah digunakan dalam 7 hari terakhir, Anda akan diminta untuk mengonfirmasi bahwa Anda ingin melakukan perubahan. Jika Anda menggunakan Amazon Location ServiceAPI, atau AWS CLI, Anda akan menerima error, kecuali jika Anda menetapkan ForceUpdate parameter ke true.