Halaman ini berisi prosedur untuk membuat atau mengedit instance Cloud SQL guna mengizinkan pengguna, akun layanan, atau grup yang dikonfigurasi untuk menggunakan autentikasi database IAM Cloud SQL. Untuk mempelajari integrasi IAM Cloud SQL lebih lanjut, lihat Autentikasi IAM.
Instance yang baru dibuat memiliki database postgres
.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Pastikan Anda memiliki peran Admin Cloud SQL dan Compute Viewer di
akun pengguna.
Pelajari lebih lanjut tentang peran dan perizinan
Mengonfigurasi instance baru untuk autentikasi database IAM
Untuk mengonfigurasi instance Cloud SQL baru untuk autentikasi database IAM,
Anda harus mengaktifkan flag cloudsql.iam_authentication
.
Setelah mengaktifkan tanda ini, Anda dapat menambahkan pengguna, akun layanan, atau grup IAM ke instance Cloud SQL.
Untuk mengonfigurasi instance Cloud SQL baru agar menggunakan autentikasi database IAM:
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Klik Create Instance.
- Klik Choose PostgreSQL.
- Masukkan nama untuk Instance ID. Jangan menyertakan informasi identitas pribadi atau yang sensitif dalam nama instance Anda karena dapat terlihat secara eksternal. Anda tidak perlu menyertakan ID project dalam nama instance. ID project akan otomatis disertakan jika sesuai (misalnya, dalam file log).
- Masukkan sandi untuk administrator default.
- Dari menu Database version, pilih versi database.
- Pada bagian Pilih region dan ketersediaan zona pilih region dan zona untuk instance Anda. Tempatkan instance Anda di region yang sama dengan resource yang mengaksesnya. Region yang Anda pilih tidak dapat diubah lagi. Biasanya, Anda tidak perlu menentukan zona.
- Di bagian Customize your instance, klik Show Configuration Options, lalu luaskan Flags.
- Klik Add Flag.
- Dari menu Choose a flag, pilih flag
cloudsql.iam_authentication
. Pastikan On dipilih sebagai nilai untuk flag ini, lalu klik Done. - Konfigurasikan setelan instance lainnya sesuai dengan kebutuhan. Untuk mengetahui informasi selengkapnya tentang setelan, lihat Setelan.
- Klik Create Instance.
gcloud
Jalankan
gcloud sql instances create
dengan parameter --database-flags
ditetapkan ke
cloudsql.iam_authentication=on
.
Ganti kode berikut:
- INSTANCE_NAME: nama instance baru.
- POSTGRES_VERSION: versi PostgreSQL (seperti POSTGRES_9_6, POSTGRES_10, POSTGRES_11, atau POSTGRES_12).
- NUMBER_OF_CORES: jumlah core dalam mesin.
- AMOUNT_OF_MEMORY: jumlah memori di dalam mesin. Unit ukuran harus tersedia (seperti, 3072MiB atau 9GiB).
- ZONE: zona Compute Engine yang diinginkan (seperti us-central1-a, atau us-central1-b).
- PASSWORD: membuat sandi untuk pengguna root.
gcloud sql instances create INSTANCE_NAME \ --database-version=POSTGRES_VERSION \ --cpu=NUMBER_OF_CORES \ --memory=AMOUNT_OF_MEMORY \ --zone=ZONE_NAME \ --root-password=PASSWORD \ --database-flags=cloudsql.iam_authentication=on
Terraform
Untuk membuat instance dengan autentikasi database IAM yang diaktifkan, gunakan resource Terraform.
Menerapkan perubahan
Untuk menerapkan konfigurasi Terraform di project Google Cloud, selesaikan langkah-langkah di bagian berikut.
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf
—misalnyamain.tf
. Dalam tutorial ini, file ini disebut sebagaimain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tf
yang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade
:terraform init -upgrade
Menerapkan perubahan
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka project Google Cloud Anda untuk melihat hasilnya. Di Konsol Google Cloud, buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
Menghapus perubahan
Untuk menghapus perubahan Anda, lakukan langkah-langkah berikut:
- Untuk menonaktifkan perlindungan penghapusan, di file konfigurasi Terraform Anda, tetapkan
argumen
deletion_protection
kefalse
.deletion_protection = "false"
- Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan
memasukkan
yes
pada prompt:terraform apply
-
Hapus resource yang sebelumnya diterapkan dengan konfigurasi Terraform Anda dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform destroy
REST v1
Jangan menyertakan informasi sensitif atau informasi identitas pribadi (PII) dalam nama instance Anda karena dapat terlihat secara eksternal.
Anda tidak perlu menyertakan ID project dalam nama instance. ID project akan otomatis disertakan jika diperlukan (misalnya, dalam file log).
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- INSTANCE_ID: ID instance yang diinginkan
- REGION: region yang diinginkan, seperti us-east-1
- PROJECT_ID: the project ID
- LOCATION_ID: ID lokasi
- DATABASE_VERSION: string enum versi database.
Contoh:
POSTGRES_12
- PASSWORD: sandi untuk pengguna root
- MACHINE_TYPE: string enum jenis (tingkat) mesin, seperti:
db-custom-[CPUS]-[MEMORY_MBS]
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/instances
Meminta isi JSON:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "backupConfiguration": { "enabled": true }, "databaseFlags": [ { "name": "cloudsql.iam_authentication", "value": "on" } ] } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
Jangan menyertakan informasi sensitif atau informasi identitas pribadi (PII) dalam nama instance Anda karena dapat terlihat secara eksternal.
Anda tidak perlu menyertakan ID project dalam nama instance. ID project akan otomatis disertakan jika diperlukan (misalnya, dalam file log).
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- INSTANCE_ID: ID instance yang diinginkan
- REGION: region yang diinginkan, seperti us-east-1
- PROJECT_ID: the project ID
- LOCATION_ID: ID lokasi
- DATABASE_VERSION: string enum versi database.
Contoh:
POSTGRES_12
- PASSWORD: sandi untuk pengguna root
- MACHINE_TYPE: string enum jenis (tingkat) mesin, seperti:
db-custom-[CPUS]-[MEMORY_MBS]
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/locations/LOCATION_ID/instances
Meminta isi JSON:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "backupConfiguration": { "enabled": true }, "databaseFlags": [ { "name": "cloudsql.iam_authentication", "value": "on" } ] } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Mengonfigurasi instance yang ada untuk autentikasi database IAM
Untuk mengonfigurasi instance Cloud SQL yang ada untuk autentikasi database IAM, Anda harus mengaktifkan flag cloudsql.iam_authentication
.
Setelah mengaktifkan tanda ini, Anda dapat menambahkan pengguna, akun layanan, atau grup IAM ke instance Cloud SQL.
Untuk mengonfigurasi instance Cloud SQL yang ada agar menggunakan autentikasi database IAM:
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Klik Edit.
- Di bagian Customize your instance, luaskan Flag.
- Klik Add Flag.
- Dari menu Choose a flag, pilih flag
cloudsql.iam_authentication
. Pastikan On dipilih sebagai nilai untuk flag ini, lalu klik Done. - Konfigurasikan setelan instance lainnya sesuai dengan kebutuhan. Untuk mengetahui informasi selengkapnya tentang setelan, lihat Setelan.
- Klik Simpan.
gcloud
Untuk mengetahui informasi tentang menginstal dan memulai gcloud CLI, lihat Menginstal gcloud CLI. Untuk mengetahui informasi tentang cara memulai Cloud Shell, lihat Menggunakan Cloud Shell.
Untuk prosedur ini, gunakan
gcloud
sql instances patch
.
Ganti kode berikut:
- INSTANCE_NAME: nama instance baru.
gcloud sql instances patch INSTANCE_NAME \ --database-flags=cloudsql.iam_authentication=on
Tindakan ini akan mereset semua setelan flag database yang sudah ada. Untuk panduan lebih lanjut tentang menyetel flag database, lihat Menetapkan flag database.
REST v1
Sebelum menggunakan salah satu data permintaan, buatlah pengganti berikut:
- PROJECT_ID: the project ID
- LOCATION_ID: ID lokasi
- INSTANCE_ID: ID instance yang diinginkan
- REGION: region yang diinginkan
- DATABASE_VERSION: string enum versi database.
Contoh:
POSTGRES_12
- PASSWORD: sandi untuk pengguna root
- MACHINE_TYPE: string enum jenis (tingkat) mesin, seperti:
db-custom-[CPUS]-[MEMORY_MBS]
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/instances
Meminta isi JSON:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "backupConfiguration": { "enabled": true } "databaseFlags": [ { "name": "cloudsql.iam_authentication", "value": "on" } ] } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
Sebelum menggunakan salah satu data permintaan, buatlah pengganti berikut:
- PROJECT_ID: the project ID
- LOCATION_ID: ID lokasi
- INSTANCE_ID: ID instance yang diinginkan
- REGION: region yang diinginkan
- DATABASE_VERSION: string enum versi database.
Contoh:
POSTGRES_12
- PASSWORD: sandi untuk pengguna root
- MACHINE_TYPE: string enum jenis (tingkat) mesin, seperti:
db-custom-[CPUS]-[MEMORY_MBS]
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/locations/LOCATION_ID/instances
Meminta isi JSON:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "backupConfiguration": { "enabled": true } "databaseFlags": [ { "name": "cloudsql.iam_authentication", "value": "on" } ] } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON yang mirip dengan berikut ini:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Langkah berikutnya
- Pelajari tentang autentikasi database IAM lebih lanjut.
- Pelajari cara mengonfigurasi login replika baca untuk autentikasi database IAM.
- Pelajari cara membuat akun pengguna dan layanan yang menggunakan autentikasi database IAM Cloud SQL.
- Pelajari cara login ke database Cloud SQL menggunakan autentikasi database IAM.
- Pelajari cara mengelola akun pengguna dan layanan untuk autentikasi database IAM.