Google Cloud 提供 Identity and Access Management (IAM),可让您授予对特定 Google Cloud 资源的更细化访问权限,并防止对其他资源进行不必要的访问。本页面介绍了 Cloud DNS API 角色。如需 IAM 的详细说明,请参阅 Identity and Access Management 文档。
IAM 允许您采用最低权限安全原则,您只需授予对您资源的必要访问权限。
IAM 允许您通过设置 IAM 政策来控制谁对哪些资源具有什么访问权限。您可以使用 IAM 政策向用户授予特定角色,从而给予用户特定权限。例如,特定用户可能需要创建和修改域名系统 (DNS) 记录资源。然后,您可以向该用户(谁)授予 /roles/dns.admin
角色,该角色具有 dns.changes.create
和 dns.resourceRecordSets.create
权限(什么),从而可以创建和更新资源记录集(哪些)。相反,支持部门可能只需要查看现有资源记录集,因此应向其授予 /roles/dns.reader
角色。
Cloud DNS 支持项目级和单个 DNS 区域级的 IAM 权限。默认权限位于项目级层。如需在单个 DNS 区域(或资源)级别配置权限,请参阅创建具有特定 IAM 权限的区域。
权限和角色
每种 Cloud DNS API 方法都要求调用者拥有必要的 IAM 权限。您可以通过为用户、群组或服务账号授予角色来分配权限。除了 Viewer、Editor、Owner 这些基本角色之外,您还可以向您项目的用户授予 Cloud DNS API 角色。
权限
下表列出了调用者调用每个方法必须具备的权限。
方法 | 所需权限 |
---|---|
dns.changes.create (用于创建资源记录集)。 |
对包含记录集的项目拥有 dns.changes.create 和 dns.resourceRecordSets.create 权限。 |
dns.changes.create (用于更新资源记录集)。 |
对包含记录集的项目拥有 dns.changes.create 和 dns.resourceRecordSets.update 权限。 |
dns.changes.create (用于删除资源记录集)。 |
对包含记录集的项目拥有 dns.changes.create 和 dns.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 网络所属的每个项目拥有 如果您要创建具有 GKE 集成的专用区域,则还需要 |
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 网络所属的每个项目拥有 如果您要创建具有 GKE 集成的专用区域,则还需要 |
dns.policies.create |
对包含政策的项目拥有 dns.policies.create 权限。如果政策是在 VPC 网络上创建的,则还需要对包含每个 VPC 网络的每个项目拥有 |
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.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.update 和 dns.changes.create 权限。 |
dns.responsePolicies.create |
针对包含响应政策的项目的 dns.responsePolicies.create 权限。
您还需要使用 如果要创建附加到 GKE 集群的响应政策,则需要 |
dns.responsePolicies.delete |
针对包含响应政策的项目的 dns.responsePolicies.delete 权限。 |
dns.responsePolicies.get |
针对包含响应政策的项目的 dns.responsePolicies.get 权限。 |
dns.responsePolicies.list |
针对项目的 dns.responsePolicies.list 。 |
dns.responsePolicies.update |
针对包含响应政策的项目的 dns.responsePolicies.update 权限。
您还需要使用 如果要创建附加到 GKE 集群的响应政策,则需要 |
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 |
---|---|
DNS Administrator( Provides read-write access to all Cloud DNS resources. Lowest-level resources where you can grant this role:
|
|
DNS Peer( Access to target networks with DNS peering zones |
|
DNS Reader( Provides read-only access to all Cloud DNS resources. Lowest-level resources where you can grant this role:
|
|
管理访问权限控制
您可以使用 Google Cloud 控制台来管理主题和项目的访问权限控制。
如需在项目级层设置访问权限控制,请按照以下步骤操作。
控制台
在 Google Cloud 控制台中,转到 IAM 页面。
从顶部的下拉菜单中选择您的项目。
点击添加。
在新的主账号中,输入新主账号的电子邮件地址。
从列表中选择一个角色。
点击保存。
验证该主账号是否拥有您授予的角色。
后续步骤
- 如需开始使用 Cloud DNS,请参阅快速入门:使用 Cloud DNS 为域名设置 DNS 记录。
- 如需了解您在使用 Cloud DNS 时可能会遇到的常见问题的解决方案,请参阅问题排查。