アクセス制御

Google Cloud Platform には Identity and Access Management(IAM)機能があり、特定の Google Cloud Platform リソースに対するアクセス権を詳細に設定できるため、他のリソースへの不要なアクセスを防ぐことができます。このページでは、Cloud DNS API の役割について説明します。Cloud IAM の詳細については、IAM のドキュメントをご覧ください。

IAM を使用すると、セキュリティに関する最小権限の原則を導入できるため、リソースに対する必要なアクセス権のみ付与できます。

IAM では、IAM ポリシーを設定して、に、どのリソースに対するどのアクセス権を付与するかを制御できます。IAM ポリシーは、特定の役割をユーザーに付与することで、そのユーザーに特定の権限を付与します。たとえば、特定のユーザーが DNS レコード リソースの作成と変更を行う必要があるとします。この場合、このユーザーに /roles/dns.admin 役割を付与します。この役割には、dns.changes.create 権限と dns.resourceRecordSets.create 権限が定義されているため、ユーザーはリソース レコードセットに対して作成と更新を行うことができます。一方、サポート部門の場合、必要なのは既存のリソース レコードセットの表示のみであるため、/roles/dns.reader 役割を付与します。

権限と役割

すべての 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.bindPrivateDNSZone および dns.networks.targetWithPeeringZone も設定する必要があります。
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.bindPrivateDNSZone および dns.networks.targetWithPeeringZone も設定する必要があります。
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.policies.patch ポリシーを含むプロジェクトに対する dns.policies.patch
dns.projects.get プロジェクトに対する dns.projects.get
dns.resourceRecordSets.list マネージド ゾーンを含むプロジェクトに対する dns.resourceRecordSets.list

役割

次の表に、Cloud DNS API IAM の役割と、各役割に含まれているすべての権限に対応するリストを示します。各権限は、特定のリソースタイプに適用できます。

DNS の変更は、基本の役割を使用して行うこともできます。

役割 役職 説明 権限 最下位のリソース
roles/dns.admin DNS 管理者 すべての DNS リソースへの読み取り / 書き込みアクセス権を付与します。
  • compute.networks.get
  • compute.networks.list
  • dns.changes.*
  • dns.dnsKeys.*
  • dns.managedZoneOperations.*
  • dns.managedZones.*
  • dns.networks.*
  • dns.policies.create
  • dns.policies.delete
  • dns.policies.get
  • dns.policies.list
  • dns.policies.update
  • dns.projects.*
  • dns.resourceRecordSets.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
プロジェクト
roles/dns.peer DNS ピア DNS ピアリング ゾーンを持つターゲット ネットワークへのアクセス権
  • dns.networks.targetWithPeeringZone
roles/dns.reader DNS 読み取り すべての Cloud DNS リソースへの読み取り専用アクセス権を付与します。
  • compute.networks.get
  • dns.changes.get
  • dns.changes.list
  • dns.dnsKeys.*
  • dns.managedZoneOperations.*
  • dns.managedZones.get
  • dns.managedZones.list
  • dns.policies.get
  • dns.policies.list
  • dns.projects.*
  • dns.resourceRecordSets.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
プロジェクト

Cloud Console でのアクセス制御

Cloud Console を使用して、トピックやプロジェクトに対するアクセス制御を管理できます。

プロジェクト レベルでアクセス制御を設定するには:

  1. Google Cloud Console で IAM ページを開きます。
  2. 上部にあるプルダウン メニューからプロジェクトを選択します。
  3. [追加] をクリックします。
  4. 新しいメンバーのメールアドレスを入力します。
  5. プルダウン メニューから目的の役割を選択します。
  6. [追加] をクリックします。
  7. 付与した役割にそのメンバーがリストされているかを確認します。

次のステップ