Dokumen ini menjelaskan cara deployment Spanner Omni yang aman mengontrol akses melalui autentikasi dan otorisasi. Anda membuat dan mengelola pengguna, serta menetapkan peran yang menentukan izin mereka. Pengguna dapat melakukan autentikasi menggunakan salah satu metode berikut:
- Autentikasi sandi: Menggunakan protokol sandi OPAQUE. Protokol ini meningkatkan keamanan dengan menyediakan token akses bertanda tangan untuk permintaan berikutnya.
- Autentikasi sertifikat klien: Menggunakan sertifikat yang ditandatangani oleh
Certificate Authority (CA) yang sama dengan yang menandatangani sertifikat server API.
Common Namesertifikat mengidentifikasi pengguna.
Otorisasi di Spanner Omni menggunakan nama peran dan izin Identity and Access Management (IAM), mirip dengan Spanner. Anda menetapkan peran kepada pengguna yang memberikan izin tertentu. IAM Spanner Omni berbeda dengan IAM Spanner. Misalnya, tidak mendukung peran kustom dan menyertakan izin Spanner Omni tertentu.
Pengguna
Dalam deployment yang aman, mengakses Spanner Omni API memerlukan pengguna. Anda dapat
membuat, mengupdate, dan menghapus pengguna menggunakan Spanner Omni CLI. Setiap deployment Spanner Omni membuat satu pengguna admin secara default dengan sandi admin.
Buat pengguna
Buat pengguna baru agar Anda dapat menetapkan peran yang berbeda dan mengaudit penggunaan. Perintah
berikut menetapkan peran roles/spanner.databaseUser kepada pengguna baru sehingga
mereka dapat membaca dan menulis ke database Spanner Omni.
spanner users create USER_NAME --roles=roles/spanner.databaseUser
Menghapus pengguna
Menghapus pengguna yang tidak digunakan lagi dari sistem:
spanner users delete USER_NAME
Memperbarui pengguna
Perbarui status dan peran pengguna. Perintah ini akan menimpa status dan peran yang ada:
spanner users update USER_NAME --roles=NEW_ROLES --state=ACTIVE
Autentikasi
Dalam deployment yang aman, pengguna harus login sebelum mengakses deployment Spanner Omni.
Spanner Omni menyediakan dua mekanisme untuk mengautentikasi pengguna:
| Mekanisme | Deskripsi |
|---|---|
| Sandi | Pengguna memasukkan nama pengguna dan sandi mereka. |
| Sertifikat klien | Klien menggunakan sertifikat yang ditandatangani oleh Certificate Authority (CA) yang sama dengan yang menandatangani sertifikat server API. |
Sandi
Autentikasi sandi mengharuskan Anda memasukkan nama pengguna dan sandi Anda. Fitur ini hanya berfungsi jika TLS diaktifkan di server.
spanner auth login USER_NAME
Spanner Omni menggunakan penerapan protokol OPAQUE untuk menghindari pengiriman sandi ke server, yang melindungi sistem dari serangan Man-in-the-Middle. Spanner Omni tidak menyimpan sandi di server, sehingga akses yang tidak diinginkan ke server tidak akan membahayakan kredensial pengguna.
Setelah Anda berhasil melakukan autentikasi, Spanner Omni akan menampilkan token akses yang ditandatangani. Lampirkan token akses ke semua permintaan selanjutnya. Spanner Omni CLI menyimpan token akses di ~/.config/spanner/access_token/token.txt. Untuk menjaga keamanan sistem Anda, jangan bagikan token ini kepada orang lain.
Secara default, masa berlaku token akses adalah 60 menit. Setelah 60 menit berlalu, server tidak menerima token akses, dan Anda harus login lagi. Spanner Omni menandatangani token akses untuk mencegah gangguan.
Untuk mencegah sandi muncul di tempat Anda dapat melihatnya, seperti variabel lingkungan atau flag command line, perintah Spanner Omni CLI menerima sandi dengan dua cara:
- Perintah yang menyamarkan input Anda.
- String dalam file. Spanner Omni memverifikasi bahwa izin file adalah 600, mengganti file dengan data acak, dan menghapusnya setelah dibaca.
Untuk mengetahui detail selengkapnya, jalankan spanner auth --help.
Sertifikat klien
Autentikasi sertifikat klien mengharuskan klien menggunakan sertifikat yang ditandatangani oleh Certificate Authority (CA) yang sama dengan yang menandatangani sertifikat server API.
Sertakan
nama pengguna pengguna yang valid dan aktif di kolom Common Name sertifikat.
Saat melakukan otorisasi, peran yang Anda tetapkan menentukan apakah Anda memiliki
izin untuk melakukan operasi yang diminta. Untuk melampirkan sertifikat klien
ke permintaan, gunakan flag --ca-certificate-file dan
--client-certificate-directory. Berikut adalah contoh
mencantumkan database:
spanner databases list --ca-certificate-file PATH_TO_CA_CERT --client-certificate-directory PATH_TO_CLIENT_CERT_DIR
Anda juga dapat menggunakan sertifikat klien untuk login:
spanner auth login USER_NAME --ca-certificate-file PATH_TO_CA_CERT --client-certificate-directory PATH_TO_CLIENT_CERT_DIR
Otorisasi
Spanner Omni menggunakan sebagian besar nama peran dan izin IAM yang sama dengan Spanner. Saat membuat pengguna, Anda dapat menetapkan satu atau beberapa peran kepada pengguna tersebut. Setiap peran berisi satu atau beberapa izin.
Untuk mencantumkan peran yang tersedia di Spanner Omni, gunakan perintah berikut:
spanner roles list
Untuk mempelajari izin IAM di Spanner Omni, lihat Ringkasan IAM.