AWSシークレットマネージャー
KeeperボルトのシークレットをAWSシークレットマネージャーと同期
最終更新
KeeperボルトのシークレットをAWSシークレットマネージャーと同期
最終更新
KeeperシークレットマネージャーCLIツールのsync
コマンドを使用すると、Keeperボルトから目的のAWSシークレットマネージャーアカウントにシークレットをプッシュし、目的の場所にある既存の値を上書きできます。これにより、Keeperボルトが、AWSシークレットマネージャーを利用するAWSのすべてのサービスまたはスクリプトの信頼できる唯一の情報源となります。
KeeperボルトのシークレットをAWSシークレットマネージャーの信頼できる情報源として使用します
AWSの既存のスクリプトとサービスでKeeperボルトのシークレットがシームレスに使用できるようになります
Keeperシークレットマネージャーへのアクセス (詳細は、クイックスタートガイドをご参照ください)
Keeperサブスクリプションのシークレットマネージャーアドオンの有効化
シークレットマネージャー強制ポリシーが有効化されたロールを割り当てられたメンバーシップ
シークレットを共有するKeeperシークレットマネージャーアプリケーション
アプリケーションの作成手順については、クイックスタートガイドをご参照ください
AWSシークレットマネージャーのAWSアカウント、およびIAMセキュリティクレデンシャルの作成機能
KSM CLIがすでにマシンに設定済みの場合は、この手順を省略できます。
KSM CLIツールを設定するには、Keeperシークレットマネージャーのワンタイムアクセストークンを使用してプロファイルを作成する必要があります。
これを行う最も簡単な方法は、次のコマンドを使用してデフォルトのプロファイルを初期化することです。
ksm profile init <TOKEN>
複数のプロファイルの作成およびその他のオプションについては、プロファイルのドキュメントをご参照ください。
AWSとKSMの同期を使用するには、ボルト全体または同期する個々のキーに対してSecretsManagerReadWrite
が有効になっている標準のIAMセキュリティクレデンシャルがAWSシークレットマネージャーに必要です。
arn:aws:iam::aws:policy/SecretsManagerReadWrite
アクセスキーの作成については、Amazonの手順書をご参照ください。
KSM CLIでは、シークレットを設定するためにAWSアカウントのクレデンシャルが必要です。 これらのクレデンシャルはKeeperのレコードに保存されており、CLIツールからは、Keeperシークレットマネージャーを使用してアクセスできます。
クレデンシャルレコードには、以下のラベルを持つレコードフィールドが必要です。
「AWS Access Key ID」
「AWS Secret Access Key」
「AWS Region Name」
必要なフィールドを使用してカスタムのレコードタイプを作成できるため、レコードの作成が簡単かつシンプルになります。
カスタムのレコードタイプを作成するには、Keeperボルトで「カスタムのレコードタイプ (Custom Record Types)」タブに移動して、「タイプを作成 (Create Type)」をクリックします。 正しいフィールドラベルが設定された伏せ字項目を使用して新しいレコードタイプを作成し、「発行 (Publish)」をクリックして新しいレコードタイプを作成します。
後は、AWSクレデンシャルタイプのレコードを新規作成し、対応するフィールドに詳細情報を入力するだけです。
この新しいレコードが、シークレットマネージャーアプリケーションに関連付けられた共有フォルダに移動されていることを確認します。
新しいレコードタイプを作成せずにクレデンシャルレコードを作成するには、必要なフィールドをカスタムフィールドとして標準レコードに追加します。
任意のタイプの新しいレコードを作成し、必要なAWSフィールドごとに「伏せ字項目 (Hidden Field)」タイプのカスタムフィールドを追加します。 「ラベルの編集 (Edit Label)」をクリックして、ラベルを対応するフィールド名に変更します。
どのレコードタイプでも有効ですが、「ファイル添付 (File Attachment)」の標準レコードタイプにはフィールドがないため、カスタムフィールドを追加したときの見た目がすっきりします。
次に、各カスタムフィールドに入力し、「保存 (Save)」をクリックしてレコードを保存します。
KSM CLIのsync
コマンドは、コマンド呼び出しで定義されたマッピングを使用して、設定する値を識別します。コマンドに渡されたマッピングごとに、指定した名前の値にKeeperボルトから所与の値が代入されます。
これらのマッピングは次の形式に従っています。
--map "VALUE KEY" "KEEPER NOTATION"
VALUE KEY
は、AWSシークレットマネージャーで値が割り当てられるキーの名前です。
KEEPER NOTATION
は、キーに設定するKeeperのレコードの値を取得するKeeper表記法を使用したクエリです。
Keeper表記法は、Keeperシークレットマネージャーが特定のレコードの値を識別するために使用するクエリの表記法です。 この表記法は、次の一般的な形式に従います。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
コマンドを使用します。
KSM syncコマンドをAWSタイプと組み合わせます。 以下のような形式になります。
ksm sync --type aws --credentials [UID] --map [...] --map [...]
syncコマンドは、実際に値をプッシュすることも変更を加えることもせずに、AWSシークレットマネージャーの値に加えられるすべての変更を確認するドライランの実行をサポートします。 これを使用して、マッピングクエリが正しく構成されていることを確認します。
ksm sync --type aws --credentials [UID] --map [...] --map [...] --dry-run
準備ができたら、dry-runオプションを指定せずにsyncコマンドを実行します。 これにより、KeeperボルトからAWSシークレットマネージャーに値がプッシュされます
ヒント: --map
の短縮形として、-m
を使用できます
ksm sync --type aws --credentials [UID] -m [...] -m [...]