web-dev-qa-db-ja.com

AWS認証情報を個人のマシンに安全に保存する

AWS認証情報を個人のマシンに安全に保存するにはどうすればよいですか?

詳細に:

私たちのチームの全員が、管理タスクを実行するためにAWSセキュリティ認証情報を必要としています(認証情報は役割によって分けられています)。これらの資格情報は通常、ディスク上のいくつかの構成ファイルにプレーンテキストで格納されます。これは非常に安全ではないと思います。特に、資格情報がチームメンバーに分散され、最終的にはバックアップされることを考えると.

私はこれらの資格情報を暗号化された形式で保存することを強く望みます(たとえば、sshキーに似ています)。自動化する方法はありますか?または、たとえばopensslを使用してデータを暗号化するbashスクリプトをハックアップする必要がありますか?

EC2インスタンスの資格情報を保護する方法については、Webに多くの情報があります。これもあります Amazon IAMロール機能 ですが、EC2にのみ適用されます。

10
arnuschky

https://github.com/realestate-com-au/credulous 調査する価値があるかもしれません。プロジェクトの説明から:

credulousは、AWS(IAM)認証情報を安全に管理するコマンドラインツールです 。目的は、ユーザーの公開SSHキーを使用して資格情報を暗号化し、対応するprivateを持つユーザーのみがSSHキーは、それらを表示して使用できます。さらに、このツールを使用すると、ユーザーは現在のワークフローを中断することなく、現在の資格情報を簡単にローテーションできます。

http://techblog.realestate.com.au/protecting-your-aws-keys-with-credulous/ に紹介ブログの記事があります。

4
mvermaes

すばらしい質問です。回答者によっては、いくつかのルートが考えられます。私たちが使用するものの例を挙げましょう。

  1. ユーザー(開発者、インフラストラクチャ、セキュリティ、監査など)に基づいてIAMロールを作成-ポリシーをカスタマイズして、ユーザーアクセスに基づいて特定のアクションを許可または拒否します。

例:管理者にすべてのec2アクションを許可します。または、開発者などのタグまたはサブネットに基づくアクセスのみを許可します。

  1. 特定のIAMロールを使用してec2 Linuxインスタンスを起動します。特定の役割またはユーザーごとにインスタンスを起動します(必要性、予算などに応じてインスタンスのサイズ/タイプを調整します)

  2. 特定のサブネットまたは個別のIPのいずれかのみを許可するように各インスタンスのセキュリティグループを構成して、SSHへのトラフィックの進入をロックダウンできるようにします。

  3. SSHのカスタムユーザー/パスワードを設定するか、ドメインに参加します。

  4. 各ユーザーにLinuxインスタンスへのログオンまたはSSHを割り当てて、役割またはユーザーアクセスを割り当てます。

  5. APIキーとアクセスがインスタンスのIAMロール自体から継承されるようになったため、ユーザーキーを保存する必要がなくなりました。セキュリティグループをロックダウンして、Linuxボックスの特定のユーザーにのみアクセスを許可するようにしてください。ユーザーは、AWS APIを使用してスクリプトを記述し、通常どおりAPIツール機能を使用できる必要があります。

私たちはこの方法を約1年使用しており、リースアクセス時間などの追加のセキュリティ調整がAWS HSMに組み込まれており、うまく機能します。

これがあなたや他の誰かの役に立つことを願っています。

4
Scott Moore