模擬問題集 › GCP-PCDBE › 練習問題 14

GCP-PCDBE 練習問題 14|複数のデータベース技術にまたがるソリューションの管理

Professional Cloud Database Engineer・無料公開(全 200 問中 15 問を無料公開中)

問題
AlloyDB for PostgreSQL をバックエンドのデータストアとして接続する Python アプリケーションを開発しています。組織のセキュリティ要件では、データベース認証にユーザー名とパスワードを使用することが許可されていません。アプリケーションをどのように開発すべきですか。

選択肢と解説

  • 1
    任意の PostgreSQL 互換の Python クライアントを使用する。Identity-Aware Proxy(IAP)を使用して AlloyDB クラスタに接続する。
  • ✓
    AlloyDB Python コネクタを使用する。接続には自動 IAM 認証を使用する。
  • 3
    AlloyDB Python コネクタを使用する。gcloud alloydb instance update コマンドに --ssl-mode=ENCRYPTED_ONLY オプションを指定して、AlloyDB への SSL 接続を強制する。
  • 4
    任意の PostgreSQL 互換の Python クライアントを使用する。接続時に、サービス アカウント名と認証情報をそれぞれユーザー名とパスワードとして使用する。

解説

【正解】B

【0からの解説】
①前提知識:AlloyDB for PostgreSQL は Google Cloud のフルマネージドの PostgreSQL 互換データベースです。AlloyDB には「IAM データベース認証」があり、データベース固有のパスワードではなく、Google Cloud の IAM プリンシパル(ユーザーやサービス アカウント)の認証情報でデータベースにログインできます。さらに、AlloyDB 言語コネクタ(Python・Java・Go など向けのライブラリ。Python では google-cloud-alloydb-connector)を使うと、mTLS による暗号化接続と IAM による接続の認可を自動で処理でき、enable_iam_auth=True を指定すると「自動 IAM データベース認証」が有効になります。この場合、コネクタがアプリケーションの実行環境のサービス アカウント(アプリケーションのデフォルト認証情報)から OAuth 2.0 アクセス トークンを取得・更新して自動的にログインに使うため、コード内にパスワードを一切持たずに接続できます。

②要件と制約語の整理:(1) Python アプリから AlloyDB に接続、(2) データベース認証に「ユーザー名とパスワード」を使ってはならない。

③正解の理由:B の AlloyDB Python コネクタ+自動 IAM 認証であれば、データベースのユーザーは IAM プリンシパル(サービス アカウント)として作成され、認証は IAM のトークンで行われるため、パスワードの保管・ローテーションが不要になります。アクセス権も IAM ロール(AlloyDB データベース ユーザーのロールなど)で一元管理でき、セキュリティ要件を満たす Google 推奨の方法です。

【誤りの選択肢】
A:Identity-Aware Proxy(IAP)は、Web アプリケーションや VM への SSH / TCP 転送などへのアクセスを ID で制御するサービスで、AlloyDB のデータベース認証を置き換えるものではありません。IAP を経由してもデータベースへのログインには別途データベースの認証(ユーザー名・パスワードなど)が必要です。
C:--ssl-mode=ENCRYPTED_ONLY は通信の暗号化(SSL/TLS)を強制する設定であり、認証方式を変えるものではありません。暗号化されていても、データベースへのログインにはユーザー名とパスワードを使い続けることになるため、要件を満たしません。
D:サービス アカウントの名前と認証情報(サービス アカウント キーなど)をユーザー名・パスワードとして渡すのは、結局「ユーザー名とパスワード」による認証と同じ形で、長期間有効な秘密情報をアプリ内に保持することになります。サービス アカウント キーの配布・保管は Google が推奨しないセキュリティ上のリスクでもあります。IAM 認証では短期間有効なアクセス トークンを使うのが正しく、コネクタの自動 IAM 認証を使えばトークンの管理も不要です。

【参考】
AlloyDB 言語コネクタの概要 | AlloyDB for PostgreSQL
AlloyDB 言語コネクタを使用して接続する | AlloyDB for PostgreSQL
AlloyDB for PostgreSQL の IAM データベース認証
← 練習問題 13練習問題 15 →
GCP-PCDBE の模擬問題集は全 200 問

本番形式の練習テスト 4 回を、試験モード/演習モードで受験できます。 全問に解説付き、ドメイン別の弱点分析にも対応。模試プラン(月額 ¥980)からご利用いただけます。

GCP-PCDBE の模試を受ける料金プランを見る

GCP-PCDBE の無料公開問題

問題 1問題 2問題 3問題 4問題 5問題 6問題 7問題 8問題 9問題 10問題 11問題 12問題 13問題 14問題 15