Peran dan izin

Google Cloud menawarkan Identity and Access Management (IAM), yang memungkinkan Anda memberikan akses secara 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.

Dengan Cloud IAM, Anda dapat menerapkan prinsip hak istimewa terendah untuk keamanan, jadi Anda hanya memberikan akses yang diperlukan ke resource Anda.

Dengan IAM, Anda dapat mengontrol siapa saja yang memiliki izin apa saja ke resource yang mana saja dengan menetapkan kebijakan IAM. Kebijakan IAM memberikan peran tertentu kepada seorang pengguna, yang akan memberikan izin tertentu kepada pengguna tersebut. Misalnya, pengguna tertentu mungkin perlu membuat dan mengubah resource data Domain Name System (DNS). Kemudian, Anda akan memberikan peran /roles/dns.admin kepada pengguna (siapa), 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 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 level 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 kepada pengguna, grup, atau akun layanan. Selain peran dasar Owner, 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 data resource, tetapkan dns.changes.create dan dns.resourceRecordSets.create pada project yang berisi set data.

Untuk memperbarui data resource, tetapkan dns.changes.create dan dns.resourceRecordSets.update pada project yang berisi set data.

Untuk menghapus data resource, tetapkan dns.changes.create dan dns.resourceRecordSets.delete pada project yang berisi set data.

dns.changes.get dns.changes.get pada project yang berisi zona terkelola.
dns.changes.list dns.changes.list pada project yang berisi zona terkelola.
dns.dnsKeys.get dns.dnsKeys.get pada project yang berisi zona terkelola.
dns.dnsKeys.list dns.dnsKeys.list pada project yang berisi zona terkelola.
dns.managedZoneOperations.get dns.managedZoneOperations.get pada project yang berisi zona terkelola.
dns.managedZoneOperations.list dns.managedZoneOperations.list pada 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 pada setiap project dengan jaringan VPC yang diberi otorisasi untuk mengakses zona tersebut.

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 pada project yang berisi zona terkelola.
dns.managedZones.get dns.managedZones.get pada 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 pada setiap project dengan jaringan VPC yang diberi otorisasi untuk mengakses zona tersebut.

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 pada 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 pada project yang berisi kebijakan.
dns.policies.get dns.policies.get pada project yang berisi kebijakan.
dns.policies.list dns.policies.list pada project yang berisi kebijakan.
dns.policies.update dns.policies.update pada 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 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 pada project yang berisi kebijakan respons.

Anda juga perlu 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 pada project yang berisi kebijakan respons.
dns.responsePolicies.get dns.responsePolicies.get pada project yang berisi kebijakan respons.
dns.responsePolicies.list dns.responsePolicies.list pada project.
dns.responsePolicies.update dns.responsePolicies.update pada project yang berisi kebijakan respons.

Anda juga perlu 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 pada project yang berisi aturan kebijakan respons.
dns.responsePolicyRules.delete dns.responsePolicyRules.delete pada project yang berisi aturan kebijakan respons.
dns.responsePolicyRules.get dns.responsePolicyRules.get pada project yang berisi aturan kebijakan respons.
dns.responsePolicyRules.list dns.responsePolicyRules.list pada project yang berisi kebijakan respons.
dns.responsePolicyRules.update dns.responsePolicyRules.update pada project yang berisi aturan kebijakan respons.
networksecurity.dnsThreatDetectors.list (Pratinjau) networksecurity.dnsThreatDetectors.list pada project tempat jaringan VPC dipantau untuk mendeteksi ancaman.
networksecurity.dnsThreatDetectors.get(Pratinjau) networksecurity.dnsThreatDetectors.get pada project tempat jaringan VPC dipantau untuk mendeteksi ancaman.
networksecurity.dnsThreatDetectors.create(Pratinjau) networksecurity.dnsThreatDetectors.create pada project yang berisi jaringan VPC yang ingin Anda pantau untuk mendeteksi ancaman.
networksecurity.dnsThreatDetectors.update(Pratinjau) networksecurity.dnsThreatDetectors.update pada project tempat jaringan VPC dipantau untuk mendeteksi ancaman.
networksecurity.dnsThreatDetectors.delete(Pratinjau) networksecurity.dnsThreatDetectors.delete pada project tempat jaringan VPC dipantau untuk mendeteksi ancaman.

Peran

Tabel berikut mencantumkan peran IAM Cloud DNS API beserta daftar terkait dari 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.*

  • dns.policies.create
  • dns.policies.createTagBinding
  • dns.policies.delete
  • dns.policies.deleteTagBinding
  • dns.policies.get
  • dns.policies.list
  • dns.policies.listEffectiveTags
  • dns.policies.listTagBindings
  • 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.policies.listEffectiveTags

dns.policies.listTagBindings

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 dari semua izin yang disertakan dalam setiap peran.

Peran Izin

(roles/networksecurity.dnsThreatDetectorAdmin)

Memungkinkan akses penuh ke resource Detektor Ancaman DNS.

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 Detektor Ancaman DNS.

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 level 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 Add.

  4. Di New principals, masukkan alamat email principal baru.

  5. Pilih peran dari daftar.

  6. Klik Save.

  7. Pastikan principal tercantum dengan peran yang Anda berikan.

Langkah berikutnya