私たちの製品では、DB クレデンシャル、パスワード、API キーなどのすべてのシークレットを安全に保存および管理するシークレット管理ツール (AWS シークレット マネージャー) を実装することにしました。
このようにして、シークレットはコード、データベース、またはアプリケーションのどこにも保存されません。Secrets manager の API にプログラムでアクセスするには、AWS 資格情報 (アクセス キー ID とシークレット アクセス キー) を提供する必要があります。
ここで発生する最大の問題は、この初期信頼 (AWS シークレット マネージャーを認証するための資格情報) をどこに保持するかということです。これはブートストラップの問題です。繰り返しますが、シークレット ストアの外、構成ファイルまたはどこかに何かを維持する必要があります。これが危うくなると、Secret 管理ツールにすべてを格納する意味がなくなると思います。
AWS SDK 開発者ガイドを読んで、AWS 資格情報を保存する標準的な方法がいくつかあることを理解しました。たとえば、環境変数に保存したり、さまざまなプロファイルを使用して資格情報ファイルに保存したり、Amazon EC2 インスタンスの IAM ロールを使用したりします。
アプリケーションを Amazon クラウドで実行/ホストするのではなく、AWS クラウドから AWS シークレット マネージャー サービスを使用したいだけです。したがって、IAM ロールを構成することは、私たちにとって解決策ではない可能性があります。
初期の信頼資格情報を保持するためのベスト プラクティス (または) の最適な場所はありますか?