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

Organizations と Identity Center を Terraform で管理しよう

a2-ito
February 25, 2025
40

Organizations と Identity Center を Terraform で管理しよう

a2-ito

February 25, 2025
Tweet

Transcript

  1. • AWS Organizations を利⽤して AWS アカウントを管理している • Entra ID +

    AWS Identity Center を利⽤して利⽤者のアカウントを払い出している • Terraform を利⽤して AWSインフラ のメンテナンスをしている 背景 4
  2. • Organizations/Identity Center の設定 ◦ AWSアカウントの作成 ◦ ワークフォースユーザ ◦ 所属グループ

    ◦ Permission Sets ◦ グループの割当 • 各アカウントの初期設定 ◦ リソース管理⽤ロール ◦ state 格納⽤バケット ◦ etc Terraform にまかせてみよう 6
  3. ワークフォースユーザ‧グループを作って、Permission Set を割り当てる 7 permission_sets = { "read_only_user" = {

    name = "ReadOnlyAccess" policy_arn = "arn:aws:iam::aws:policy/ReadOnlyAccess" is_managed = true session_duration = "PT8H" } "work_user" = { name = "WorkUserPolicy" is_managed = false session_duration = "PT8H" } } assignments = [ { account_id = local.accounts.hogehoge.account_id group = "workusers" permission_set = " read_only_user" }, { account_id = local.accounts.hogehoge.account_id group = "workusers" permission_set = " work_user" }, ]
  4. • AWS Organizations でアカウントを作成した場合、OrganizationAccountAccessRole とい うロールがあるので何もしなくてもスイッチできる • 最も強い権限なので注意 AWSアカウントを作成し、そのままセットアップをする 8

    provider "aws" { alias = "hogehoge" region = data.aws_region.current.name assume_role { role_arn = "arn:aws:iam::${local.accounts.hogehoge.account_id}:role/OrganizationAccountAccessRole" } }
  5. • Terraform Cloud を利⽤すると、実⾏環境 や state 置き場を任せられる • PR 作成時に

    plan が実⾏され、merge 時に apply が実⾏される • AWS や Terraform の権限や知識を必要とせずID管理ができるようになる HCP Terraform (Terraform Cloud) から plan/apply を実⾏する 9
  6. • Terraform のコードを⼊⼒すると最⼩権限の IAM Policy を出⼒してくれるツール pike* を 試してみた(2024年10⽉頃) •

    都度⼿動でのメンテナンスが必要ということで、結局採⽤に⾄らず ◦ App Runner などの⽐較的新しいサービスに未対応 ◦ 出⼒されたポリシの⼿動分割が必要 余談) pike を使った最⼩権限運⽤ 11 *https://github.com/JamesWoolfenden/pike
  7. • Organizations と Identity Center を Terraform (Cloud) で管理するようにしました •

    作業ミスの低減、⾯倒なポチポチ作業のストレス開放になるはず • 情シスメンバへの運⽤移管やさらなる⾃動化を⽬指します サマリ 12