Upgrade to Pro — share decks privately, control downloads, hide ads and more …

aws-vault を使った セキュアなアクセスキー管理 / Manage AWS Acces...

Kizashi Nagata
September 30, 2022

aws-vault を使った セキュアなアクセスキー管理 / Manage AWS Access Key More Securely By Using aws-vault

2022/09/29
AWS Startup Tech Meetup 関西 #1
発表資料

https://aws-startup-community.connpass.com/event/258486/

Kizashi Nagata

September 30, 2022
Tweet

More Decks by Kizashi Nagata

Other Decks in Technology

Transcript

  1. サービス開発とアクセスキー • 本番環境では IAM Role(ECS TaskRoleなど)を使っているためアクセスキー を意識することはありません • 開発環境(個人の PC

    端末)では、AWS リソースにアクセスする事情がある 場合にはアクセスキーを付与する必要があります ◦ 付与したアクセスキーは $HOME/.aws/credentials に配置する、など 5
  2. 今まで • 社員メンバーについては IAM Identity Center(旧AWS SSO)で管理するよう になった • (にもかかわらず)開発環境用に最低限のポリシーをアタッチした

    IAM User Group を作成して、 • その IAM User Group 内にエンジニア(社員・パートナーともに)ごとに、 IAM User を作成していた(アクセスキーを払い出していた) 6 IAM Policy IAM User Group IAM User IAM User IAM User
  3. 方針 • 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
  4. コマンド実行例 • -- の後ろのコマンドに AWS_ACCESS_KEY_ID などの環境変数が引き渡され る ◦ aws コマンドだけでなく、docker-compose

    や terraform でも使えます • ただし、コマンド実行時に、ブラウザで許可したり(SSO)、MFA パスコー ドを入力したり(STS)は必要 9 $ aws-vault exec relation -- docker-compose up -d