$30 off During Our Annual Pro Sale. View Details »

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

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. aws-vault を使った
    セキュアなアクセスキー管理
    AWS Startup Tech Meetup 関西 #1
    2022/09/29
    株式会社インゲージ
    永田 兆

    View Slide

  2. 自己紹介
    ● 永田 兆(ながた きざし)
    ● @kizashi1122
    ● 2014年よりインゲージ社(創業メンバー)
    ○ 創業時よりCTO
    ○ Re:lation(次のページ)の開発
    ○ バックエンドやインフラを担当
    2

    View Slide

  3. サービス紹介

    View Slide

  4. aws のアクセスキーの管理
    どうしていますか?
    4

    View Slide

  5. サービス開発とアクセスキー
    ● 本番環境では IAM Role(ECS TaskRoleなど)を使っているためアクセスキー
    を意識することはありません
    ● 開発環境(個人の PC 端末)では、AWS リソースにアクセスする事情がある
    場合にはアクセスキーを付与する必要があります
    ○ 付与したアクセスキーは $HOME/.aws/credentials に配置する、など
    5

    View Slide

  6. 今まで
    ● 社員メンバーについては 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

    View Slide

  7. 7
    しかし、永続アクセスキーは情報漏えいの観点からも、
    付与すべきではありません!
    せめてもの対策で https://github.com/rhyeal/aws-rotate-iam-keys をつかって、
    キーのローテーションの自動化はしていました

    View Slide

  8. 方針
    ● 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

    View Slide

  9. コマンド実行例
    ● -- の後ろのコマンドに AWS_ACCESS_KEY_ID などの環境変数が引き渡され

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

    View Slide

  10. 結果
    ● 社員に発行していた分の IAM Userは撲滅できた!
    ● $HOME/.aws/credentials も不要になった!
    ● 手間は増えたがセキュアになった!
    10

    View Slide

  11. 11
    インゲージではエンジニアを募集しています!

    View Slide