プロジェクトのアクセス制御

このページでは、Identity and Access Management(IAM)を使用して Cloud SQL プロジェクトへのアクセスと権限を制御する方法について説明します。

概要

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

Cloud SQL リソースへのアクセス権を簡単に制御できるように、Cloud SQL には事前定義された役割が用意されています。事前定義された役割の中に必要な権限を付与するものがない場合は、カスタムの役割を独自に作成することもできます。さらに、以前からある基本の役割(編集者、閲覧者、オーナー)もまだ使用できますが、Cloud SQL 役割ほど細かい制御はできません。特に、基本の役割は、Cloud SQL だけでなく Google Cloud Platform 全体のリソースへのアクセス権を提供します。基本の役割の詳細については、基本の役割をご覧ください。

権限と役割

ここでは、Cloud SQL でサポートされる権限と役割を簡単に説明します。

事前定義された役割

Cloud SQL にはいくつかの事前定義された役割が用意され、それらを使用してプロジェクトのメンバーに対する権限付与を詳細に設定できます。プロジェクトのメンバーに役割を付与することで、そのメンバーが実行できるアクションを制御できます。プロジェクト メンバーは、個人、グループ、サービス アカウントのいずれかです。

複数の役割を同じプロジェクト メンバーに付与できます。また、実行する権限を持っている場合、プロジェクト メンバーに付与されている役割をいつでも変更できます。

広範囲な役割には、より限定的に定義された役割が含まれます。たとえば、Cloud SQL 編集者の役割には Cloud SQL 閲覧者の役割のすべての権限と、Cloud SQL 編集者の役割の追加的な権限が含まれています。同様に、Cloud SQL 管理者の役割には、Cloud SQL 編集者の役割のすべての権限と、追加的な権限が含まれています。

基本の役割(オーナー、編集者、閲覧者)は、Google Cloud Platform 全体に対する権限を付与します。Cloud SQL に固有の役割は、Cloud SQL の権限のみを付与します。ただし、GCP の一般的な使用に必要な次の GCP 権限を除きます。

  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get

次の表に、Cloud SQL で使用可能な事前定義された役割とその Cloud SQL の権限を示します。

役割 名前 Cloud SQL の権限 説明
roles/owner オーナー cloudsql.* すべての Google Cloud Platform リソースに対する完全なアクセス権と制御。ユーザー アクセスを管理
roles/writer 編集者 以下を除くすべての cloudsql 権限
cloudsql.*.getIamPolicy
cloudsql.*.setIamPolicy
すべての Google Cloud Platform と Cloud SQL リソースに対する読み取り書き込みアクセス権(権限を変更する能力以外のすべての制御)
roles/reader 閲覧者 cloudsql.*.export
cloudsql.*.get
cloudsql.*.list
Cloud SQL リソースを含むすべての Google Cloud Platform リソースに対する読み取り専用アクセス権
roles/cloudsql.admin Cloud SQL 管理者 cloudsql.* すべての Cloud SQL リソースに対する完全な制御
roles/cloudsql.editor Cloud SQL 編集者 cloudsql.instances.addServerCa
cloudsql.instances.connect
cloudsql.instances.export
cloudsql.instances.failover
cloudsql.instances.get
cloudsql.instances.list
cloudsql.instances.listServerCa
cloudsql.instances.restart
cloudsql.instances.rotateServerCa
cloudsql.instances.truncateLog
cloudsql.instances.update
cloudsql.databases.create
cloudsql.databases.get
cloudsql.databases.list
cloudsql.databases.update
cloudsql.backupRuns.create
cloudsql.backupRuns.get
cloudsql.backupRuns.list
cloudsql.sslCerts.get
cloudsql.sslCerts.list
cloudsql.users.list
特定のインスタンスを管理。表示、変更権限なし。ユーザーまたは sslCerts の変更権限なし。バックアップからのデータのインポートまたは復元の権限なし。インスタンスの複製、削除、プロモートの権限なし。レプリケーションの開始または停止の権限なし。データベースの削除、レプリケーション、バックアップの権限なし。
roles/cloudsql.viewer Cloud SQL 閲覧者 cloudsql.*.export
cloudsql.*.get
cloudsql.*.list
cloudsql.instances.listServerCa
すべての Cloud SQL リソースに対する読み取り専用アクセス権。
roles/cloudsql.client Cloud SQL クライアント cloudsql.instances.connect
cloudsql.instances.get
App Engine と Cloud SQL Proxy から Cloud SQL インスタンスへの接続アクセス権。IP アドレスを使用してインスタンスにアクセスする必要なし。

権限と役割

以下の表には、Cloud SQL がサポートしている各権限と、それに含まれる Cloud SQL の役割、以前の(基本)役割が一覧表示されています。

権限 Cloud SQL の役割 以前の役割
cloudsql.backupRuns.create Cloud SQL 管理者
Cloud SQL 編集者
編集者
cloudsql.backupRuns.delete Cloud SQL 管理者 編集者
cloudsql.backupRuns.get Cloud SQL 管理者
Cloud SQL 編集者
Cloud SQL 閲覧者
閲覧者
cloudsql.backupRuns.list Cloud SQL 管理者
Cloud SQL 編集者
Cloud SQL 閲覧者
閲覧者
cloudsql.databases.create Cloud SQL 管理者
Cloud SQL 編集者
編集者
cloudsql.databases.delete Cloud SQL 管理者
Cloud SQL 編集者
編集者
cloudsql.databases.get Cloud SQL 管理者
Cloud SQL 編集者
Cloud SQL 閲覧者
閲覧者
cloudsql.databases.getIamPolicy
Cloud SQL 管理者 オーナー
cloudsql.databases.list Cloud SQL 管理者
Cloud SQL 編集者
Cloud SQL 閲覧者
閲覧者
cloudsql.databases.setIamPolicy
Cloud SQL 管理者 オーナー
cloudsql.databases.update Cloud SQL 管理者
Cloud SQL 編集者
編集者
cloudsql.instance.addServerCa
Cloud SQL 管理者
Cloud SQL 編集者
編集者
cloudsql.instances.clone Cloud SQL 管理者 編集者
cloudsql.instances.connect Cloud SQL 管理者
Cloud SQL クライアント
Cloud SQL 編集者
編集者
cloudsql.instances.create Cloud SQL 管理者
Cloud SQL 編集者
編集者
cloudsql.instances.delete Cloud SQL 管理者 編集者
cloudsql.instances.demoteMaster Cloud SQL 管理者 編集者
cloudsql.instances.export Cloud SQL 管理者
Cloud SQL 編集者
Cloud SQL 閲覧者
閲覧者
cloudsql.instances.failover Cloud SQL 管理者
Cloud SQL 編集者
編集者
cloudsql.instances.get Cloud SQL 管理者
Cloud SQL クライアント
Cloud SQL 編集者
Cloud SQL 閲覧者
閲覧者
cloudsql.instances.getIamPolicy
Cloud SQL 管理者 オーナー
cloudsql.instances.import Cloud SQL 管理者 編集者
cloudsql.instances.list Cloud SQL 管理者
Cloud SQL 編集者
Cloud SQL 閲覧者
閲覧者
cloudsql.instance.listServerCa
Cloud SQL 閲覧者 閲覧者
cloudsql.instances.promoteReplica Cloud SQL 管理者 編集者
cloudsql.instances.resetSslConfig Cloud SQL 管理者 編集者
cloudsql.instances.restart Cloud SQL 管理者
Cloud SQL 編集者
編集者
cloudsql.instances.restoreBackup Cloud SQL 管理者 編集者
cloudsql.instance.rotateServerCa
Cloud SQL 管理者
Cloud SQL 編集者
編集者
cloudsql.instances.setIamPolicy
Cloud SQL 管理者 オーナー
cloudsql.instances.startReplica Cloud SQL 管理者 編集者
cloudsql.instances.stopReplica Cloud SQL 管理者 編集者
cloudsql.instances.truncateLog Cloud SQL 管理者
Cloud SQL 編集者
編集者
cloudsql.instances.update Cloud SQL 管理者
Cloud SQL 編集者
編集者
cloudsql.sslCerts.create Cloud SQL 管理者 編集者
cloudsql.sslCerts.delete Cloud SQL 管理者
Cloud SQL 編集者
編集者
cloudsql.sslCerts.get Cloud SQL 管理者
Cloud SQL 編集者
Cloud SQL 閲覧者
閲覧者
cloudsql.sslCerts.list Cloud SQL 管理者
Cloud SQL 編集者
Cloud SQL 閲覧者
閲覧者
cloudsql.users.create Cloud SQL 管理者
Cloud SQL 編集者
編集者
cloudsql.users.delete Cloud SQL 管理者
Cloud SQL 編集者
編集者
cloudsql.users.list Cloud SQL 管理者
Cloud SQL 編集者
Cloud SQL 閲覧者
閲覧者
cloudsql.users.update Cloud SQL 管理者 編集者

カスタムの役割

事前定義された役割がお客様特有のビジネス要件に合っていない場合は、任意に指定した権限を含むカスタムの役割を独自に定義できます。これをサポートするため、IAM にカスタムの役割を作成する機能が用意されています。

Cloud SQL 用にカスタムの役割を作成するとき、cloudsql.instances.listcloudsql.instances.get のどちらか一方を含める場合は必ずその両方を含めてください。そうしなければ、GCP Console が Cloud SQL に対して正しく機能しません。

GCP Console での一般的なタスクに必要な権限

タスク 必要な追加の権限
インスタンスの一覧ページを表示する cloudsql.instances.list
resourcemanager.projects.get
インスタンスを作成する cloudsql.instances.create
cloudsql.instances.get
cloudsql.instances.list
resourcemanager.projects.get
Cloud Shell からインスタンスに接続する cloudsql.instances.get
cloudsql.instances.list
cloudsql.instances.update
resourcemanager.projects.get
ユーザーを作成する cloudsql.instances.get
cloudsql.instances.list
cloudsql.users.create
cloudsql.users.list
resourcemanager.projects.get
インスタンス情報を表示する cloudsql.instances.get
cloudsql.instances.list
cloudsql.users.list
monitoring.timeSeries.list
resourcemanager.projects.get

gcloud sql コマンドに必要な権限

コマンド 必要な権限
gcloud sql backups create cloudsql.backupRuns.create
gcloud sql backups delete cloudsql.backupRuns.delete
gcloud sql backups describe cloudsql.backupRuns.get
gcloud sql backups list cloudsql.backupRuns.list
gcloud sql backups restore cloudsql.backupRuns.get
cloudsql.instances.restoreBackup
gcloud sql connect cloudsql.instances.get
cloudsql.instances.update
gcloud sql databases create cloudsql.databases.create
gcloud sql databases delete cloudsql.databases.delete
gcloud sql databases describe cloudsql.databases.get
gcloud sql databases list cloudsql.databases.list
gcloud sql databases patch cloudsql.databases.get
cloudsql.databases.update
gcloud sql export cloudsql.instances.export
gcloud sql flags list なし
gcloud sql import cloudsql.instances.import
gcloud sql instances clone cloudsql.instances.clone
gcloud sql instances create cloudsql.instances.create
gcloud sql instances delete cloudsql.instances.delete
gcloud sql instances describe cloudsql.instances.get
gcloud sql instances export cloudsql.instances.export
gcloud sql instances failover cloudsql.instances.failover
gcloud sql instances import cloudsql.instances.import
gcloud sql instances list cloudsql.instances.list
gcloud sql instances patch cloudsql.instances.get
cloudsql.instances.update
gcloud sql instances promote-replica cloudsql.instances.promoteReplica
gcloud sql instances reset-ssl-config cloudsql.instances.resetSslConfig
gcloud sql instances restart cloudsql.instances.restart
gcloud sql instances restore-backup cloudsql.backupRuns.get
cloudsql.instances.restoreBackup
gcloud sql operations describe cloudsql.instances.get
gcloud sql operations list cloudsql.instances.get
gcloud sql operations wait cloudsql.instances.get
gcloud sql ssl client-certs create cloudsql.sslCerts.create
gcloud sql ssl client-certs delete cloudsql.sslCerts.delete
gcloud sql ssl client-certs describe cloudsql.sslCerts.list
gcloud sql ssl client-certs list cloudsql.sslCerts.list
gcloud sql tiers list なし
gcloud sql users create cloudsql.users.create
gcloud sql users delete cloudsql.users.delete
gcloud sql users list cloudsql.users.list
gcloud sql users set-password cloudsql.users.update

API メソッドに必要な権限

次の表に、Cloud SQL API の各メソッドを呼び出したり、API を使用する GCP ツール(Google Cloud Platform Console や gcloud コマンドライン ツールなど)を使用してタスクを実行したりするために、呼び出し元が持っている必要のある権限を示します。

すべての権限がプロジェクトに適用されます。インスタンスまたはその他の低レベル オブジェクトに基づいて異なる権限を適用することはできません。

メソッド 必要な権限
backupRuns.delete cloudsql.backupRuns.delete
backupRuns.get cloudsql.backupRuns.get
backupRuns.insert cloudsql.backupRuns.create
backupRuns.list cloudsql.backupRuns.list
databases.delete cloudsql.databases.delete
databases.get cloudsql.databases.get
databases.insert cloudsql.databases.create
databases.list cloudsql.databases.list
databases.patch cloudsql.databases.updatecloudsql.databases.get
databases.update cloudsql.databases.update
flags.list なし
instances.clone cloudsql.instances.clone
instances.delete cloudsql.instances.delete
instances.export cloudsql.instances.get
instances.failover cloudsql.instances.failover
instances.get cloudsql.instances.export
instances.import cloudsql.instances.import
instances.insert cloudsql.instances.create
instances.list cloudsql.instances.list
instances.patch cloudsql.instances.getcloudsql.instances.update
instances.promoteReplica cloudsql.instances.promoteReplica
instances.resetSslConfig cloudsql.instances.resetSslConfig
instances.restart cloudsql.instances.restart
instances.restoreBackup cloudsql.instances.restoreBackupcloudsql.backupRuns.get
instances.startReplica cloudsql.instances.startReplica
instances.stopReplica cloudsql.instances.stopReplica
instances.truncateLog cloudsql.instances.truncateLog
instances.update cloudsql.instances.update
operations.get cloudsql.instances.get
operations.list cloudsql.instances.get
sslCerts.delete cloudsql.sslCerts.delete
sslCerts.get cloudsql.sslCerts.get
sslCerts.insert cloudsql.sslCerts.create
sslCerts.list cloudsql.sslCerts.list
users.delete cloudsql.users.delete
users.insert cloudsql.users.create
users.list cloudsql.users.list
users.update cloudsql.users.update

MySQL IAM での Cloud SQL の管理

Google Cloud Platform Console、API の IAM メソッド、または Cloud SDK を使用して IAM のポリシーと役割を取得して設定できます。詳細については、プロジェクト メンバーに対するアクセス権の付与、変更、取り消しをご覧ください。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...