Terraform Provider
Terraformビルドでシークレットにアクセス

機能
Keeper Terraformプラグインは、Keeperシークレットマネージャーを利用してKeeperボルトに保存されたシークレット認証情報にアクセスします。このプラグインを使うことで、Keeperのゼロ知識インフラを活用し、Terraformのビルド環境にシークレットを安全に直接挿入できます。
Terraformのビルドで使用するシークレットをKeeperボルトから取得します
Terraformのビルドスクリプトにクレデンシャルを直接注入します
Keeperボルトからファイルを取得します
要件
本ページでは、シークレットマネージャーとTerraformとの連携について説明します。この連携を利用するための要件は以下のとおりです。
Keeperシークレットマネージャーへのアクセス (詳細は、クイックスタートガイドをご参照ください)
Keeperアカウントのシークレットマネージャーアドオンの有効化
シークレットマネージャー強制ポリシーが有効化されたロールを割り当てられたメンバーシップ
シークレットを共有するKeeperシークレットマネージャーアプリケーション
アプリケーションの作成手順については、クイックスタートガイドをご参照ください
Keeperシークレットマネージャー設定の初期化
Terraform連携では、JSON形式とBase64形式の設定を使用できます
インストール
レジストリのインストール
このプロバイダをインストールするには、Terraformの設定に以下のコードを追加して、terraform initを実行します。
手動インストール
GitHubリリースページからご利用のプラットフォーム用の最新バージョンのTerraformプロバイダをダウンロードし、そのアーカイブを対応するTerraformプラグインフォルダにコピーします (パスに不足しているフォルダがあれば作成します)。完全なプロバイダURLでソースを初期化します ( "github.com/keeper-security/secretsmanager")。
Terraformプロバイダを手動でインストールする方法については、Terraformの公式ドキュメントをご参照ください。
使用方法
プロバイダを設定
Keeperシークレットマネージャープロバイダを使用して、Keeperシークレットマネージャーでサポートされているリソースと連携します。プロバイダを使用できるようにするには、Keeperのクレデンシャルを使用してプロバイダを設定する必要があります。
構成ファイルの内容
app_key- (必須) アプリケーションキー。client_id- (必須) クライアントID。private_key- (必須) 秘密鍵。hostname- (オプション) デフォルトでは、プラグインはkeepersecurity.comに接続します
データソースを使用してシークレットを取得
Keeperの標準レコードタイプごとにデータソースが用意されているため、シークレットのクレデンシャルを簡単に取得できます。
データソースには、以下の形式を使用してアクセスします。
たとえば、ログインタイプのレコードを使用する場合は、以下のようになります。
ユーザーが定義したレコードタイプの追加のカスタムフィールドまたは標準フィールドにアクセスするには、secretsmanager_field データソースを使用します。
サポートされているレコードタイプの一覧
"secretsmanager_address"
"secretsmanager_bank_account"
"secretsmanager_bank_card"
"secretsmanager_birth_certificate"
"secretsmanager_contact"
"secretsmanager_database_credentials"
"secretsmanager_drivers_license"
"secretsmanager_encrypted_notes"
"secretsmanager_field"
"secretsmanager_file"
"secretsmanager_health_insurance"
"secretsmanager_login"
"secretsmanager_membership"
"secretsmanager_passport"
"secretsmanager_photo"
"secretsmanager_record"
"secretsmanager_records"
"secretsmanager_server_credentials"
"secretsmanager_software_license"
"secretsmanager_ssh_keys"
"secretsmanager_ssn_card"
各データソースで使用可能なフィールドについては、レコードタイプのデータソースリファレンスをご参照ください。
レコードタイプの詳細は、レコードタイプのページおよびコマンダー使用法のページをご参照ください
レコードフィールドにアクセス
レコードのフィールドに保存されたシークレットのクレデンシャルにアクセスするには、データソースの一部としてフィールドにアクセスします。
タイプ指定されたレコードのデータソースのフィールドにアクセス
以下の形式を使用して、タイプ指定されたデータリソースのフィールドにアクセスします。
以下は、ログインタイプのデータソースのパスワードへのアクセスとなります。
フィールドデータソースを使用し、Keeper表記法でレコード内の任意のフィールドを照会
"secretsmanager_field"データソースタイプを使用してデータソースを作成し、pathプロパティでフィールドクエリを指定します。
フィールドクエリでは、"<UID>/field/<field type>"という形式が使用されます。
リソースを使用したレコードの作成
Keeperでは、上記の主要なKeeperレコードタイプ用のTerraformリソースがご利用になれます。 これらのリソースを利用し、KeeperシークレットマネージャーのTerraformプラグインを使用してKeeperのレコードを作成できます。
レコードを作成するには、使用したいレコードタイプに対応するリソースを使用します。
各レコードのリソースには、少なくともfolder_uidとtitle、および各レコードフィールドの値が必要となります。
ログインリソースの例
フォルダUID
レコードを作成するには、Keeperシークレットマネージャーが新しいレコードを作成する場所を認識できるように、フォルダのUIDが必要となります。
フォルダUIDは、KeeperボルトまたはKeeperコマンダーを使用して確認できます。
指定したフォルダには、Terraformプラグインで使用されているKeeperシークレットマネージャーアプリケーションがアクセスできる必要があります。また、Keeperシークレットマネージャーによって使用される前に、フォルダに少なくとも1つのレコードが格納されている必要があります。
タイトル
レコードタイトル。
レコードフィールド
レコードの各フィールドの値と設定は、リソースで設定できます。 レコードタイプごとの利用可能なフィールドについては、リソース定義をご参照ください。
各フィールドは、リソース内ではオブジェクトとして表記されます。
ログインフィールドの例
フィールド値を設定
各フィールドの値を設定するには、valueフィールドを使用してください。フィールドの形式については、loginフィールドタイプは文字列を受け取りますが、nameフィールドは「first」「middle」「last」フィールドを持つオブジェクトを受け取るなど、異なる場合があります。
各フィールドの値の形式については、リソースのドキュメントをご参照ください。
フィールドの設定を指定
各フィールドは、様々な設定で構成できます。
label
string
フィールドラベル
required
boolean
Trueの場合、このフィールドはKeeperボルトで必須と見なされます
privacy_screen
boolean
Trueの場合、このフィールドはKeeperボルトで非表示になります
パスワードフィールド
パスワードフィールドにはいくつかの特別な機能があります。
パスワード生成
Terraformプラグインを使用して作成されたレコードには、パスワードが自動的に生成されます。 プラグインでパスワードを生成するには、パスワードにvalueフィールドを指定せず、代わりにgenerate = "True"を使用します
パスワード生成は、complexityフィールドを使用して、指定した長さのパスワードを生成するように設定できます。
また、パスワードフィールドには、enforce_generationという設定があります。これがtrueの場合、パスワードの生成のみを可能にし、ユーザーによるパスワード設定はできないようにKeeperボルトに強制適用します。
例
認証情報の読み取り
この例では、Keeperシークレットマネージャーをプロビジョニングして、ログインタイプのデータソースを読み取り、データソースの各フィールドにアクセスします。
Keeperのレコードを作成
その他の例については、ソースコードのexamplesフォルダをご参照ください。
最適化
secretsmanager_records データソースを使用すると、1回のAPIコールで複数のKeeperシークレットマネージャーのレコードを取得でき、多数のシークレットを扱う場合でもAPIリクエストの回数を大幅に減らし、パフォーマンスを向上させることができます。この機能は、数十または数百のシークレットを取得する必要がある場合に特に有効で、各レコードごとに個別のAPIコールを行う代わりに、リクエストをまとめて処理します。
最終更新

