역할 및 권한

Google Cloud에서는 ID 및 액세스 관리(IAM)를 제공하므로 구체적인 Google Cloud 리소스에 더욱 세분화된 액세스 권한을 부여하고 다른 리소스에 대한 무단 액세스를 방지할 수 있습니다. 이 페이지에서는 Cloud DNS API 역할을 설명합니다. IAM에 대한 자세한 설명은 ID 및 액세스 관리 문서를 참조하세요.

IAM은 최소 권한의 보안 원칙을 채택하여 리소스에 대해 필요한 액세스 권한만 부여할 수 있게 해줍니다.

IAM을 사용하면 IAM 정책을 설정하여 누가 어떤 리소스에 무슨 권한을 갖는지를 제어할 수 있습니다. IAM 정책은 사용자에게 구체적인 역할을 부여하여 특정 권한을 줍니다. 예를 들어 특정 사용자가 DNS(도메인 이름 시스템) 레코드 리소스를 만들고 수정해야 할 수 있습니다. 이런 경우에는 해당 사용자(누가)에게 dns.changes.createdns.resourceRecordSets.create 권한이 있는 /roles/dns.admin 역할(무슨)을 부여하여 리소스 레코드 집합(어떤)을 만들고 업데이트할 수 있도록 합니다. 반면 지원 부서는 기존 리소스 레코드 집합만 보면 되므로 /roles/dns.reader 역할을 부여받습니다.

Cloud DNS에서는 프로젝트 수준 및 개별 DNS 영역 수준에서 IAM 권한을 지원합니다. 기본 권한은 프로젝트 수준입니다. 개별 DNS 영역(또는 리소스) 수준에서 권한을 구성하려면 특정 IAM 권한이 있는 영역 만들기를 참조하세요.

권한 및 역할

모든 Cloud DNS API 메서드는 호출자에게 필수 IAM 권한을 요구합니다. 사용자, 그룹, 서비스 계정에 역할을 부여하여 권한을 할당합니다. 기본 역할인 소유자, 편집자, 뷰어 이외에 프로젝트 사용자에게도 Cloud DNS API 역할을 부여할 수 있습니다.

권한

다음 표에서는 호출자가 각 메서드를 호출하는 데 필요한 권한 목록을 보여줍니다.

메서드 필수 권한
리소스 레코드 집합 생성을 위한 dns.changes.create 권한 레코드 집합이 포함된 프로젝트에 대한 dns.changes.createdns.resourceRecordSets.create 권한
리소스 레코드 집합 업데이트를 위한 dns.changes.create 권한 레코드 집합이 포함된 프로젝트에 대한 dns.changes.createdns.resourceRecordSets.update 권한
리소스 레코드 집합 삭제를 위한 dns.changes.create 권한 레코드 집합이 포함된 프로젝트에 대한 dns.changes.createdns.resourceRecordSets.delete 권한
dns.changes.get 관리형 영역이 포함된 프로젝트에 대한 dns.changes.get 권한
dns.changes.list 관리형 영역이 포함된 프로젝트에 대한 dns.changes.list 권한
dns.dnsKeys.get 관리형 영역이 포함된 프로젝트에 대한 dns.dnsKeys.get 권한
dns.dnsKeys.list 관리형 영역이 포함된 프로젝트에 대한 dns.dnsKeys.list 권한
dns.managedZoneOperations.get 관리형 영역이 포함된 프로젝트에 대한 dns.managedZoneOperations.get 권한
dns.managedZoneOperations.list 관리형 영역이 포함된 프로젝트에 대한 dns.managedZoneOperations.list 권한
dns.managedZones.create 관리형 영역이 포함된 프로젝트에 대한 dns.managedZones.create 권한

비공개 영역을 만드는 경우 영역에 대한 액세스 권한을 부여할 VPC 네트워크가 포함된 각 프로젝트에 대한 dns.networks.bindPrivateDNSZonedns.networks.targetWithPeeringZone 권한도 필요합니다.

GKE 통합으로 비공개 영역을 만드는 경우 GKE 클러스터 범위를 구성하려면 dns.gkeClusters.bindPrivateDNSZone도 필요합니다.

dns.managedZones.delete 관리형 영역이 포함된 프로젝트에 대한 dns.managedZones.delete 권한
dns.managedZones.get 관리형 영역이 포함된 프로젝트에 대한 dns.managedZones.get 권한
dns.managedZones.list 관리형 영역이 포함된 프로젝트에 대한 dns.managedZones.list 권한
dns.managedZones.update 관리형 영역이 포함된 프로젝트에 대한 dns.managedZones.update 권한

비공개 영역을 만드는 경우 영역에 대한 액세스 권한을 부여할 VPC 네트워크가 포함된 각 프로젝트에 대한 dns.networks.bindPrivateDNSZonedns.networks.targetWithPeeringZone 권한도 필요합니다.

GKE 통합으로 비공개 영역을 만드는 경우 GKE 클러스터 범위를 구성하려면 dns.gkeClusters.bindPrivateDNSZone도 필요합니다.

dns.policies.create 정책이 포함된 프로젝트에 대한 dns.policies.create 권한

VPC 네트워크에서 정책을 만드는 경우 각 VPC 네트워크가 포함된 각 프로젝트에 대한 dns.networks.bindPrivateDNSPolicy 권한도 필요합니다.

dns.policies.delete 정책이 포함된 프로젝트에 대한 dns.policies.delete 권한
dns.policies.get 정책이 포함된 프로젝트에 대한 dns.policies.get 권한
dns.policies.list 정책이 포함된 프로젝트에 대한 dns.policies.list 권한
dns.policies.update 정책이 포함된 프로젝트에 대한 dns.policies.update 권한

VPC 네트워크에서 정책을 업데이트하는 경우 각 VPC 네트워크가 포함된 각 프로젝트에 대한 dns.networks.bindPrivateDNSPolicy 권한도 필요합니다.

dns.projects.get 프로젝트에 대한 dns.projects.get입니다.
dns.resourceRecordSets.create 레코드 집합이 포함된 프로젝트에 대한 dns.resourceRecordSets.create 권한
dns.resourceRecordSets.delete 레코드 집합이 포함된 프로젝트에 대한 dns.resourceRecordSets.delete 권한
dns.resourceRecordSets.get 레코드 집합이 포함된 프로젝트에 대한 dns.resourceRecordSets.get 권한
dns.resourceRecordSets.list 관리형 영역이 포함된 프로젝트에 대한 dns.resourceRecordSets.list 권한
dns.resourceRecordSets.update 레코드 집합이 포함된 프로젝트에 대한 dns.resourceRecordSets.updatedns.changes.create 권한
dns.responsePolicies.create 응답 정책이 포함된 프로젝트에 대한 dns.responsePolicies.create 권한

또한 요청을 검증하려면 dns.networks.bindDNSResponsePolicy가 필요합니다.

GKE 클러스터와 연관된 응답 정책을 만들려면 dns.gkeClusters.bindDNSResponsePolicy가 필요합니다.

dns.responsePolicies.delete 응답 정책이 포함된 프로젝트에 대한 dns.responsePolicies.delete 권한
dns.responsePolicies.get 응답 정책이 포함된 프로젝트에 대한 dns.responsePolicies.get 권한
dns.responsePolicies.list 프로젝트에 대한 dns.responsePolicies.list입니다.
dns.responsePolicies.update 응답 정책이 포함된 프로젝트에 대한 dns.responsePolicies.update 권한

또한 요청을 검증하려면 dns.networks.bindDNSResponsePolicy가 필요합니다.

GKE 클러스터와 연관된 응답 정책을 만들려면 dns.gkeClusters.bindDNSResponsePolicy가 필요합니다.

dns.responsePolicyRules.create 응답 정책 규칙이 포함된 프로젝트에 대한 dns.responsePolicyRules.create 권한
dns.responsePolicyRules.delete 응답 정책 규칙이 포함된 프로젝트에 대한 dns.responsePolicyRules.delete 권한
dns.responsePolicyRules.get 응답 정책 규칙이 포함된 프로젝트에 대한 dns.responsePolicyRules.get 권한
dns.responsePolicyRules.list 응답 정책이 포함된 프로젝트에 대한 dns.responsePolicyRules.list 권한
dns.responsePolicyRules.update 응답 정책 규칙이 포함된 프로젝트에 대한 dns.responsePolicyRules.update 권한

역할

다음 표에서는 Cloud DNS API IAM 역할과 각 역할에 포함된 모든 권한 목록을 보여줍니다. 모든 권한은 특정 리소스 유형에 적용할 수 있습니다.

기본 역할을 사용하여 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

액세스 제어 관리

Google Cloud Console을 사용하여 주제 및 프로젝트에 대한 액세스 제어를 관리할 수 있습니다.

프로젝트 수준에서 액세스 제어를 설정하려면 다음 단계를 따르세요.

Console

  1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

    IAM 페이지로 이동

  2. 맨 위에 있는 드롭다운 메뉴에서 프로젝트를 선택합니다.

  3. Add(추가)를 클릭합니다.

  4. 새 주 구성원에 새 주 구성원의 이메일 주소를 입력합니다.

  5. 목록에서 역할을 선택합니다.

  6. 저장을 클릭합니다.

  7. 부여한 역할과 함께 주 구성원이 나열되는지 확인합니다.

다음 단계