AWS Secrets Manager

KeeperボルトのシークレットをAWS Secrets Managerと同期

概説

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

機能

  • KeeperボルトのシークレットをAWS Secrets Managerの信頼できる情報源として使用します

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

前提条件

  • Keeper Secrets Managerへのアクセス(詳細は、クイックスタートガイドをご参照ください)

    • KeeperサブスクリプションのSecrets Managerアドオンの有効化

    • Secrets Manager強制ポリシーが有効化されたロールを割り当てられたメンバーシップ

  • シークレットを共有するKeeper Secrets Managerアプリケーション

  • AWS Secrets ManagerのAWSアカウント、およびIAMセキュリティクレデンシャルの作成機能

設定

1.Keeper Secrets Manager CLIを設定

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

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

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

ksm profile init <TOKEN>

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

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

AWSとKSMの同期を使用するには、ボルト全体または同期する個々のキーに対してSecretsManagerReadWriteが有効になっている標準のIAMセキュリティクレデンシャルがAWS Secrets Managerに必要です。\

arn:aws:iam::aws:policy/SecretsManagerReadWrite

アクセスキーの作成については、Amazonの手順書をご参照ください。

3.AWSクレデンシャル記録の作成

KSM CLIでは、シークレットを設定するためにAWSアカウントのクレデンシャルが必要です。 これらのクレデンシャルはKeeperの記録に保存されており、CLIツールからは、Keeper Secrets Managerを使用してアクセスできます。

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

「AWS Access Key ID」 「AWS Secret Access Key」 「AWS Region Name」

(方法1)AWSクレデンシャルのカスタムの記録タイプを作成

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

カスタムの記録タイプを作成するには、Keeperボルトで「カスタムの記録タイプ(Custom Record Types)」タブに移動して、「タイプを作成(Create Type)」をクリックします。 正しいフィールドラベルが設定された伏せ字項目を使用して新しい記録タイプを作成し、「発行(Publish)」をクリックして新しい記録タイプを作成します。

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

この新しい記録が、Secrets Managerアプリケーションに関連付けられた共有フォルダに移動されていることを確認します。

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

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

任意のタイプの新しい記録を作成し、必要なAWSフィールドごとに「伏せ字項目(Hidden Field)」タイプのカスタムフィールドを追加します。 「ラベルの編集(Edit Label)」をクリックして、ラベルを対応するフィールド名に変更します。

どの記録タイプでも有効ですが、「ファイル添付(File Attachment)」の標準記録タイプにはフィールドがないため、カスタムフィールドを追加したときの見た目がすっきりします。

次に、各カスタムフィールドに入力し、「保存(Save)」をクリックして記録を保存します。

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

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

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

--map "VALUE KEY" "KEEPER NOTATION"

VALUE KEYは、AWS Secrets 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表記法を使用したクエリによって参照される記録が、Secrets Managerアプリケーションと共有されている共有フォルダに格納されていることを確認します。

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

同期の実行

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

1.コマンドを構成

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

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

2.ドライランを実行

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

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

3.同期を実行

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

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

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

最終更新