Google Cloud4 択難易度 応用

状況

Cloud Run から Cloud SQL for MySQL に、Cloud SQL の接続設定(Unix ソケット)でつないでいる。昨日 DB ユーザーのパスワードを変えてから、ログに「Access denied for user 'app'@'cloudsqlproxy~203.0.113.5' (using password: YES)」が出る。

最も疑わしい候補は?

  1. A実行サービスアカウントの Cloud SQL クライアントロール
  2. BCloud SQL Admin API が有効か
  3. Cインスタンス接続名の設定
  4. Dアプリが使う DB パスワード(Secret Manager の値)
  5. EVPC のファイアウォールルール

正答

  1. A
  2. E
  3. C
  4. D

解説

Access denied for user … は MySQL サーバーが返すエラーで、ここまで来ているということは、接続名(C)、Cloud SQL Admin API(B)、サービスアカウントの Cloud SQL クライアントロール(A)を使った接続経路はすべて通っている。どれかが欠けていれば、MySQL に届く前にコネクタ側で接続が失敗する。MySQL まで届いている以上、ネットワークの遮断(E)でもない。残るのは DB の認証そのものと、直前に変えたパスワード。Secret Manager の値を新しいパスワードに更新したか、Cloud Run が古いバージョンのシークレットを参照していないか、更新後に新しいリビジョンをデプロイしたかを確かめる。経路を疑って IAM を広げても直らない。

参考: docs.cloud.google.com

cloud-sqltroubleshootingauthentication

この問題を含む Google Cloud のテストを制限時間つきで解く

Google Cloudクイズへ