Integrasi dengan Microsoft Entra ID

Integrasi Cloud SQL untuk SQL Server dengan Microsoft Entra ID menyediakan pengelolaan identitas dan akses (IAM) terpusat untuk database Anda menggunakan tenant Microsoft Entra ID yang ada.

Integrasi ini memberikan manfaat berikut:

  • Autentikasi terpusat. Memungkinkan pengguna dan aplikasi login ke instance Cloud SQL untuk SQL Server menggunakan identitas Microsoft Entra ID yang ada tanpa memasukkan ulang sandi. Kemampuan ini menghilangkan kebutuhan untuk mengelola login dan sandi khusus SQL Server secara terpisah.

  • Peningkatan keamanan. Membantu Anda menerapkan kebijakan keamanan yang ada di organisasi Anda, seperti autentikasi multi-faktor (MFA) dan aturan akses bersyarat (CA), di tingkat database.

  • Pengelolaan pengguna yang lebih sederhana. Jika akun Microsoft Entra ID pengguna dinonaktifkan atau dihapus, akses database pengguna akan otomatis dicabut. Kemampuan ini membantu menyederhanakan proses penghentian akses dan peninjauan akses.

Prasyarat untuk integrasi

Untuk menggunakan integrasi Cloud SQL untuk SQL Server dengan Microsoft Entra ID, instance Anda harus memenuhi persyaratan berikut:

  1. Anda harus memiliki instance SQL Server 2022 yang sudah ada atau membuat yang baru.

    Autentikasi Microsoft Entra ID hanya didukung di SQL Server 2022; autentikasi ini tidak tersedia di SQL Server 2017 atau SQL Server 2019.

  2. Aktifkan autentikasi Microsoft Entra ID.

    Sebelum mengaktifkan autentikasi Microsoft Entra ID, selesaikan langkah-langkah berikut di portal Azure Anda:

    1. Temukan ID tenant Microsoft Entra Anda.
    2. Buat pendaftaran aplikasi baru di Microsoft Entra ID.

      Cloud SQL untuk SQL Server menggunakan aplikasi ini untuk berkomunikasi dengan ID tenant Microsoft Entra Anda. Saat membuat aplikasi, catat ID aplikasi atau ID klien.

    3. Memberikan izin agar aplikasi dapat membaca data direktori:

      1. Pilih pendaftaran aplikasi yang baru saja Anda buat, lalu klik Izin API.
      2. Pilih Add a permission > Microsoft Graph > Application permissions.
      3. Berikan salah satu set izin berikut:
        • Opsi 1.
          • Directory.Read.All
        • Opsi 2. Memberikan izin yang lebih spesifik.
          • Application.Read.All
          • Group.Read.All
          • User.Read.All
      4. Berikan izin administrator di seluruh tenant agar aplikasi dapat menggunakan izin ini.

Konektivitas jaringan

Microsoft Entra ID adalah layanan publik yang menggunakan endpoint publik untuk autentikasi. Agar autentikasi Microsoft Entra ID berfungsi dengan baik, instance Cloud SQL Anda harus dapat membuat koneksi keluar ke endpoint publik ini. Bagian berikut membahas langkah-langkah berikutnya, berdasarkan konfigurasi konektivitas jaringan instance Anda:

Instance dengan IP publik

Jika instance Cloud SQL Anda dikonfigurasi dengan alamat IP publik, instance tersebut memiliki akses keluar bawaan ke internet.

Meskipun tidak ada konfigurasi jaringan tambahan yang diperlukan agar autentikasi Microsoft Entra ID berfungsi, tinjau Batasan sebelum Anda melanjutkan.

Instance dengan IP pribadi

Jika instance Cloud SQL Anda dikonfigurasi hanya dengan alamat IP pribadi, instance tersebut tidak memiliki akses langsung ke internet. Anda harus mengonfigurasi jalur keluar agar instance dapat menjangkau endpoint identitas publik Microsoft. Konfigurasi integrasi Microsoft Entra ID bergantung pada cara konfigurasi instance pribadi Anda:

Private Service Connect

Jika instance Cloud SQL Anda dikonfigurasi untuk menggunakan alamat IP pribadi, sebaiknya gunakan Private Service Connect untuk mengaktifkan Microsoft Entra ID, karena cara ini menghilangkan tugas pemeliharaan overhead tertentu seperti berikut:

  • Mengelola VM bastion host.
  • Mempertahankan rute.
  • Membuat rute yang terlalu luas seperti yang diperlukan untuk konektivitas PSA.

Sebelum melanjutkan, tinjau batasan untuk menggunakan Microsoft Entra ID.

Untuk mengaktifkan konektivitas, Anda perlu mengonfigurasi Penafsiran alamat jaringan cloud (Cloud NAT) di VPC konsumen. Hal ini memungkinkan instance yang mendukung PSC menggunakan gateway Cloud NAT untuk traffic keluar ke endpoint Microsoft publik. Setelah diaktifkan, perutean internal membatasi traffic sehingga hanya traffic terkait Microsoft Entra ID yang mencapai instance Cloud NAT Anda.

Untuk mengaktifkan konektivitas, selesaikan langkah-langkah wajib berikut:

  1. Buat instance yang mendukung PSC.
  2. Konfigurasi konektivitas keluar untuk instance Cloud SQL Anda.
  3. Buat gateway Cloud NAT.

Akses layanan pribadi

Jika instance Cloud SQL Anda dikonfigurasi untuk menggunakan alamat IP pribadi dan Anda menggunakan PSA, langkah-langkah berikut diperlukan untuk mengaktifkan konektivitas ke Microsoft Entra ID:

  1. Deploy VM bastion host dalam VPC Anda.

    Saat Anda membuat VM bastion host di project, penerusan IP harus diaktifkan. Jika Anda membuat VM bastion host berbasis Linux, konfigurasi VM bastion host yang baru saja Anda buat untuk melakukan penerusan IP:

    sudo sysctl net.ipv4.conf.all.forwarding=1
    sudo iptables --table nat --append POSTROUTING --out-interface  ens4 -j MASQUERADE
    
  2. Konfigurasi rute jaringan yang diperlukan untuk mengarahkan traffic autentikasi Microsoft Entra ID dari instance Cloud SQL Anda melalui host VM bastion untuk menjangkau internet.

    Tambahkan rute yang sesuai untuk setiap endpoint Microsoft Entra ID. Anda dapat menemukan rentang IP saat ini di bagian AzureActiveDirectory.ServiceEndpoint dalam file resource Rentang IP dan Tag Layanan Azure.

    gcloud

    Untuk setiap rentang IP Microsoft Entra ID, buat dua rute, ganti VM_NAME dan VM_ZONE dengan nama dan zona sebenarnya dari VM bastion host Anda:

    gcloud --project=PROJECT_ID compute routes create NAME \
      --network=NETWORK --destination-range=RANGE \
      --priority=998 --next-hop-gateway=default-internet-gateway
    
    gcloud  --project=PROJECT_ID compute routes create NAME \
      --network=NETWORK --destination-range=RANGE --priority=999 \
      --next-hop-instance=VM_NAME --next-hop-instance-zone=VM_ZONE \
      --next-hop-ilb=ILB_VALUE
    

    Ganti kode berikut:

    • PROJECT_ID: ID project tempat instance Cloud SQL Anda berada.
    • NAME: nama rute yang ingin Anda buat.
    • NETWORK: nama jaringan tempat instance Cloud SQL Anda berada.
    • RANGE: rentang IP yang ingin Anda gunakan.
    • VM_NAME: nama VM host bastion yang ingin Anda sertakan.
    • VM_ZONE: zona VM bastion host yang ingin Anda sertakan, seperti us-central1.
    • ILB_VALUE: Opsional. Nama atau alamat IP aturan penerusan untuk load balancer TCP/UDP internal. Jika Anda mengonfigurasi load balancer di depan VM bastion host, Anda harus menyertakan tanda --next-hop-ilb dalam perintah ini.

      Untuk mengetahui informasi selengkapnya, lihat Load Balancer Jaringan passthrough internal sebagai next hop.

    Contohnya mungkin terlihat seperti berikut:

    gcloud  --project=my-customer-project compute routes create my-route-1 --network=default --destination-range=20.20.32.0/27 --priority=998 --next-hop-gateway=default-internet-gateway
    
    gcloud  --project=my-customer-project compute routes create my-route-2 --network=default --destination-range=20.20.32.0/27 --priority=999 --next-hop-instance=my-bastion-vm --next-hop-instance-zone=us-central1-c --next-hop-ilb=fr-ilb1
    
  3. Gunakan perintah yang sama pada langkah sebelumnya untuk menerapkan konfigurasi yang sama agar mengizinkan traffic untuk pemeriksaan pencabutan sertifikat Microsoft Entra ID. Gunakan rentang IP yang tercantum di Alamat IP Status Sertifikat DigiCert.

    Jika Anda tidak menyelesaikan langkah ini, autentikasi Microsoft Entra ID mungkin masih berfungsi, tetapi Anda juga dapat mengalami penundaan saat membuka koneksi baru.

Mengelola autentikasi Microsoft Entra ID

Anda dapat mengaktifkan autentikasi Entra ID untuk instance baru atau yang sudah ada.

Membuat instance dengan autentikasi Microsoft Entra ID yang diaktifkan

Anda dapat mengaktifkan autentikasi Microsoft Entra ID saat membuat instance Cloud SQL untuk SQL Server baru. Anda harus memberikan ID tenant Microsoft Entra dan ID aplikasi (ID klien) spesifik dari Pendaftaran Aplikasi yang Anda konfigurasi di portal Azure.

Untuk mengetahui informasi selengkapnya, lihat Prasyarat.

gcloud

gcloud beta sql instances create INSTANCE_NAME \
    --database-version=EDITION \
    --tier=TIER \
    --network=NETWORK
    --root-password=PASSWORD
    --entra-id-tenant-id=TENANT_ID \
    --entra-id-application-id=APPLICATION_ID

Ganti kode berikut:

  • INSTANCE_NAME: nama instance yang ingin Anda buat.
  • EDITION: edisi instance yang ingin Anda gunakan, seperti SQLSERVER_2022_STANDARD.
  • TIER: tingkat instance atau jenis mesin yang ingin Anda gunakan, seperti db-custom-2-3840.
  • NETWORK: nama jaringan yang ingin Anda gunakan.
  • PASSWORD: sandi instance.
  • TENANT_ID: ID tenant Microsoft Entra.
  • APPLICATION_ID: ID aplikasi atau klien.

Contohnya mungkin terlihat seperti berikut:

gcloud beta sql instances create my-entraid-instance \
    --database-version=SQLSERVER_2022_STANDARD \
    --tier=db-custom-2-3840 \
    --assign-ip \
    --root-password=D61Xv36f!0lE \
    --entra-id-tenant-id=7e281aab-e994-4c83-88ed-d1674477a39c \
    --entra-id-application-id=4c5ed2da-0478-4aaa-ab65-6dfd33ba8bfd

REST v1

Tidak semua kolom yang memungkinkan ditampilkan dalam panggilan API dasar berikut. Untuk prototipe permintaan JSON, lihat Setelan.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: nama project tempat instance yang ingin Anda buat akan berada.
  • INSTANCE_ID: ID instance yang ingin Anda buat.
  • EDITION: edisi instance yang ingin Anda gunakan, seperti SQLSERVER_2022_STANDARD.
  • REGION: region tempat Anda ingin instance berada, seperti us-central1.
  • PASSWORD: sandi instance.
  • TIER: tingkat instance atau jenis mesin yang ingin Anda gunakan, seperti db-custom-2-3840.
  • NETWORK: nama jaringan yang ingin Anda gunakan.
  • TENANT_ID: ID tenant Microsoft Entra.
  • APPLICATION_ID: ID aplikasi atau klien.

Metode HTTP dan URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

Meminta isi JSON:

{
  "databaseVersion":"EDITION",
  "name":"INSTANCE_ID",
  "region":"REGION",
  "rootPassword":"PASSWORD",
  "settings":
  {
    "tier":"TIER",
    "ipConfiguration":
      {
        "privateNetwork":"NETWORK"
      },
    "entraidConfig":
    {
      "tenantId": "TENANT_ID",
      "applicationId": "APPLICATION_ID"
    }
  }
}

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

Tidak semua kolom yang memungkinkan ditampilkan dalam panggilan API dasar berikut. Untuk prototipe permintaan JSON, lihat Setelan.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: nama project tempat instance yang ingin Anda buat akan berada.
  • INSTANCE_ID: ID instance yang ingin Anda buat.
  • EDITION: edisi instance yang ingin Anda gunakan, seperti SQLSERVER_2022_STANDARD.
  • REGION: region tempat Anda ingin instance berada, seperti us-central1.
  • PASSWORD: sandi instance.
  • TIER: tingkat instance atau jenis mesin yang ingin Anda gunakan, seperti db-custom-2-3840.
  • NETWORK: nama jaringan yang ingin Anda gunakan.
  • TENANT_ID: ID tenant Microsoft Entra.
  • APPLICATION_ID: ID aplikasi atau klien.

Metode HTTP dan URL:

POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances

Meminta isi JSON:

{
  "databaseVersion":"EDITION",
  "name":"INSTANCE_ID",
  "region":"REGION",
  "rootPassword":"PASSWORD",
  "settings":
  {
    "tier":"TIER",
    "ipConfiguration":
      {
        "privateNetwork":"NETWORK"
      },
    "entraidConfig":
    {
      "tenantId": "TENANT_ID",
      "applicationId": "APPLICATION_ID"
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/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/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Mengelola autentikasi Microsoft Entra ID pada instance yang ada

Anda dapat mengaktifkan, mengubah, atau menonaktifkan konfigurasi Microsoft Entra ID di instance yang ada kapan saja.

Untuk mengubah konfigurasi instance, Anda harus menambal instance dengan nilai ID penyewa dan ID aplikasi (klien) yang baru atau dihapus.

Proses ini tidak melibatkan bergabung atau keluar dari domain.

Anda dapat memperbarui nilai ID tenant dan ID aplikasi tanpa mengaktifkan atau menonaktifkan integrasi dengan Microsoft Entra ID.

gcloud

gcloud beta sql instances patch INSTANCE_NAME \
    --entra-id-tenant-id="NEW_TENANT_ID" \
    --entra-id-application-id="NEW_APPLICATION_ID"

Ganti kode berikut:

  • INSTANCE_NAME: nama instance yang ingin Anda ubah.
  • NEW_TENANT_ID: ID tenant Microsoft Entra baru. Untuk menonaktifkan Microsoft Entra ID, kosongkan string ini.
  • NEW_APPLICATION_ID: ID aplikasi atau klien baru. Untuk menonaktifkan Microsoft Entra ID, kosongkan string ini.

Contohnya mungkin terlihat seperti berikut:

gcloud beta sql instances patch my-existing-instance \
    --entra-id-tenant-id=7e281aab-e994-4c83-88ed-d1674477a39c \
    --entra-id-application-id=4c5ed2da-0478-4aaa-ab65-6dfd33ba8bfd

REST v1

Tidak semua kolom yang memungkinkan ditampilkan dalam panggilan API dasar berikut. Untuk prototipe permintaan JSON, lihat Setelan.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID project tempat instance yang ingin Anda ubah berada.
  • INSTANCE_ID: ID instance yang ingin Anda ubah.
  • TENANT_ID: ID tenant Microsoft Entra. Untuk menonaktifkan Microsoft Entra ID, biarkan string ini kosong.
  • APPLICATION_ID: ID aplikasi atau klien. Untuk menonaktifkan Microsoft Entra ID, biarkan string ini kosong.

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

Meminta isi JSON:

{
  "settings":
  {
    "entraidConfig":
    {
      "tenantId": "NEW_TENANT_ID",
      "applicationId": "NEW_APPLICATION_ID"
    }
  }
}

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

Tidak semua kolom yang memungkinkan ditampilkan dalam panggilan API dasar berikut. Untuk prototipe permintaan JSON, lihat Setelan.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID project tempat instance yang ingin Anda ubah berada.
  • INSTANCE_ID: ID instance yang ingin Anda ubah.
  • TENANT_ID: ID tenant Microsoft Entra. Untuk menonaktifkan Microsoft Entra ID, biarkan string ini kosong.
  • APPLICATION_ID: ID aplikasi atau klien. Untuk menonaktifkan Microsoft Entra ID, biarkan string ini kosong.

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances

Meminta isi JSON:

{
  "settings":
  {
    "entraidConfig":
    {
      "tenantId": "NEW_TENANT_ID",
      "applicationId": "NEW_APPLICATION_ID"
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/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/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Menambahkan sertifikat ke aplikasi

Agar Microsoft Entra ID Anda dapat mengautentikasi instance Cloud SQL untuk SQL Server, Anda harus mengupload sertifikat publik instance Cloud SQL untuk SQL Server ke Pendaftaran Aplikasi Microsoft Entra ID Anda.

  1. Setelah Anda mengaktifkan autentikasi Microsoft Entra ID di instance Anda, buat sertifikat khusus instance untuk Microsoft Entra ID.

    gcloud

    gcloud beta sql ssl entraid-certs create --instance=INSTANCE_NAME
    

    Ganti kode berikut:

    • INSTANCE_NAME: nama instance yang ingin Anda buatkan sertifikatnya.

    REST v1

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: ID project tempat instance Anda berada.
    • INSTANCE_ID: ID instance.

    Metode HTTP dan URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/addEntraIdCertificate

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan menerima 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, lakukan penggantian berikut:

    • PROJECT_ID: ID project tempat instance Anda berada.
    • INSTANCE_ID: ID instance.

    Metode HTTP dan URL:

    POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/addEntraIdCertificate

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan melihat respons JSON seperti berikut:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/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/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    
  2. Dapatkan detail sertifikat yang baru saja Anda buat dengan mengambil detail instance:

    gcloud

    gcloud beta sql ssl entraid-certs list --instance=INSTANCE_NAME --format="value(ssl_cert.cert)"
    

    Ganti kode berikut:

    • INSTANCE_NAME: nama instance yang terkait dengan sertifikat yang baru saja Anda buat.

    REST v1

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: ID project tempat instance Anda berada.
    • INSTANCE_ID: ID instance.

    Metode HTTP dan URL:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listEntraIdCertificates

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan menerima kode status berhasil (2xx) dan respons kosong.

    Perintah ini akan mencetak sertifikat yang dapat Anda simpan ke file, lalu diupload ke portal Azure nanti.

    Anda harus menghapus semua karakter newline yang disematkan dari file dan memisahkan setiap baris baru secara manual. Jika tidak dilakukan, upload file akan gagal.

    Misalnya, Anda mungkin menerima string teks yang mirip dengan berikut:

    Line1\Line2\Line3
    

    Anda harus memisahkan setiap baris secara manual, seperti berikut:

    Line1
    Line2
    Line3
    

    Atau, jika Anda tidak ingin melakukan tugas ini secara manual, gunakan perintah berikut:

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -H "x-goog-user-project: PROJECT_ID" "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/listEntraIdCertificates" -s | jq -r '.certs[0].cert'
    

    Ganti kode berikut:

    • PROJECT_ID: project ID tempat instance Anda berada.
    • INSTANCE_NAME: nama instance yang terkait dengan sertifikat yang baru saja Anda buat.

    REST v1beta4

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: ID project tempat instance Anda berada.
    • INSTANCE_ID: ID instance.

    Metode HTTP dan URL:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listEntraIdCertificates

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan menerima kode status berhasil (2xx) dan respons kosong.

    Perintah ini akan mencetak sertifikat yang dapat Anda simpan ke file, lalu diupload ke portal Azure nanti.

    Anda harus menghapus semua karakter newline yang disematkan dari file dan memisahkan setiap baris baru secara manual. Jika tidak dilakukan, upload file akan gagal.

    Misalnya, Anda mungkin menerima string teks yang mirip dengan berikut:

    Line1\Line2\Line3
    

    Anda harus memisahkan setiap baris secara manual, seperti berikut:

    Line1
    Line2
    Line3
    

    Atau, jika Anda tidak ingin melakukan tugas ini secara manual, gunakan perintah berikut:

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -H "x-goog-user-project: PROJECT_ID" "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/listEntraIdCertificates" -s | jq -r '.certs[0].cert'
    

    Ganti kode berikut:

    • PROJECT_ID: project ID tempat instance Anda berada.
    • INSTANCE_NAME: nama instance yang terkait dengan sertifikat yang baru saja Anda buat.
  3. Tambahkan sertifikat Anda ke portal Azure.

    1. Buka Pendaftaran Aplikasi di portal Azure.
    2. Buka Certificates & secrets.
    3. Pilih Upload sertifikat. Cari file sertifikat yang Anda ambil dari instance Anda, lalu tambahkan.
    4. Klik Oke.

Merotasi sertifikat Microsoft Entra ID

Anda harus merotasi sertifikat Microsoft Entra ID sebelum masa berlakunya habis. Sebaiknya mulai proses ini setidaknya satu minggu sebelum tanggal habis masa berlaku yang dijadwalkan:

  1. Ikuti langkah-langkah di Menambahkan sertifikat ke aplikasi untuk membuat sertifikat baru yang tidak aktif di instance Cloud SQL untuk SQL Server Anda, lalu upload ke Microsoft Entra ID menggunakan portal Azure. Hal ini tidak memengaruhi sertifikat aktif saat ini.

  2. Aktifkan sertifikat baru di instance Cloud SQL untuk SQL Server, yang memicu Cloud SQL untuk SQL Server agar mulai menggunakan sertifikat baru untuk semua autentikasi baru.

    gcloud

    gcloud beta sql ssl entraid-certs rotate --instance=INSTANCE_NAME
    

    Ganti kode berikut:

    • INSTANCE_NAME: nama instance yang terkait dengan sertifikat yang ingin Anda ganti.

    REST v1

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: ID project tempat instance Anda berada.
    • INSTANCE_ID: ID instance.

    Metode HTTP dan URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rotateEntraIdCertificate

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan menerima kode status berhasil (2xx) dan respons kosong.

    REST v1beta4

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: ID project tempat instance Anda berada.
    • INSTANCE_ID: ID instance.

    Metode HTTP dan URL:

    POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/rotateEntraIdCertificate

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan menerima kode status berhasil (2xx) dan respons kosong.

  3. Instance Anda kini menggunakan sertifikat baru.

    Anda dapat menghapus sertifikat lama dengan aman dari Pendaftaran Aplikasi Microsoft Entra ID dan dari instance Cloud SQL untuk SQL Server. Untuk mengetahui informasi selengkapnya, lihat Menambahkan dan mengelola kredensial aplikasi di Microsoft Entra ID.

Membatalkan sertifikat Microsoft Entra ID

Jika mengalami masalah setelah melakukan rotasi ke sertifikat baru, Anda dapat melakukan roll back ke sertifikat sebelumnya.

Untuk melakukan rollback, sertifikat sebelumnya harus tetap valid dan harus tetap dipercaya oleh Pendaftaran Aplikasi Microsoft Entra ID Anda.

Perintah berikut akan segera mengaktifkan kembali sertifikat sebelumnya yang ditentukan di instance Cloud SQL untuk SQL Server Anda.

gcloud

gcloud beta sql ssl entraid-certs rollback --instance=INSTANCE_NAME

Ganti kode berikut:

  • INSTANCE_NAME: nama instance yang terkait dengan sertifikat yang ingin Anda kembalikan.

REST v1

Tidak semua kolom yang memungkinkan ditampilkan dalam panggilan API dasar berikut. Untuk prototipe permintaan JSON, lihat Setelan.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID project tempat instance berada.
  • INSTANCE_ID: ID instance yang sertifikatnya ingin Anda rollback.
  • CERTIFICATE_NAME: nama sertifikat baru yang ingin Anda gunakan untuk menggantikan sertifikat lama, seperti sha1Fingerprint.

Metode HTTP dan URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rollbackEntraIdCertificate

Meminta isi JSON:

{
  {
  "RotateEntraIdCertificateContext": {"nextVersion": "CERTIFICATE_NAME"}
  }
}

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

Tidak semua kolom yang memungkinkan ditampilkan dalam panggilan API dasar berikut. Untuk prototipe permintaan JSON, lihat Setelan.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID project tempat instance berada.
  • INSTANCE_ID: ID instance yang sertifikatnya ingin Anda rollback.
  • CERTIFICATE_NAME: nama sertifikat baru yang ingin Anda gunakan untuk menggantikan sertifikat lama, seperti sha1Fingerprint.

Metode HTTP dan URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rollbackEntraIdCertificate

Meminta isi JSON:

{
  {
  "RotateEntraIdCertificateContext": {"nextVersion": "CERTIFICATE_NAME"}
  }
}

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"
}

Membuat login Microsoft Entra ID awal

Setelah mengaktifkan autentikasi Microsoft Entra ID di instance, Anda perlu membuat login Microsoft Entra ID.

  1. Buat login Microsoft Entra ID pertama.

    Login awal ini, yang merepresentasikan pengguna atau grup Microsoft Entra ID, tidak dapat dibuat menggunakan T-SQL. Anda harus membuatnya menggunakan gcloud CLI atau Cloud SQL Admin API:

    gcloud

    gcloud sql users create USER_NAME --instance=INSTANCE_NAME --type=ENTRAID_USER
    

    Ganti kode berikut:

    • USER_NAME: nama pengguna Cloud SQL untuk SQL Server yang ingin Anda buat.
    • INSTANCE_NAME: nama instance yang ingin Anda buatkan login Microsoft Entra ID-nya.
    • ENTRAID_USER: nama pengguna Microsoft Entra ID.

    Contohnya mungkin terlihat seperti berikut:

    gcloud sql users create myentraiduser@mytenant.com --instance=my-entraid-instance --type=ENTRAID_USER
    

    REST v1

    Tidak semua kolom yang memungkinkan ditampilkan dalam panggilan API dasar berikut. Untuk prototipe permintaan JSON, lihat Setelan.

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: ID project tempat instance berada.
    • INSTANCE_ID: ID instance yang ingin Anda perbarui.
    • USER_NAME: nama pengguna Cloud SQL untuk SQL Server yang ingin Anda buat.
    • ENTRAID_USER: nama pengguna Microsoft Entra ID.

    Metode HTTP dan URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users

    Meminta isi JSON:

    {
      "name": "USER_NAME"
      "type": "ENTRAID_USER"
    }
    

    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

    Tidak semua kolom yang memungkinkan ditampilkan dalam panggilan API dasar berikut. Untuk prototipe permintaan JSON, lihat Setelan.

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: ID project tempat instance berada.
    • INSTANCE_ID: ID instance yang ingin Anda perbarui.
    • USER_NAME: nama pengguna Cloud SQL untuk SQL Server yang ingin Anda buat.
    • ENTRAID_USER: nama pengguna Microsoft Entra ID.

    Metode HTTP dan URL:

    POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users

    Meminta isi JSON:

    {
      "name": "USER_NAME"
      "type": "ENTRAID_USER"
    }
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan melihat respons JSON seperti berikut:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/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/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

    Setelah login Microsoft Entra ID awal dibuat, Anda dapat terhubung ke database sebagai pengguna tersebut.

  2. Membuat login Microsoft Entra ID berikutnya.

    Anda dapat membuat dan mengelola info login Microsoft Entra ID tambahan seperti yang disebutkan di langkah sebelumnya.

    Atau, jika Anda lebih suka menggunakan alat lain seperti SQL Server Management Studio (SSMS), Anda harus terlebih dahulu memberikan izin kepada login awal untuk mengelola login lain:

    GRANT ALTER ANY LOGIN TO [ENTRA_ID_USER] AS CustomerDbRootRole
    

    Ganti ENTRAID_USER dengan nama pengguna Microsoft Entra ID.

    Setelah izin diberikan, login ini dapat membuat dan mengelola login Microsoft Entra ID lainnya menggunakan perintah T-SQL standar. Contoh perintah mungkin mirip dengan berikut ini:

    CREATE LOGIN [<<ENTRA_ID_USER>>] FROM EXTERNAL PROVIDER
    

    Ganti ENTRAID_USER dengan nama pengguna Microsoft Entra ID.

    Untuk membuat pengguna berdasarkan login Microsoft Entra ID, atau untuk memberikan izin, gunakan perintah T-SQL standar.

    Untuk mengetahui informasi selengkapnya, termasuk cara membuat login menggunakan sintaksis yang tepat, lihat Menyiapkan autentikasi Microsoft Entra untuk SQL Server dengan pendaftaran aplikasi.

Praktik terbaik

Untuk membantu mengisolasi izin dan menentukan batas keamanan dengan lebih baik, sebaiknya buat pendaftaran aplikasi Microsoft Entra ID yang unik untuk setiap instance Cloud SQL untuk SQL Server. Mencabut kredensial aplikasi tidak akan memengaruhi instance lain yang tidak terkait.

Untuk mengetahui informasi selengkapnya, lihat Cara mendaftarkan aplikasi di Microsoft Entra ID.

Pemecahan masalah

Bagian berikut membantu mengatasi masalah yang mungkin Anda alami saat mengelola integrasi Microsoft Entra ID.

Masalah konektivitas jaringan dengan instance IP pribadi

Anda mungkin mengalami beberapa masalah berikut selama penyiapan integrasi:

  • Operasi lambat untuk membuat login Microsoft Entra ID
  • Tidak dapat membuat login Microsoft Entra ID
  • Tidak dapat terhubung ke instance menggunakan autentikasi Microsoft Entra ID

Untuk membantu mengatasi masalah ini, lakukan uji konektivitas berikut:

  1. Dalam project dan VPC yang sama, serta di region yang sama dengan instance Cloud SQL for SQL Server, buat VM pengujian yang dikonfigurasi hanya dengan IP pribadi. Google Cloud

  2. Hubungkan ke VM yang baru saja Anda buat menggunakan protokol desktop jarak jauh (RDP) atau protokol secure shell (SSH). Kemudian, jalankan perintah berikut untuk menguji keterjangkauan. Langkah-langkah ini dapat diterapkan ke VM berbasis Linux dan berbasis Windows:

    curl -4iv login.microsoftonline.com
    curl -4iv graph.microsoft.com
    curl -4iv ocsp.digicert.com
    

Jika Anda tidak dapat mencapai salah satu endpoint ini, baik karena error waktu tunggu atau koneksi ditolak, periksa konfigurasi jaringan Anda untuk hal berikut:

  • Untuk Private Service Connect, pastikan Cloud NAT dikonfigurasi dengan benar untuk mengizinkan akses internet keluar.
  • Untuk akses layanan pribadi, verifikasi konfigurasi rute kustom dan host bastion Anda.
  • Periksa aturan Firewall VPC Anda untuk memastikan traffic keluar ke domain ini tidak diblokir.

Pesan error umum

Anda mungkin mengalami error login berikut selama autentikasi Microsoft Entra ID:

Login failed for user ""

Untuk mengatasi masalah ini, pastikan login SQL Server ada untuk pengguna Microsoft Entra ID ini.

Migrasi dari Microsoft Active Directory

Dalam skenario berikut, Anda dapat mengaktifkan autentikasi Microsoft Entra ID tanpa menonaktifkan autentikasi Microsoft Active Directory yang ada:

Replika baca

  • Jika Anda menambahkan replika baca ke instance utama yang mengaktifkan Microsoft Entra ID, replika baca akan otomatis dikonfigurasi untuk menggunakan Microsoft Entra ID.
  • Jika instance utama mengaktifkan Microsoft Entra ID, dan Anda memulihkan cadangan ke instance tersebut, replika baca terkait akan otomatis dikonfigurasi untuk menggunakan Microsoft Entra, karena identitas tidak berubah.

Instance yang di-clone dan memulihkan ke instance lain

Integrasi Microsoft Entra ID tidak otomatis dikonfigurasi ke instance baru dalam skenario berikut:

  • Clone instance utama.
  • Cadangan dipulihkan ke instance yang bukan merupakan instance utama.

Dalam kasus seperti itu, Anda harus mengaktifkan Microsoft Entra ID secara manual di instance baru lalu mengupload ulang sertifikatnya ke aplikasi Microsoft Entra ID. Persyaratan ini merupakan langkah keamanan untuk membantu mencegah beberapa instance yang tidak terkait menggunakan identitas aplikasi yang sama.

Batasan

  • Autentikasi Microsoft Entra ID hanya didukung di SQL Server 2022; autentikasi ini tidak tersedia di SQL Server 2017 atau SQL Server 2019.
  • Jika Anda meng-clone instance atau memulihkan cadangan ke instance lain, integrasi Microsoft Entra ID tidak akan otomatis dikonfigurasi di instance baru. Untuk mengetahui informasi selengkapnya, lihat Pencadangan dan pemulihan.
  • Autentikasi Microsoft Entra ID tidak didukung untuk instance ketersediaan tinggi (HA) yang dikonfigurasi dengan IP publik.
  • Autentikasi Microsoft Entra ID tidak didukung untuk instance utama yang mendukung PSC, maupun instance replika baca yang sesuai.
  • Hindari mengganti sertifikat Microsoft Entra ID pada instance utama yang memiliki replika terlampir. Jika Anda mengganti sertifikat instance utama, sertifikat replika tidak akan diperbarui.
  • Integrasi Microsoft Entra ID dengan Cloud SQL untuk SQL Server dapat dikonfigurasi menggunakan gcloud CLI atau Cloud SQL Admin API. Integrasi tidak dapat dikelola menggunakan Terraform.

Langkah berikutnya