Peran dan izin

Google Cloud menawarkan Identity and Access Management (IAM), yang memungkinkan Anda memberikan akses yang lebih terperinci ke resource Google Cloud tertentu dan mencegah akses yang tidak diinginkan ke resource lain. Halaman ini menjelaskan peran Cloud DNS API. Untuk mengetahui deskripsi mendetail tentang IAM, lihat dokumentasi Identity and Access Management.

IAM memungkinkan Anda menerapkan prinsip keamanan dengan hak istimewa terendah sehingga Anda hanya memberikan akses yang diperlukan ke resource Anda.

Dengan IAM, Anda dapat mengontrol siapa yang memiliki izin untuk resource tertentu dengan menetapkan kebijakan IAM. Kebijakan IAM memberikan peran tertentu kepada pengguna, sehingga pengguna memiliki izin tertentu. Misalnya, pengguna tertentu mungkin perlu membuat dan mengubah resource data Domain Name System (DNS). Kemudian, Anda akan memberi pengguna tersebut (siapa) peran /roles/dns.admin, yang memiliki izin dns.changes.create dan dns.resourceRecordSets.create (apa) sehingga mereka dapat membuat dan memperbarui set data resource (mana). Sebaliknya, departemen dukungan mungkin hanya perlu melihat kumpulan data resource yang ada, sehingga mereka akan mendapatkan peran /roles/dns.reader.

Cloud DNS mendukung izin IAM di level project dan level zona DNS individual. Izin default berada di tingkat project. Untuk mengonfigurasi izin di tingkat zona DNS (atau resource) individual, lihat Membuat zona dengan izin IAM tertentu.

Izin dan peran

Setiap metode Cloud DNS API mengharuskan pemanggil memiliki izin IAM yang diperlukan. Izin ditetapkan dengan memberikan peran ke pengguna, grup, atau akun layanan. Selain peran dasar Pemilik, Editor, dan Pelihat, Anda dapat memberikan peran Cloud DNS API kepada pengguna project Anda.

Izin

Tabel berikut mencantumkan izin yang harus dimiliki pemanggil untuk memanggil setiap metode.

Metode Izin yang diperlukan
dns.changes.create untuk membuat kumpulan data resource. dns.changes.create dan dns.resourceRecordSets.create pada project yang berisi set data.
dns.changes.create untuk memperbarui kumpulan data resource. dns.changes.create dan dns.resourceRecordSets.update pada project yang berisi set data.
dns.changes.create untuk menghapus kumpulan data resource. dns.changes.create dan dns.resourceRecordSets.delete pada project yang berisi set data.
dns.changes.get dns.changes.get di project yang berisi zona terkelola.
dns.changes.list dns.changes.list di project yang berisi zona terkelola.
dns.dnsKeys.get dns.dnsKeys.get di project yang berisi zona terkelola.
dns.dnsKeys.list dns.dnsKeys.list di project yang berisi zona terkelola.
dns.managedZoneOperations.get dns.managedZoneOperations.get di project yang berisi zona terkelola.
dns.managedZoneOperations.list dns.managedZoneOperations.list di project yang berisi zona terkelola.
dns.managedZones.create dns.managedZones.create pada project yang berisi zona terkelola.

Jika membuat zona pribadi, Anda juga memerlukan dns.networks.bindPrivateDNSZone dan dns.networks.targetWithPeeringZone di setiap project dengan jaringan VPC yang diberi otorisasi untuk mengakses zona tersebut.

Jika membuat zona pribadi dengan integrasi GKE, Anda juga memerlukan dns.gkeClusters.bindPrivateDNSZone untuk mengonfigurasi cakupan cluster GKE.

dns.managedZones.delete dns.managedZones.delete di project yang berisi zona terkelola.
dns.managedZones.get dns.managedZones.get di project yang berisi zona terkelola.
dns.managedZones.list dns.managedZones.list pada project yang berisi zona terkelola.
dns.managedZones.update dns.managedZones.update pada project yang berisi zona terkelola.

Jika membuat zona pribadi, Anda juga memerlukan dns.networks.bindPrivateDNSZone dan dns.networks.targetWithPeeringZone di setiap project dengan jaringan VPC yang diberi otorisasi untuk mengakses zona tersebut.

Jika membuat zona pribadi dengan integrasi GKE, Anda juga memerlukan dns.gkeClusters.bindPrivateDNSZone untuk mengonfigurasi cakupan cluster GKE.

dns.policies.create dns.policies.create di project yang berisi kebijakan.

Jika kebijakan dibuat di jaringan VPC, Anda juga memerlukan dns.networks.bindPrivateDNSPolicy untuk setiap project yang berisi setiap jaringan VPC.

dns.policies.delete dns.policies.delete di project yang berisi kebijakan.
dns.policies.get dns.policies.get di project yang berisi kebijakan.
dns.policies.list dns.policies.list di project yang berisi kebijakan.
dns.policies.update dns.policies.update di project yang berisi kebijakan.

Jika kebijakan diperbarui agar berada di jaringan VPC, Anda juga memerlukan dns.networks.bindPrivateDNSPolicy untuk setiap project yang berisi setiap jaringan VPC.

dns.projects.get dns.projects.get pada project.
dns.resourceRecordSets.create dns.resourceRecordSets.create di project yang berisi set data.
dns.resourceRecordSets.delete dns.resourceRecordSets.delete di project yang berisi set data.
dns.resourceRecordSets.get dns.resourceRecordSets.get di project yang berisi set data.
dns.resourceRecordSets.list dns.resourceRecordSets.list pada project yang berisi zona terkelola.
dns.resourceRecordSets.update dns.resourceRecordSets.update dan dns.changes.create pada project yang berisi set data.
dns.responsePolicies.create dns.responsePolicies.create di project yang berisi kebijakan respons.

Anda juga memerlukan dns.networks.bindDNSResponsePolicy untuk memvalidasi permintaan.

Jika ingin membuat kebijakan respons yang dilampirkan ke cluster GKE, Anda memerlukan dns.gkeClusters.bindDNSResponsePolicy.

dns.responsePolicies.delete dns.responsePolicies.delete di project yang berisi kebijakan respons.
dns.responsePolicies.get dns.responsePolicies.get di project yang berisi kebijakan respons.
dns.responsePolicies.list dns.responsePolicies.list pada project.
dns.responsePolicies.update dns.responsePolicies.update di project yang berisi kebijakan respons.

Anda juga memerlukan dns.networks.bindDNSResponsePolicy untuk memvalidasi permintaan.

Jika ingin membuat kebijakan respons yang dilampirkan ke cluster GKE, Anda memerlukan dns.gkeClusters.bindDNSResponsePolicy.

dns.responsePolicyRules.create dns.responsePolicyRules.create di project yang berisi aturan kebijakan respons.
dns.responsePolicyRules.delete dns.responsePolicyRules.delete di project yang berisi aturan kebijakan respons.
dns.responsePolicyRules.get dns.responsePolicyRules.get di project yang berisi aturan kebijakan respons.
dns.responsePolicyRules.list dns.responsePolicyRules.list di project yang berisi kebijakan respons.
dns.responsePolicyRules.update dns.responsePolicyRules.update di project yang berisi aturan kebijakan respons.

Peran

Tabel berikut mencantumkan peran IAM Cloud DNS API beserta daftar terkait semua izin yang disertakan dalam setiap peran. Setiap izin berlaku untuk jenis resource tertentu.

Anda juga dapat menggunakan peran dasar untuk membuat perubahan DNS.

Role Permissions

(roles/dns.admin)

Provides read-write access to all Cloud DNS resources.

Lowest-level resources where you can grant this role:

  • Managed zone

compute.networks.get

compute.networks.list

dns.changes.*

  • dns.changes.create
  • dns.changes.get
  • dns.changes.list

dns.dnsKeys.*

  • dns.dnsKeys.get
  • dns.dnsKeys.list

dns.gkeClusters.*

  • dns.gkeClusters.bindDNSResponsePolicy
  • dns.gkeClusters.bindPrivateDNSZone

dns.managedZoneOperations.*

  • dns.managedZoneOperations.get
  • dns.managedZoneOperations.list

dns.managedZones.create

dns.managedZones.delete

dns.managedZones.get

dns.managedZones.getIamPolicy

dns.managedZones.list

dns.managedZones.update

dns.networks.*

  • dns.networks.bindDNSResponsePolicy
  • dns.networks.bindPrivateDNSPolicy
  • dns.networks.bindPrivateDNSZone
  • dns.networks.targetWithPeeringZone
  • dns.networks.useHealthSignals

dns.policies.create

dns.policies.delete

dns.policies.get

dns.policies.getIamPolicy

dns.policies.list

dns.policies.update

dns.projects.get

dns.resourceRecordSets.*

  • dns.resourceRecordSets.create
  • dns.resourceRecordSets.delete
  • dns.resourceRecordSets.get
  • dns.resourceRecordSets.list
  • dns.resourceRecordSets.update

dns.responsePolicies.*

  • dns.responsePolicies.create
  • dns.responsePolicies.delete
  • dns.responsePolicies.get
  • dns.responsePolicies.list
  • dns.responsePolicies.update

dns.responsePolicyRules.*

  • dns.responsePolicyRules.create
  • dns.responsePolicyRules.delete
  • dns.responsePolicyRules.get
  • dns.responsePolicyRules.list
  • dns.responsePolicyRules.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dns.peer)

Access to target networks with DNS peering zones

dns.networks.targetWithPeeringZone

(roles/dns.reader)

Provides read-only access to all Cloud DNS resources.

Lowest-level resources where you can grant this role:

  • Managed zone

compute.networks.get

dns.changes.get

dns.changes.list

dns.dnsKeys.*

  • dns.dnsKeys.get
  • dns.dnsKeys.list

dns.managedZoneOperations.*

  • dns.managedZoneOperations.get
  • dns.managedZoneOperations.list

dns.managedZones.get

dns.managedZones.list

dns.policies.get

dns.policies.list

dns.projects.get

dns.resourceRecordSets.get

dns.resourceRecordSets.list

dns.responsePolicies.get

dns.responsePolicies.list

dns.responsePolicyRules.get

dns.responsePolicyRules.list

resourcemanager.projects.get

resourcemanager.projects.list

Mengelola kontrol akses

Anda dapat menggunakan konsol Google Cloud untuk mengelola kontrol akses ke project dan topik Anda.

Untuk menetapkan kontrol akses di tingkat project, ikuti langkah-langkah berikut.

Konsol

  1. Di konsol Google Cloud, buka halaman IAM.

    Buka halaman IAM

  2. Pilih project Anda dari menu pull-down atas.

  3. Klik Tambahkan.

  4. Di New principals, masukkan alamat email akun utama baru.

  5. Pilih peran dari daftar.

  6. Klik Simpan.

  7. Pastikan akun utama tercantum dengan peran yang Anda berikan.

Langkah selanjutnya