GCPシークレットマネージャー

KeeperボルトのシークレットをGCPシークレットマネージャーと同期

概説

KeeperシークレットマネージャーCLIツールのsyncコマンドを使用すると、Keeperボルトから目的のGCPシークレットマネージャープロジェクトにシークレットをプッシュし、目的の場所にある既存の値を上書きできます。これにより、Keeperボルトが、GCPシークレットマネージャーを利用するGCPのすべてのサービスまたはスクリプトの信頼できる唯一の情報源となります。

機能

  • KeeperボルトのシークレットをGCPシークレットマネージャーの信頼できる情報源として使用します

  • GCPの既存のスクリプトとサービスでKeeperボルトのシークレットがシームレスに使用できるようになります

前提条件

  • Keeperシークレットマネージャーへのアクセス (詳細は、クイックスタートガイドをご参照ください)

    • Keeperサブスクリプションのシークレットマネージャーアドオンの有効化

    • シークレットマネージャー強制ポリシーが有効化されたロールを割り当てられたメンバーシップ

  • シークレットを共有するKeeperシークレットマネージャーアプリケーション

  • GCPシークレットマネージャーを使用するGCPアカウント、およびオプションでIAMサービスアカウントのクレデンシャルを作成する機能

設定

1. KeeperシークレットマネージャーCLIを設定

KSM CLIがすでにマシンに設定済みの場合は、この手順を省略できます。

KSM CLIツールを設定するには、Keeperシークレットマネージャーのワンタイムアクセストークンを使用してプロファイルを作成する必要があります。

これを行う最も簡単な方法は、次のコマンドを使用してデフォルトのプロファイルを初期化することです。

ksm profile init <TOKEN>

複数のプロファイルの作成およびその他のオプションについては、プロファイルのドキュメントをご参照ください。

2. GCPのアクセス権限を設定

GCPへのKSM同期を使用するために、GCPシークレットマネージャーは、同期するプロジェクトまたはサービスアカウントプリンシパルに対して、Secret Manager Adminロールが有効になった標準のIAMセキュリティクレデンシャルを必要とします。

IAMによるシークレットマネージャーのアクセス制御:

サービスアカウントのクレデンシャルを作成するためのGCPの手順 (任意)

3. GCPクレデンシャルレコードの作成

KSM CLIでは、シークレットを設定するためにGCPサービスアカウントのクレデンシャルが必要です。 これらのクレデンシャルはKeeperのレコードに保存されており、CLIツールからは、Keeperシークレットマネージャーを使用してアクセスできます。

クレデンシャルレコードには、以下のラベルを持つレコードフィールドが必要です。

"Google Cloud Project ID" "Google Application Credentials" - オプション

"Google Application Credentials"フィールドはオプションで、サービスアカウントのクレデンシャルを使用する場合にのみ必要です。デフォルトでは、GCPクライアントはgcloud CLIを使用して作成できるアプリケーションのデフォルトのクレデンシャルを使用します

gcloud auth application-default login

これらのクレデンシャルが不要になった場合は、取り消すことができます。

gcloud auth application-default revoke

方法 1: GCPクレデンシャルのカスタムのレコードタイプを作成

必要なフィールドを使用してカスタムのレコードタイプを作成できるため、レコードの作成が簡単かつシンプルになります。

カスタムのレコードタイプを作成するには、Keeperボルトで[カスタムのレコードタイプ]タブに移動して、[タイプの作成]をクリックします。 正しいフィールドラベルを持つ伏せ字項目を使用して新しいレコードタイプを作成し、[発行]をクリックして新しいレコードタイプを作成します。

GCPのクレデンシャルレコードタイプの定義

後は、GCPクレデンシャルタイプのレコードを新規作成し、対応するフィールドに詳細情報を入力するだけです。

GCPクレデンシャルレコードの作成

この新しいレコードが、シークレットマネージャーアプリケーションに関連付けられた共有フォルダに移動されていることを確認します。

方法 2: カスタムフィールドを追加

新しいレコードタイプを作成せずにクレデンシャルレコードを作成するには、必要なフィールドをカスタムフィールドとして標準レコードに追加します。

任意のタイプの新しいレコードを作成し、必要なGCPフィールドごとに[伏せ字項目]タイプのカスタムフィールドを追加します。[ラベルの編集]をクリックして、対応するフィールド名のラベルを変更します。

どのレコードタイプでも有効ですが、[ファイル添付]の標準レコードタイプにはフィールドがないため、カスタムフィールドを追加したときの見た目がすっきりします。

カスタムフィールドとしてのGCPクレデンシャルフィールド

次に、各カスタムフィールドに入力し、[保存]をクリックしてレコードを保存します。

4. 値のマッピングを作成

KSM CLIのsyncコマンドは、コマンド呼び出しで定義されたマッピングを使用して、設定する値を識別します。コマンドに渡されたマッピングごとに、指定した名前の値にKeeperボルトから所与の値が代入されます。

これらのマッピングは次の形式に従っています。

--map "VALUE KEY" "KEEPER NOTATION"

VALUE KEYは、GCP Secret Managerで値が割り当てられるキーの名前です。

KEEPER NOTATIONは、キーに設定するKeeperのレコードの値を取得するKeeper表記法を使用したクエリです。

Keeper表記法は、Keeper Secrets Managerが特定のレコードの値を識別するために使用するクエリの表記法です。 この表記法は、次の一般的な形式に従います。UID/[field|custom]/fieldname 例: ae3d[...]d22e/field/password

詳細については、Keeper表記法のドキュメントをご参照ください。

これらの例では、完全なUIDレコードが指定されていないことにご注意ください。

完全なマッピング例: --map "MySQL_PWD" "jd3[...]i-fd/field/password"

複数のマッピングを1つのsyncコマンドに追加できます --map "MySQL_PWD" "jd3[...]i-fd/field/password" --map "MySQL_Login" "jd3[...]i-fd/field/login"

Keeper表記法を使用したクエリによって参照されるレコードが、シークレットマネージャーアプリケーションと共有されている共有フォルダに格納されていることを確かにします。

これで、KSM同期を実行する準備ができました

同期の実行

同期を実行するには、クレデンシャルレコードと値のマッピングを指定して、KSM CLIのsyncコマンドを使用します。

1. コマンドを構成

KSM syncコマンドをGCPタイプと組み合わせます。 以下のような形式になります。

ksm sync --type gcp --credentials [UID] --map [...] --map [...]

2. ドライランを実行

syncコマンドは、実際に値をプッシュすることも変更を加えることもせずに、GCPシークレットマネージャーの値に加えられるすべての変更を確認するドライランの実行をサポートします。 これを使用して、マッピングクエリが正しく構成されていることを確認します。

ksm sync --type gcp --credentials [UID] --map [...] --map [...] --dry-run

3. 同期を実行

準備ができたら、dry-runオプションを指定せずにsyncコマンドを実行します。 これにより、KeeperボルトからGCPシークレットマネージャーに値がプッシュされます

ヒント: --mapの短縮形として、-mを使用できます

ksm sync --type gcp --credentials [UID] -m [...] -m [...]

最終更新