IAM Identity Center の許可セットは「管理アカウント用」と「それ以外用」で分けて使おう

2023.03.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWSのマルチアカウント管理で役立つノウハウ、 [マルチアカウントTIPS] をお届けします。

今回は AWS IAM Identity Center の許可セットに関する小ネタです。 内容はタイトルのとおりです。

そもそも許可セットって何?

AWS IAM Identity Center の 許可セット(Permission Set)AWSアカウントへのアクセス権(など)を定義するリソース です。 もともとは "アクセス権限セット" と呼ばれていました。

IAM Identity Center の割り当て(Assignment)に必要な1パラメータとなります。

img

なんで分けたほうが良いの?

一言でいうと [管理アカウントへ割り当てている許可セット] が委任先アカウントで更新できなくなる からです。

もう少し詳細

以下アップデートから、IAM Identity Center の委任管理が可能になっています。

ただ、委任先アカウントでできることには一部制限があります。 いわゆる 「管理アカウントへのアクセス権限を変えうるコト」 はできなくなります。

※制限の詳細は以下ブログやドキュメントを参照ください。

なぜ更新できないようにしている?

なぜ更新できないようにしているのか。たぶんこんな感じ(↓)だと思います。

  • 管理アカウントはいわゆる特権的なAWSアカウント
  • その「特権的なAWSアカウントへのアクセス権限」をメンバーアカウントから変えられてしまうのは "マズい"

例えば、もし更新を許してしまうと、 「今まで管理アカウントへ AdministratorAccess でアクセスしていたけど、いつの間にか ReadOnlyAccess 権限でしかアクセスできなくなった!」 みたいなことを委任先アカウントから起こせるようになります。

それは "マズい" ので制限しているのでしょう。

確かめる

「管理アカウントへの割り当てが "無い" 許可セット」を更新する

以下許可セットを委任先アカウントで更新します。

img

以下のように、特に問題なく更新できましたね。

img

「管理アカウントへの割り当てが "有る" 許可セット」ではどう見えるか

以下のように、そもそも「編集」することができなくなっていますね。

img

IaC(CloudFormatino や Terraform など)管理している場合は更新時にエラーになります。 「管理アカウント用の許可セット」は管理アカウント上で、 「メンバーアカウント用の許可セット」は委任先アカウント上で管理するのが良いでしょう。

おわりに

以上、 IAM Identity Center 設計の 1TIPS を書いてみました。

マルチアカウント環境下ではユーザー・アクセスの集中管理が課題によく挙がります。 IAM Identity Center は課題解決に役立つ便利サービスなので、ぜひ使っていきたいですね。

参考