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

AWSマルチアカウント管理 / ODC2021 Online

AWSマルチアカウント管理 / ODC2021 Online

Open Developers Conference 2021 Online
https://event.ospn.jp/odc2021-online/

生産性向上チームって何をしてるの?〜社内の開発生産性を上げる組織横断の取り組み〜
2021.08.28 15:00-15:45
https://event.ospn.jp/odc2021-online/session/376878

2fe6800486cb1d45bb6316d04f40a73e?s=128

Hideki Igarashi

August 24, 2021
Tweet

Transcript

  1. サイボウズ株式会社 ⽣産性向上チーム AWSマルチアカウント管理 ⽣産性向上チームって何をしてるの?〜社内の開発⽣産性を上げる組織横断の取り組み〜 Open Developers Conference 2021 Online

  2. 五⼗嵐 英樹 Hideki Igarashi 2019年2⽉ サイボウズ中途⼊社 ⽣産性向上チームにジョイン ⼊社前はSIer、Web系の会社でアプリケーション開発の 傍らでインフラやCIの整備などの改善活動 @ganta0087

  3. AWSの利⽤⽤途

  4. 4 • プロダクション・ステージング環境 • 社内向けサービス⽤途 • 開発⽀援 (CI⽤のテスト環境、テスト並列化など) 社内でのAWSの利⽤⽤途

  5. AWSを利⽤する⽬的 5 社内で便利なパブリッククラウドを活⽤して⽣産性を⾼めたい 社員が⼿軽で安全にAWSを利⽤できるようにしたい

  6. ユーザー管理の課題

  7. アカウントごとのユーザー作成は⼤変 • 管理やセキュリティ上、⽤途ごとに AWSアカウントを分けたい • 新規登録時・退職時に各アカウントの ユーザーの設定が必要 • 特に退職時は対応漏れを防ぎたい •

    複数アカウントを利⽤するユーザーは パスワード管理が⼤変 7 AWS Account AWS Account
  8. マルチアカウント管理の 
 しくみづくり

  9. Azure ADによるシングルサインオン • 会社の標準のIdPがAzure AD • 単純にシングルサインオンをするだけではなくAWSアカウントごと の権限設定のしくみが必要 • マネジメントコンソールだけでなくCLIでの利⽤も考慮

    9
  10. 認証⽤AWSアカウントを設ける 10 Azure AD 認証⽤アカウント SSO⽤ロール ログイン SSO Azure ADで認証⽤アカウントに

    SSOできるよう設定 認証⽤アカウント上のリソース操作は 何もできないようにポリシーを定義
  11. 認証⽤アカウントを経由して切り替え 11 Azure AD 認証⽤アカウント SSO⽤ロール Account A AdministratorRole Account

    B AdministratorRole DeveloperRole Switch Roleを使って各AWSアカウ ント上のロールに切り替える
  12. アカウント切替時の権限設定のしくみ 12 Azure AD 認証⽤アカウント SSO⽤ロール Account B AdministratorRole Account

    A AdministratorRole DeveloperRole 誰がどのアカウントのロールに 切り替えてよいかを管理 CircleCI Server レコード取得 定期的にポリシーを更新
  13. CLIでもシングルサインオンするには? 13 Azure ADの ログインフォーム SAMLレスポンス AWS Management Console Azure

    ADの認証を通過するにはWeb のログインフォームの操作が必要 AWS API (sts:AssumeRoleWithSAML) クレデンシャル このクレデンシャルがあれば認証⽤ AWSアカウントにAPIアクセスが可能 通常はこちらにリダイレクトされる
  14. CLI⽤のシングルサインオンツールを開発 このクレデンシャルの取得の処理を⼿動で⾏うのは⾮現実的 ⇒⾃動化するOSSを開発 https://github.com/cybozu/assam 14 Azure AD SAMLレスポンス AWS API

    クレデンシャル assam ~/.aws/credentials AWS CLI AWS SDK ログイン 実⾏ Chrome起動 クレデンシャル保存
  15. SSO後は公式のしくみでアカウント切替 クレデンシャルを取得してしまえばAWS CLIのIAMロール切り替えの しくみを使って⽬的のAWSアカウントのロールに切り替えればよい https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-con fi gure-role.html 15 [profile account-a]

    role_arn = arn:aws:iam:1234567890:role/ExampleRole source_profile = default ~/.aws/con fi g AWS_PROFILE環境変数にプロファイル名を設定しておくことで 
 ⾃動的にrole_arnに設定したロールに切り替えることができる (AWS SDKの場合はAWS_SDK_LOAD_CONFIG=trueも設定しておく)
  16. 運⽤

  17. 17 • しくみ作りだけでなくもちろんドキュメント整備も • kintoneアプリでAWSアカウント作成申請のフローを作成 • AWSアカウントの作成単位を整理 • グルーピング(Organization Unit)をして管理

    • 作成申請が来たら定形作業ですぐに対応できるように • ルートユーザーの初期設定時に物理セキュリティキーの設定なども しているため完全⾃動化は難しい 運⽤が回るように
  18. 運⽤開始後 • 勉強会を開催したり開発⽀援時にAWS環境を活⽤して認知向上 • Transit Gateway + VPNで社内ネットワークとの接続も提供 • AWS⾃体の相談も⽣産性向上チームに来るようになった

    • 現在シングルサインオンのしくみで40個のAWSアカウントが運⽤中 18
  19. 安全性と利便性を⾼めて ⽣産性向上