Halaman ini berisi prosedur untuk membuat atau mengedit instance Cloud SQL guna mengizinkan pengguna atau akun layanan yang telah dikonfigurasi untuk menggunakan autentikasi database IAM Cloud SQL. Untuk mempelajari integrasi IAM Cloud SQL lebih lanjut, lihat autentikasi IAM.
Instance yang baru dibuat memiliki empat database sistem:
information_schema
: Menyediakan akses ke metadata database, informasi tentang server MySQL.mysql
: Skema sistem. Objek ini berisi tabel yang menyimpan informasi yang diperlukan oleh server MySQL saat dijalankan.performance_schema
: Fitur untuk memantau eksekusi MySQL Server di level rendah.sys
: Berisi kumpulan objek yang membantu DBA dan developer menafsirkan data yang dikumpulkan oleh skema performa.
Sebelum memulai
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
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
Cloud SQL menggunakan flag untuk mengaktifkan dan menonaktifkan koneksi pengguna IAM pada sebuah instance. Dalam prosedur ini, Anda akan mengaktifkan flag tersebut.
Cara mengonfigurasi instance baru yang menggunakan autentikasi database IAM Cloud SQL:
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Klik Create Instance.
- Klik Choose MySQL.
- 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 pengguna root.
- Dari menu drop-down 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 drop-down 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 dari instance baru
- MYSQL_VERSION: Versi MySQL (seperti as MYSQL_5_7 atau MYSQL_8_0).
- NUMBER_OF_CORES: Jumlah inti di 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=MYSQL_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 aktif, 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 terbaru dengan menjalankan perintah berikut dan memasukkan
yes
pada perintah: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 identitas pribadi (PII) di nama instance Anda; informasi ini dapat dilihat secara eksternal.
Anda tidak perlu menyertakan ID project dalam nama instance. Project ID 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: ID project Anda.
- LOCATION_ID: ID lokasi
- DATABASE_VERSION: String enum versi database.
Contoh:
MYSQL_8_0
- 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/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/sql/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/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
Jangan menyertakan informasi sensitif atau identitas pribadi (PII) di nama instance Anda; informasi ini dapat dilihat secara eksternal.
Anda tidak perlu menyertakan ID project dalam nama instance. Project ID 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: ID project Anda.
- LOCATION_ID: ID lokasi
- DATABASE_VERSION: String enum versi database.
Contoh:
MYSQL_8_0
- 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 Cloud SQL
Untuk mengonfigurasi autentikasi database IAM pada instance yang ada:
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 drop-down 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 Save.
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 dari 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 cara menetapkan tanda database, lihat Menetapkan tanda database.
REST v1
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID project Anda.
- LOCATION_ID: ID lokasi
- INSTANCE_ID: ID instance yang diinginkan
- REGION: Region yang diinginkan
- DATABASE_VERSION: String enum versi database.
Contoh:
MYSQL_8_0
- 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/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/sql/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/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
Sebelum menggunakan data permintaan mana pun, lakukan penggantian berikut:
- PROJECT_ID: ID project Anda.
- LOCATION_ID: ID lokasi
- INSTANCE_ID: ID instance yang diinginkan
- REGION: Region yang diinginkan
- DATABASE_VERSION: String enum versi database.
Contoh:
MYSQL_8_0
- 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 selanjutnya
- 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 menambahkan binding kebijakan IAM ke akun pengguna atau layanan.
- Pelajari cara login ke database Cloud SQL menggunakan autentikasi database IAM.
- Pelajari cara mengelola akun pengguna dan layanan untuk autentikasi database IAM.