IAM データベース認証のインスタンスの構成

このページでは、Cloud SQL インスタンスを作成または編集して、ユーザーまたはサービス アカウントで Cloud SQL IAM 認証を使用するように構成する手順について説明します。Cloud SQL IAM の統合の詳細については、Cloud SQL IAM データベース認証の概要をご覧ください。

新しく作成したインスタンスには postgres データベースがあります。

始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  4. Cloud SDK をインストールして初期化します。
  5. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  6. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  7. Cloud SDK をインストールして初期化します。
  8. ユーザー アカウントに Cloud SQL 管理者のロールと Compute 閲覧者のロールがあることを確認します。

    IAM ページに移動

    ロールと権限について詳細を確認します

IAM データベース認証に新しいインスタンスを構成する

Cloud SQL では、フラグを使用してインスタンスでの IAM ユーザー接続を有効または無効にします。この手順では、このフラグを有効にします。

Cloud SQL IAM データベース認証を使用する新しいインスタンスを構成するには:

Console

  1. Google Cloud Console で、Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. [インスタンスを作成] をクリックします。
  3. [PostgreSQL] を選択して、[次へ] をクリックします。
  4. インスタンス ID の名前を入力します。インスタンス名には機密情報や個人を特定できる情報を含めないでください。インスタンス名は外部から閲覧可能です。インスタンス名にプロジェクト ID を含める必要はありません。プロジェクト ID は必要に応じて自動的に含まれます(ログファイルの場合など)。注: 削除したインスタンスのインスタンス名は、削除してから 1 週間過ぎるまで再利用できません。
  5. root ユーザーのパスワードを入力します。
  6. [ロケーション] セクションで、インスタンスのリージョンとゾーンを選択します。インスタンスにアクセスするリソースと同じリージョンにインスタンスを配置します。選択したリージョンは後から変更できません。通常、ゾーンを指定する必要はありません。
  7. データベースのバージョンを選択します。
  8. [構成オプション] セクションで、[フラグ] を開きます。
  9. [+ 追加] を選択します。
  10. フラグ名として「cloudsql.iam_authentication」と入力します。このフラグに対して [オン] が選択されていることを確認します。
  11. 必要に応じて、他のインスタンス設定を構成します。設定の詳細については、設定をご覧ください。
  12. [作成] をクリックします。

gcloud

-database-flags パラメータを cloudsql.iam_authentication=on に設定して gcloud sql instances create を実行します。

次のように置き換えます。

  • INSTANCE_NAME: 新しいインスタンスの名前。
  • POSTGRES_VERSION: PosgreSQL のバージョン(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 v1beta4

インスタンス名には機密情報や個人を特定できる情報を含めないでください。インスタンス名は外部から閲覧可能です。

インスタンス名にプロジェクト 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"
}
基盤となる REST API リクエストがこのタスクでどのように作成されるかについては、instances:insert ページの API Explorer をご覧ください。

Cloud SQL IAM データベース認証に既存のインスタンスを構成する

既存のインスタンスで IAM データベース認証を構成するには:

Console

  1. Google Cloud Console で、Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. インスタンス名をクリックして [概要] ページを開きます。
  3. [編集] をクリックします。
  4. [構成オプション] セクションで、[フラグ] を開きます。
  5. [+ 追加] を選択します。
  6. フラグ名として「cloudsql.iam_authentication」と入力します。このフラグに対して [オン] が選択されていることを確認します。
  7. 必要に応じて、他のインスタンス設定を構成します。設定の詳細については、設定をご覧ください。
  8. [保存] をクリックします。

gcloud

gcloud コマンドライン ツールのインストール方法と使用方法については、[Cloud SDK のインストール](/sdk/downloads)をご覧ください。Cloud Shell の起動方法については、[Cloud Shell のドキュメント](/shell/docs/starting-cloud-shell)をご覧ください。

この手順では、 gcloud sql instances patch を使用します。

次のように置き換えます。

  • INSTANCE_NAME: 新しいインスタンスの名前。
gcloud sql instances patch INSTANCE_NAME \
--database-flags=cloudsql.iam_authentication=on

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"
}

次のステップ