Keeper Secrets Manager を利用すると、Keeper Password Manager で保存する秘密情報を、APIを介して他のプログラムから利用できるようになります。 Keeper Secrets Manager は Keeper Password Manager の追加機能としてご利用いただけます。
Keeper Secrets Managerと aws-credential-processを組み合わせて、AWS CLIへの認証情報の提供がサポートできます。ここでは、aws-credential-process を利用して AWS CLI の認証情報を Keeper Secrets Manager から提供する方法をご説明いたします。
利用開始手順
aws-credential-process を利用するまでには、おおよそこれらのことを行います。
- Keeper Secrets Manager の利用開始手続き。
- AWSのIAMユーザアクセスキーを登録するための「カスタムの記録」の設定。
- Keeper Password Manager にて、利用するAWSのIAMユーザアクセスキーを記録する。
- Linuxなどで Keeper Secrets Manager CLI と aws-credential-process をインストールする。
- Keeper Secrets Managerからワンタイムトークンを発行し、Keeper Secrets Manager CLI を介してJSON形式で保存。
- AWS Client SDKから aws-credential-process を利用するように変更。
Keeper Secrets Manager での設定と利用開始
Keeper Secrets Manager は https://docs.keeper.io/secrets-manager-jp/secrets-manager/quick-start-guide にあるクイックスタートガイドのとおりに進めると開始できます。
もしKeeperのウェブボルト画面の左側メニューに「シークレットマネージャ」が表示されていない場合はお申し込みなどが必要です。本ページ右上の「リクエストを送信」ボタンから弊社営業担当へご連絡ください。
おおよそ、これらのことを行います。
- 共有フォルダの作成: Keeper Secrets Manager で利用可能にする記録を保管するための共有フォルダを、Keeper Password Manager で作成します。
- アプリケーションの登録: Secrets Manager で記録を取得するアプリーケーションの登録をします。アプリケーション名、利用する共有フォルダ、読み書きなどの権限、を設定します。
- クライアントデバイスの作成: Secrets Managerにアクセスするクライアントを登録し、認証情報などを渡すためのワンタイムトークンを発行します。
ワンタイムトークンは、後ほどの Keeper Secrets Manager CLI の ksm コマンドで利用します。
AWSのIAMユーザアクセスキー の カスタム記録タイプ と 記録の作成
AWSのIAMユーザアクセスキーを保存するためには、まずはカスタムの記録タイプを準備します。
Web ボルトの右側の「カスタムの記録タイプ」を選び、IAMユーザアクセスキーのためのタイプを作成します。
フィールドのタイプでは、次の2つを作ってください。
- フィールドタイプ=ログイン フィールド名=Access Key ID
- フィールドタイプ=パスワード フィールド名= Secret Access Key
カスタム記録タイプができましたら、このカスタム記録タイプを使って、AWSのIAMユーザアクセスキーが書かれた 記録 を作ってください。
Access Key ID と Secret Access Key には、AWSから発行されたIAMユーザアクセスキーのAccess Keyと secret の値を入力してください。
作成した記録は、Keeper Secrets Manager のクイックスタートガイドの手順で指定した共有フォルダに入れてください。
Keeper Secrets Manager CLI のインストール
Keeper Secrets Manager CLIをインストールして利用するには、おおよそ下記のような手順を行います。
- Keeper Secrets Manager CLI の ksmコマンドをインストールします。Python3 の pip3 でインストールできます。pip3の利用開始は https://packaging.python.org/ja/latest/tutorials/installing-packages/ などをご参照ください。
- Keeper Secrets Managerのクライアント登録で発行した、ワンタイムアクセストークン を使って認証情報を登録します。
実行するコマンドは下記のようなものになります。
# Keeper Secres Manager CLI のインストール
pip3 install keeper-secrets-manager-cli
cd $HOME
mkdir ksm
cd $HOME/ksm
# ksm コマンドでワンタイムアクセストークンから認証情報を含んだ設定ファイル ./keeper.ini を作成
ksm profile init --token '(ワンタイムアクセストークンの文字列)'
# 参照可能なSecretを表示
ksm --ini-file ./keeper.ini secret list
最後の行の ksm secret list
で、AWS SDKの認証情報を保存した記録のUIDを調べてください。
aws-credential-processのインストール
Keeper Secrets Manager CLI のインストールと設定がおわりましたら、aws-credential-process の準備にお進みください。
aws-credential-process は https://github.com/Keeper-Security/aws-credential-process/releases から、ご利用環境に合わせてたものをダウンロードしてください。ダウンロードしたファイルはパーミッションの調整などを行って、任意のディレクトリにおいてください。
cd $HOME
mkdir ksm
cd $HOME/ksm
curl -L https://github.com/Keeper-Security/aws-credential-process/releases/download/v0.1.0/keeper-aws-credential-process-v0.1.0_linux_amd64 -o keeper-aws-credential-process
chmod 755 keeper-aws-credential-process
次に、Keeper Secretes Manager のアクセスキーなどの設定情報を aws-credential-process が読み取れるJSONの形式に変換します。ksmコマンドはJSONをBase64でEncodeした状態で出力するため、これをDecodeしてJSONファイルに書き出します。作成するJSONのファイルは、ホームディレクトリ内の ~/.config/keeper/aws-credential-process.json
に保存してください。
mkdir -p ~/.config/keeper
ksm --ini-file=keeper.ini profile export --file-format json | base64 -d > ~/.config/keeper/aws-credential-process.json
動作確認で、aws-credential-process を動かしてみます。先にksm secret list
コマンドで調べた記録のUIDを指定して実行します。
~/ksm/keeper-aws-credential-process -uid XXXXXXXXXXXXXXXXXXXXXX
AccessKeyID と SecretAccessKey を含んだJSONが出力されれば、うまく動いています。
{"Version":1,"AccessKeyId":"AKIA0123456789abcdef","SecretAccessKey":"XXXXXX"}
AWS CLI の設定ファイルに登録
AWS CLI で認証情報などを記録する ~/.aws/credentials
に、aws-credential-process から認証情報を取り出すように書き換えます。
Profile名 default に適用する場合には、~/.aws/credentials
は下記のようになります。
[default]
credential_process = /home/username/ksm/keeper-aws-credential-process --uid XXXXXXXXXXXXXXXXXXXXXX
登録ができましたら、aws s3 ls などのコマンドを実行して、IAMユーザアクセスキーを使った操作が行えるか確認してください。
aws s3 ls