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 権限を持っている必要があります。権限は、ロールをユーザーやグループ、サービス アカウントに付与することで割り当てられます。基本ロールであるオーナー、編集者、閲覧者に加えて、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 インテグレーションを使用して限定公開ゾーンを作成する場合は、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 インテグレーションを使用して限定公開ゾーンを作成する場合は、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 Console を使用して、トピックやプロジェクトのアクセス制御を管理できます。
プロジェクト レベルでアクセス制御を設定するには、次の手順に従います。
Console
Google Cloud Console の [IAM] ページに移動します。
上部にあるプルダウン メニューからプロジェクトを選択します。
[Add] をクリックします。
[新しいプリンシパル] に、新しいプリンシパルのメールアドレスを入力します。
リストからロールを選択します。
[保存] をクリックします。
付与したロールにそのプリンシパルがリストされているかを確認します。
次のステップ
- Cloud DNS の使用を開始するには、クイックスタート: Cloud DNS を使用してドメイン名の DNS レコードを設定するをご覧ください。
- Cloud DNS の使用時に発生する可能性のある一般的な問題の解決策については、トラブルシューティングをご覧ください。