AWS SSO で委任された管理者アカウントを設定しよう

## 何が嬉しいのか
AWS SSO で委任された管理者として組織のメンバーアカウントを設定できるようになりました 🎉🎉🎉

https://aws.amazon.com/jp/about-aws/whats-new/2022/05/aws-sign-on-administer-delegated-member-account-in-organization/

AWS SSO は組織の管理アカウントに作成されます。そのためこれまではユーザーやグループの割り当てを操作する担当者に管理アカウントへのアクセス権限を与える必要がありました。このアップデートによりそれらの管理作業を組織のメンバーアカウントで実施できるようになります。管理アカウントへのアクセス権限を与える人数を最小限に抑えることが可能になり、最小特権の原則のベストプラクティスを実践しやすくなります。

## 留意点
委任された管理者アカウントでは以下のタスクを実行できません。

* 管理アカウントのユーザーアクセスの管理
* 管理アカウントでプロビジョニングされたアクセス許可セットの管理
* AWS SSO の有効化、設定の削除
* 委任された管理者アカウントの登録、解除

特に組織の管理アカウントに割り当てられたアクセス許可セットはメンバーアカウントへの割り当てに使用できない点について注意が必要です。そのためドキュメントでは管理アカウントのアクセスでのみ使用するアクセス許可セットの作成がベストプラクティスとして推奨されています。もし管理アカウントとメンバーアカウントで共用しているアクセス許可セットがある場合は事前に対応しておくことをおすすめします。

https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html

> * **Create permission sets for use only in the management account** – This makes it easier to administer permission sets tailored just for users accessing your management account and helps to differentiate them from permission sets managed by your delegated administrator account.

## やってみる
個人アカウントで検証したため、ID ソースは AWS SSO です。 (IdP と連携していません)
AWS SSO は Control Tower 経由でプロビジョニングされたものを利用しています。


### 委任された管理者の設定
管理アカウントで AWS SSO コンソールの設定画面を開きます。管理タブを開くと、委任された管理者を登録できるようになっています。アカウントを登録をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/b2ed951c-5f5f-c8ab-1ab6-32fbf6ba3e4b.png)


委任された管理者に任命するメンバーアカウントを選択します。アカウントが最小限の 3 つしかなかったので、ここでは Audit アカウントを指定して、アカウントを登録しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/0e04f358-81c0-4c06-c455-3392086a653b.png)

指定したメンバーアカウントが委任管理者として登録されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/402f75c4-ae60-a9e9-8544-e5c4c60d67e3.png)

### 委任された管理者アカウントによる操作

委任された管理者アカウントで AWS SSO の画面を開くと見慣れたダッシュボードにアクセスできます。AWS SSO の設定を開くと、設定の削除や委任された管理者の操作ができないため、管理タブ自体が表示されません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/d4c51571-bdc9-3bfa-0883-e754bd0da4c4.png)

委任された管理者アカウントは管理アカウントのユーザーアクセスを制御できません。管理アカウントをクリックすると詳細を表示するアクセス許可がありません というメッセージが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/de8589b1-2b80-9afe-e8df-342c62621066.png)

同様にユーザーまたはグループの割り当ても禁止されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/059a10fc-702a-dfd9-367c-55ec606562ea.png)

管理アカウントにプロビジョニングされているアクセス許可セットは操作できません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/e5a760b5-3e0a-220d-b091-5088d3142aaa.png)

もちろん新しいアクセス許可セットの作成や編集は問題なくできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/41dd5cbe-7d5b-61d7-96b9-cf5f6a42d128.png)

繰り返しになりますが、管理アカウントにプロビジョニングされているアクセス許可セットは他の AWS アカウントに対する割り当てに使用できない点についてご注意ください。

管理アカウントに対する割り当てには専用のアクセス許可セットを使用するようにします。管理アカウントとメンバーアカウントで共用しているアクセス許可セットがある場合は事前に対応しておくことをおすすめします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/b0c60118-526a-2824-1604-eb8556e3f97a.png)

管理アカウントにプロビジョニングされていないアクセス許可セットの割り当ては可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/eddce7b4-7321-c57c-bdf3-75120a587ec7.png)

ちなみに委任された管理者アカウント以外のメンバーアカウントから AWS SSO にアクセスすると、このメンバーアカウントから AWS SSO を管理することはできません というメッセージが表示されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/9597df21-b48a-ac67-0b48-0db595c18d50.png)

## まとめ
* AWS SSO の委任された管理者アカウントを設定することで、組織の管理アカウントに対するアクセス権限を最小化できる
* 委任された管理者アカウントは管理アカウントに対する操作はできない
* 管理アカウントのアクセスには専用のアクセス許可セットを作成し、適用する

## 参考
https://aws.amazon.com/jp/blogs/security/getting-started-with-aws-sso-delegated-administration/

簡単ですが以上です。
参考になれば幸いです。