LoginSignup
1
0

More than 1 year has passed since last update.

CloudSQL ユーザ認証方式検討

Posted at

ユーザ認証方式検討 / IaC検討

まえがき

CloudSQL(PostgreSQL/MySQL)のユーザ認証方式を検討したのでここに書き記しておきます。

  • ユーザ認証方式検討 (本記事)
  • PostgreSQLのユーザ構成管理(IaC) -Anasible編-
  • PostgreSQLのユーザ構成管理(IaC) -Terraform編- (記事がかけたらリンク張る)
  • MySQLのユーザ構成管理(IaC) -Anasible編- (記事がかけたらリンク張る)
  • MySQLのユーザ構成管理(IaC) -Terraform編- (記事がかけたらリンク張る)

比較した認証方式

Cloud IAM

  • メリット
    • cloud_sql_proxyがBastionの代わりを用意してくれるので踏み台サーバを用意しなくても良くなる。
    • パスワードの配布をしなくても良い。
$ cloud_sql_proxy -instances=[project id]:[region]:[instance name]=tcp:5432 -enable_iam_login
$ psql "host=localhost dbname=postgres user=taro.yamada@example.com"

組み込み認証

  • メリット

    • cloud_sql_proxyを都度実行しなくても、IntelliJとかSequelでアクセスできるのは便利。
  • デメリット

    • DB毎にユーザ名とパスワードを管理する必要がでてくる。
    • メールなどで配信する機構を実装するのが面倒。

Okta + StrongDM

ActiveDirectory

ActiveDirectoryを使っていればADも良いと思います。うちの会社では使っていませんでした。
https://cloud.google.com/blog/ja/topics/developers-practitioners/creating-sql-server-instance-integrated-active-directory-using-google-cloud-sql

LDAP

CloudSQL、RDSでは使えませんでした。

比較したIaC

Ansible

  • メリット
    • オンプレ、CloudSQL、RDS問わずAnsibleで一元管理ができる。
  • デメリット
    • CloudSQLをTerraformで管理しているばあい、DBインスタンスの構築とユーザ作成の処理を別で回さないと行けないので面倒。

Terraform

  • メリット
    • CloudSQLをTerraformで管理していれば、Terraformで完結させられる。
    • オンプレ、CloudSQL、RDS問わずTerraformで一元管理ができる。
  • デメリット
    • ゼロトラストなどの理由で組み込み認証ユーザをSSH経由でのみのアクセスに制限している場合は、 local-exec を使ったり、ssh port fowardingなどの対応が必要。(※ local-execを使うにしても環境差異はでそうなのでGitHubAction化するか踏み台サーバ上で実行するなどが必要そう)
      https://github.com/hashicorp/terraform-provider-postgresql/issues/42

オマケ

メール名が同じでドメイン名が異なる 2 人のユーザーを追加できない

この記載はPostgreSQLとMySQLのドキュメントどちらにも記載があります。
スクリーンショット 2022-06-25 1.44.50.png

MySQLに関してはその通りですが、PostgreSQLに関しては実態は違っていてメールアドレスがドメインごとフルで登録されます。メール名が同じでドメインが異なればユーザ登録も問題なく可能でした。
https://cloud.google.com/sql/docs/postgres/add-manage-iam-users?hl=ja-

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0