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 apa ke resource mana dengan menetapkan kebijakan IAM. Kebijakan IAM memberikan peran tertentu kepada pengguna, sehingga pengguna tersebut memiliki izin tertentu. Misalnya, pengguna tertentu mungkin perlu membuat dan mengubah resource data Domain Name System (DNS). Kemudian, Anda akan memberikan peran /roles/dns.admin kepada pengguna tersebut (siapa), yang memiliki izin dns.changes.create dan dns.resourceRecordSets.create (apa) sehingga mereka dapat membuat dan memperbarui set rekaman resource (yang mana). Sebaliknya, departemen dukungan mungkin hanya perlu melihat set 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 level project. Untuk mengonfigurasi izin di tingkat zona (atau resource) DNS 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 kepada pengguna, grup, atau akun layanan. Selain peran dasar Pemilik, Editor, dan Viewer, 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 di 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.

Jika Anda 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 di project yang berisi zona terkelola.
dns.managedZones.update dns.managedZones.update di 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.

Jika Anda 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 pada project yang berisi set data.
dns.resourceRecordSets.delete dns.resourceRecordSets.delete pada project yang berisi set data.
dns.resourceRecordSets.get dns.resourceRecordSets.get pada project yang berisi set data.
dns.resourceRecordSets.list dns.resourceRecordSets.list di project yang berisi zona terkelola.
dns.resourceRecordSets.update dns.resourceRecordSets.update dan dns.changes.create pada project yang berisi kumpulan data.
dns.responsePolicies.create dns.responsePolicies.create di project yang berisi kebijakan respons.

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

Jika Anda 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 perlu dns.networks.bindDNSResponsePolicy untuk memvalidasi permintaan.

Jika Anda 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.
networksecurity.dnsThreatDetectors.list (Pratinjau) networksecurity.dnsThreatDetectors.list di project tempat jaringan VPC dipantau untuk mendeteksi ancaman.
networksecurity.dnsThreatDetectors.get(Pratinjau) networksecurity.dnsThreatDetectors.get di project tempat jaringan VPC dipantau untuk mendeteksi ancaman.
networksecurity.dnsThreatDetectors.create(Pratinjau) networksecurity.dnsThreatDetectors.create di project yang berisi jaringan VPC yang ingin Anda pantau untuk mendeteksi ancaman.
networksecurity.dnsThreatDetectors.update(Pratinjau) networksecurity.dnsThreatDetectors.update di project tempat jaringan VPC dipantau untuk mendeteksi ancaman.
networksecurity.dnsThreatDetectors.delete(Pratinjau) networksecurity.dnsThreatDetectors.delete di project tempat jaringan VPC dipantau untuk mendeteksi ancaman.

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 melakukan 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.*

  • dns.policies.create
  • dns.policies.delete
  • dns.policies.get
  • 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

(roles/dns.serviceAgent)

Gives Cloud DNS Service Agent access to Cloud Platform resources.

compute.globalNetworkEndpointGroups.attachNetworkEndpoints

compute.globalNetworkEndpointGroups.create

compute.globalNetworkEndpointGroups.delete

compute.globalNetworkEndpointGroups.detachNetworkEndpoints

compute.globalNetworkEndpointGroups.get

compute.globalOperations.get

compute.healthChecks.get

Tabel berikut mencantumkan peran IAM DNS Armor beserta daftar terkait semua izin yang disertakan dalam setiap peran.

Peran Izin

(roles/networksecurity.dnsThreatDetectorAdmin)

Memungkinkan akses penuh ke resource DNS Threat Detector.

networksecurity.dnsThreatDetectors.*

  • networksecurity.dnsThreatDetectors.create
  • networksecurity.dnsThreatDetectors.delete
  • networksecurity.dnsThreatDetectors.get
  • networksecurity.dnsThreatDetectors.list
  • networksecurity.dnsThreatDetectors.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/networksecurity.dnsThreatDetectorViewer)

Mengaktifkan akses lihat ke resource DNS Threat Detector.

networksecurity.dnsThreatDetectors.get

networksecurity.dnsThreatDetectors.list

resourcemanager.projects.get

resourcemanager.projects.list

Mengelola kontrol akses

Anda dapat menggunakan konsol Google Cloud untuk mengelola kontrol akses ke topik dan project 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 di bagian 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 berikutnya