AWS認証情報を安全に共有する
使用後に期限切れとなる暗号化リンクで、AWSアクセスキーIDとシークレットアクセスキーを送ろう。
問題
AWS認証情報はクラウドインフラ、請求、データストレージへのアクセスを付与する。SlackやメールにペーストされたアクセスキーはBOTスキャナーに定期的に収集されている。たった一対のAWSキーが露出しただけで、数分以内に不正なリソース使用、データ流出、または多大な料金が発生する可能性がある。
Vaulted のサポート内容
VaultedはブラウザでAWSACCSESS鍵をAES-256-GCMで暗号化し、自己消滅リンクを生成する。暗号化に使われた鍵はURLフラグメントに埋め込まれており、サーバーには到達しない。リンクが閲覧されると期限切れとなり、メッセージログに認証情報の痕跡は残らない。
手順
- AWSアクセスキーIDとシークレットアクセスキーをVaultedに貼り付ける
- 1回閲覧制限と短い有効期限を設定する
- クラウドアクセスが必要なエンジニアとリンクを共有する
- 相手が認証情報を取得し、リンクは恒久的に消滅する
ターミナルからAWS認証情報を共有する
Vaulted CLIを使えばスクリプトやCI/CDでAWSキーを簡単に共有できる: npx vaulted-cli "AKIAIOSFODNN7EXAMPLE:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" --views 1 --expires 1h。CLIはWebアプリと同じAES-256-GCM暗号化を使用する。npmでインストール: npm install -g vaulted-cli。
GitHub ActionsでAWS認証情報を共有する
Vaulted GitHub ActionでCI/CDの認証情報共有を自動化できる: uses: vaulted-fyi/share-secret@v1 でAWS認証情報をシークレットinputとして設定する。エンドツーエンド暗号化、自己消滅リンク――ワークフローログに平文は残らない。GitHub Marketplaceで公開中。