Secret Manager 認証情報プロバイダ

このドキュメントでは、Dataproc Serverless で Secret Manager を認証情報ストアとして使用し、サーバーレス ワークロードによって処理される機密データを安全に保存してアクセスする方法について説明します。

概要

Secret Manager は、API キー、パスワード、証明書などの機密データを保護します。これを使用して、Google Cloud全体でシークレットの管理、アクセス、監査を行うことができます。

Dataproc サーバーレス バッチ ワークロードを実行する場合は、Dataproc Secret Manager 認証情報プロバイダを使用して、Secret Manager シークレットを使用するように構成できます。

対象

この機能は、Dataproc Serverless for Spark ランタイム バージョン 1.2.29 以降、2.2.29 以降、またはそれ以降のメジャー ランタイム バージョンで使用できます。

用語

次の表に、このドキュメントで使用されている用語を示します。

用語 説明
Secret Secret Manager シークレットは、メタデータとシークレット バージョンのコレクションを含むグローバル プロジェクト オブジェクトです。シークレットをバイナリ blob またはテキスト文字列として保存、管理、アクセスできます。
Credential Hadoop やその他の Dataproc ワークロードでは、認証情報は認証情報名(ID)と認証情報値(パスワード)で構成されます。認証情報 ID と値は、Secret Manager のシークレット ID とシークレット値(シークレット バージョン)にマッピングされます。

使用方法

Dataproc サーバーレス ワークロードを送信するときに次のプロパティを設定して、サポートされている Hadoop などの OSS コンポーネントを Secret Manager と連携するように構成できます。

  • プロバイダ パス(必須): プロバイダ パス プロパティ hadoop.security.credential.provider.path は、認証情報を解決するために走査される 1 つ以上の認証情報プロバイダ URI のカンマ区切りのリストです。

    --properties=hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID
    
    • プロバイダ パスの scheme は、認証情報プロバイダのタイプを示します。Hadoop スキームには、jceks://user://localjceks:// があります。gsm:// スキームを使用して、Secret Manager で認証情報を検索します。
  • ドット演算子を置き換える : Secret Manager サービスでは、シークレット名にドット(.)を使用できません。ただし、一部のオープンソース ソフトウェア(OSS)コンポーネントでは、認証情報キーにドットを使用しています。この制限を解消するには、このプロパティを有効にして、認証情報名のドット(.)をハイフン(-)に置き換えます。これにより、名前にドットを含む OSS 認証情報を Secret Manager から正しく保存および取得できます。

    たとえば、OSS 認証情報キーが a.b.c の場合は、Secret Manager に保存するときに a-b-c に変更する必要があります。

    --properties=hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true
    

    このプロパティは省略可能です。デフォルトでは、値は false です。認証情報名にドット(.)演算子がない認証情報キーの場合、このプロパティは無視しても問題ありません。

  • Secret のバージョン : Secret Manager の Secret には複数のバージョン(値)を設定できます。このプロパティを使用して、本番環境で安定したアクセスのために特定のシークレット バージョンにアクセスします。

    --properties=hadoop.security.credstore.google-secret-manager.secret-version=1
    

    このプロパティは省略可能です。デフォルトでは、Secret Manager は LATEST バージョンにアクセスします。これは、実行時にシークレットの最新の値に解決されます。ユースケースで常に Secret の LATEST バージョンにアクセスする場合は、このプロパティを無視しても問題ありません。

Secret Manager 認証情報プロバイダを使用してバッチ ワークロードを実行する

Secret Manager 認証情報プロバイダを使用するバッチ ワークロードを送信するには、ローカルまたは Cloud Shell で次のコマンドを実行します。

gcloud dataproc batches submit spark \
    --region=REGION \
    --jars=JARS \
    --class=MAIN_CLASS \
    --properties="spark.hive.hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID,spark.hive.hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true" \
    ...other flags as needed...

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