IAM によるアクセス制御

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 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 も設定する必要があります。

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 も設定する必要があります。

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.update ポリシーを含むプロジェクトに対する dns.policies.update
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.responsePolicies.create レスポンス ポリシーを含むプロジェクトに対する dns.responsePolicies.create
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.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 を変更することもできます。

ロール 権限

DNS 管理者
roles/dns.admin

すべての Cloud 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.*
  • dns.responsePolicies.*
  • dns.responsePolicyRules.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list

DNS ピア
roles/dns.peer

DNS ピアリング ゾーンを持つターゲット ネットワークへのアクセス権。

  • dns.networks.targetWithPeeringZone

DNS 読み取り
roles/dns.reader

すべての 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.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 Console の [IAM] ページに移動します。

    [IAM] ページに移動

  2. 上部にあるプルダウン メニューからプロジェクトを選択します。

  3. [追加] をクリックします。

  4. [新しいプリンシパル] に、新しいプリンシパルのメールアドレスを入力します。

  5. プルダウン メニューから目的のロールを選択します。

  6. [保存] をクリックします。

  7. 付与したロールにそのプリンシパルがリストされているかを確認します。

次のステップ