2022/09/29 AWS Startup Tech Meetup 関西 #1 発表資料
https://aws-startup-community.connpass.com/event/258486/
aws-vault を使ったセキュアなアクセスキー管理AWS Startup Tech Meetup 関西 #12022/09/29株式会社インゲージ永田 兆
View Slide
自己紹介● 永田 兆(ながた きざし)● @kizashi1122● 2014年よりインゲージ社(創業メンバー)○ 創業時よりCTO○ Re:lation(次のページ)の開発○ バックエンドやインフラを担当2
サービス紹介
aws のアクセスキーの管理どうしていますか?4
サービス開発とアクセスキー● 本番環境では IAM Role(ECS TaskRoleなど)を使っているためアクセスキーを意識することはありません● 開発環境(個人の PC 端末)では、AWS リソースにアクセスする事情がある場合にはアクセスキーを付与する必要があります○ 付与したアクセスキーは $HOME/.aws/credentials に配置する、など5
今まで● 社員メンバーについては IAM Identity Center(旧AWS SSO)で管理するようになった● (にもかかわらず)開発環境用に最低限のポリシーをアタッチした IAM UserGroup を作成して、● その IAM User Group 内にエンジニア(社員・パートナーともに)ごとに、IAM User を作成していた(アクセスキーを払い出していた)6IAM PolicyIAM UserGroupIAM UserIAM UserIAM User
7しかし、永続アクセスキーは情報漏えいの観点からも、付与すべきではありません!せめてもの対策で https://github.com/rhyeal/aws-rotate-iam-keys をつかって、キーのローテーションの自動化はしていました
方針● aws-vault を使う○ アクセスキーや秘匿情報を .aws/credentials ではなく、OS のキーストアに管理できる Go 製のコマンドラインツール○ brew install --cask aws-vault でインストール可能○ sts/mfa/sso に対応● 社員(IAM Identity Center 管理)○ IAM Identity Center と aws-vault を連携させる○ MFA は IdP 側でおこなっているので AWS 側では設定不要とする● パートナー(IAM Identity Center 管理外)○ IAM User は作成する(し、アクセスキーも発行する)○ MFA 認証後でないと開発者向け IAM Role を引き受けられないというポリシーを設定○ このアクセスキーが漏れても実害がない8
コマンド実行例● -- の後ろのコマンドに AWS_ACCESS_KEY_ID などの環境変数が引き渡される○ aws コマンドだけでなく、docker-compose や terraform でも使えます● ただし、コマンド実行時に、ブラウザで許可したり(SSO)、MFA パスコードを入力したり(STS)は必要9$ aws-vault exec relation -- docker-compose up -d
結果● 社員に発行していた分の IAM Userは撲滅できた!● $HOME/.aws/credentials も不要になった!● 手間は増えたがセキュアになった!10
11インゲージではエンジニアを募集しています!