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-peran Cloud DNS API. Untuk mengetahui deskripsi mendetail tentang IAM, lihat dokumentasi Pengelolaan Akses dan Identitas.

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

IAM memungkinkan Anda mengontrol siapa yang memiliki izin apa ke resource mana dengan menetapkan kebijakan IAM. Kebijakan IAM memberikan peran tertentu kepada pengguna, dengan memberi pengguna 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 kumpulan data resource (yang mana). Sebaliknya, departemen dukungan mungkin hanya perlu melihat kumpulan data resource yang ada sehingga 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 individual (atau resource), lihat Membuat zona dengan izin IAM tertentu.

Izin dan peran

Setiap metode Cloud DNS API mengharuskan pemanggil memiliki izin IAM yang diperlukan. Izin diberikan dengan memberikan peran ke akun pengguna, grup, atau 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 di project yang berisi kumpulan data.
dns.changes.create untuk memperbarui kumpulan data resource. dns.changes.create dan dns.resourceRecordSets.update di project yang berisi kumpulan data.
dns.changes.create untuk menghapus kumpulan data resource. dns.changes.create dan dns.resourceRecordSets.delete di project yang berisi kumpulan 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 diizinkan 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 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 diizinkan 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 pada project yang berisi kumpulan data.
dns.resourceRecordSets.delete dns.resourceRecordSets.delete pada project yang berisi kumpulan data.
dns.resourceRecordSets.get dns.resourceRecordSets.get pada project yang berisi kumpulan data.
dns.resourceRecordSets.list dns.resourceRecordSets.list di project yang berisi zona terkelola.
dns.resourceRecordSets.update dns.resourceRecordSets.update dan dns.changes.create di project yang berisi kumpulan data.
dns.responsePolicies.create dns.responsePolicies.create pada 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 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 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 pada 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 dengan daftar semua izin yang disertakan pada 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 atas 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 atas.

  3. Klik Tambahkan.

  4. Di bagian Akun utama baru, masukkan alamat email akun utama baru.

  5. Pilih peran dari daftar.

  6. Klik Save.

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

Langkah selanjutnya