このページでは、Cloud SQL インスタンスを作成または編集して、ユーザーまたはサービス アカウントで Cloud SQL IAM 認証を使用するように構成する手順について説明します。Cloud SQL IAM のインテグレーションの詳細については、IAM 認証をご覧ください。
新しく作成したインスタンスには postgres
データベースがあります。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
ユーザー アカウントに Cloud SQL 管理者のロールと Compute 閲覧者のロールがあることを確認します。
ロールと権限について詳細を確認します。
IAM データベース認証に新しいインスタンスを構成する
Cloud SQL では、フラグを使用してインスタンスでの IAM ユーザー接続を有効または無効にします。この手順では、このフラグを有効にします。
Cloud SQL IAM データベース認証を使用する新しいインスタンスを構成するには:
Console
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- [インスタンスを作成] をクリックします。
- [PostgreSQL を選択] をクリックします。
- インスタンス ID の名前を入力します。インスタンス名には機密情報や個人を特定できる情報を含めないでください。インスタンス名は外部から閲覧可能です。インスタンス名にプロジェクト ID を含める必要はありません。プロジェクト ID は必要に応じて自動的に含まれます(ログファイルの場合など)。
- デフォルトの admin ユーザーのパスワードを入力します。
- [データベースのバージョン] プルダウン メニューで、データベースのバージョンを選択します。
- [リージョンとゾーンの可用性の選択] セクションで、インスタンスのリージョンとゾーンを選択します。インスタンスにアクセスするリソースと同じリージョンにインスタンスを配置します。選択したリージョンは後から変更できません。通常、ゾーンを指定する必要はありません。
- [インスタンスのカスタマイズ] セクションで [構成オプションを表示] をクリックし、[フラグ] を開きます。
- [フラグを追加] をクリックします。
- [フラグを選択] プルダウン メニューから、
cloudsql.iam_authentication
フラグを選択します。このフラグの値として [オン] が選択されていることを確認し、[完了] をクリックします。 - 必要に応じて、他のインスタンス設定を構成します。設定の詳細については、設定をご覧ください。
- [インスタンスを作成] をクリックします。
gcloud
-database-flags
パラメータを cloudsql.iam_authentication=on
に設定して gcloud sql instances create
を実行します。
次のように置き換えます。
- INSTANCE_NAME: 新しいインスタンスの名前。
- POSTGRES_VERSION: PostgreSQL のバージョン(POSTGRES_9_6、POSTGRES_10、POSTGRES_11、POSTGRES_12 など)。
- NUMBER_OF_CORES: マシン内のコア数。
- AMOUNT_OF_MEMORY: マシン内のメモリ量。サイズ単位を指定します(3,072 MiB、9 GiB など)。
- ZONE: 目的の Compute Engine ゾーン(us-central1-a、us-central1-b など)。
- PASSWORD: root ユーザーのパスワードを作成します。
gcloud sql instances create INSTANCE_NAME \ --database-version=POSTGRES_VERSION \ --cpu=NUMBER_OF_CORES \ --memory=AMOUNT_OF_MEMORY \ --zone=ZONE_NAME \ --root-password=PASSWORD \ --database-flags=cloudsql.iam_authentication=on
REST v1
インスタンス名には機密情報や個人を特定できる情報(PII)を含めないでください。インスタンス名は外部から閲覧可能です。
インスタンス名にプロジェクト ID を含める必要はありません。プロジェクト ID は必要に応じて自動的に含まれます(ログファイルの場合など)。
リクエストのデータを使用する前に、次のように置き換えます。
- INSTANCE_ID: 目的のインスタンス ID
- REGION: 目的のリージョン(us-east-1 など)
- PROJECT_ID: 実際のプロジェクト ID
- LOCATION_ID: ロケーション ID
- DATABASE_VERSION: データベース バージョンの列挙型文字列。例:
POSTGRES_12
- PASSWORD: root ユーザーのパスワード
- MACHINE_TYPE: マシン(階層)タイプの列挙型文字列。次のようになります。
db-custom-[CPUS]-[MEMORY_MBS]
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/locations/LOCATION_ID/instances
リクエストの本文(JSON):
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "backupConfiguration": { "enabled": true }, "databaseFlags": [ { "name": "cloudsql.iam_authentication", "value": "on" } ] } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
インスタンス名には機密情報や個人を特定できる情報(PII)を含めないでください。インスタンス名は外部から閲覧可能です。
インスタンス名にプロジェクト ID を含める必要はありません。プロジェクト ID は必要に応じて自動的に含まれます(ログファイルの場合など)。
リクエストのデータを使用する前に、次のように置き換えます。
- INSTANCE_ID: 目的のインスタンス ID
- REGION: 目的のリージョン(us-east-1 など)
- PROJECT_ID: 実際のプロジェクト ID
- LOCATION_ID: ロケーション ID
- DATABASE_VERSION: データベース バージョンの列挙型文字列。例:
POSTGRES_12
- PASSWORD: root ユーザーのパスワード
- MACHINE_TYPE: マシン(階層)タイプの列挙型文字列。次のようになります。
db-custom-[CPUS]-[MEMORY_MBS]
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/locations/LOCATION_ID/instances
リクエストの本文(JSON):
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "backupConfiguration": { "enabled": true }, "databaseFlags": [ { "name": "cloudsql.iam_authentication", "value": "on" } ] } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Cloud SQL IAM データベース認証に既存のインスタンスを構成する
既存のインスタンスで IAM データベース認証を構成するには:
Console
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- [編集] をクリックします。
- [インスタンスのカスタマイズ] セクションで、[フラグ] を開きます。
- [フラグを追加] をクリックします。
- [フラグを選択] プルダウン メニューから、
cloudsql.iam_authentication
フラグを選択します。このフラグの値として [オン] が選択されていることを確認し、[完了] をクリックします。 - 必要に応じて、他のインスタンス設定を構成します。設定の詳細については、設定をご覧ください。
- [保存] をクリックします。
gcloud
gcloud CLI のインストールと開始については、gcloud CLI をインストールするをご覧ください。Cloud Shell の起動については、Cloud Shell を使用するをご覧ください。
この手順では、
gcloud
sql instances patch
を使用します。
次のように置き換えます。
- INSTANCE_NAME: 新しいインスタンスの名前。
gcloud sql instances patch INSTANCE_NAME \ --database-flags=cloudsql.iam_authentication=on
これにより、他の既存のデータベース フラグの設定がリセットされます。データベース フラグの設定方法について詳しくは、データベース フラグを設定するをご覧ください。
REST v1
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID
- LOCATION_ID: ロケーション ID
- INSTANCE_ID: 目的のインスタンス ID
- REGION: 目的のリージョン
- DATABASE_VERSION: データベース バージョンの列挙型文字列。例:
POSTGRES_12
- PASSWORD: root ユーザーのパスワード
- MACHINE_TYPE: マシン(階層)タイプの列挙型文字列。次のようになります。
db-custom-[CPUS]-[MEMORY_MBS]
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/locations/LOCATION_ID/instances
リクエストの本文(JSON):
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "backupConfiguration": { "enabled": true } "databaseFlags": [ { "name": "cloudsql.iam_authentication", "value": "on" } ] } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID
- LOCATION_ID: ロケーション ID
- INSTANCE_ID: 目的のインスタンス ID
- REGION: 目的のリージョン
- DATABASE_VERSION: データベース バージョンの列挙型文字列。例:
POSTGRES_12
- PASSWORD: root ユーザーのパスワード
- MACHINE_TYPE: マシン(階層)タイプの列挙型文字列。次のようになります。
db-custom-[CPUS]-[MEMORY_MBS]
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/locations/LOCATION_ID/instances
リクエストの本文(JSON):
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "backupConfiguration": { "enabled": true } "databaseFlags": [ { "name": "cloudsql.iam_authentication", "value": "on" } ] } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
次のステップ
- IAM データベース認証について学習する。
- IAM データベース認証のリードレプリカ ログインを構成する方法を学習する。
- Cloud SQL IAM データベース認証を使用するユーザーとサービス アカウントを作成する方法を学習する。
- IAM データベース認証を使用して Cloud SQL データベースにログインする方法を学習する。
- IAM データベース認証のユーザー アカウントとサービスを管理する方法を学習する。