AWS SSOを委任管理する
こんにちは。AWSのアカウント管理を担当しているnakanowaiです。
弊社ではWebサービスのクラウド基盤としてAWSを利用しており、プロダクトやワークロードによって分割した複数のAWSアカウント上の権限を管理するために、AWS IAM Identity Center(以下、AWS SSO)を利用しています。
2022/5/12に、組織内で委任されたメンバーアカウントからの AWS Single Sign-On の管理 ができるようになりましたので、試してみたいと思います。
AWS SSOとは
AWSには、マルチアカウント管理のためのAWS Organizationsという機能があります。
AWS Organizationsの組織内のアカウントに対するアクセス権限を一元管理することができるのがAWS SSOです。
各AWSアカウントで個別にIAMユーザ・ロール等のアクセス権限を管理する必要なく、AWS SSOの管理者アカウントの一箇所で管理が完結するため非常に便利で安全です。
しかし、権限の管理元である「管理者アカウント」は、AWS Organizationsの管理アカウント(マスターアカウント)である必要がありました。
委任管理のメリット
AWS Organizationsの管理アカウントは、組織内のAWSアカウントの作成・削除や請求情報の一元管理等、非常に強い権限を持っているため、必要最小限の利用とすることがベストプラクティスで推奨されています。
管理アカウントを必要とするタスクにのみ使用する
管理アカウントとそのユーザーおよびロールは、そのアカウントでしか実行できないタスクにのみ使用することをお勧めします。
出典:管理アカウントのベストプラクティス
今回のアップデートによってAWS Organizationsの管理アカウントとは別のアカウントをAWS SSOの「委任管理者アカウント」として利用できるようになったことで、AWS SSOでのアクセス権限の管理業務のためにAWS Organizationsの管理アカウントを使う必要がなくなり、今までより安全にAWS SSOを利用できるようになりました。
委任管理を設定してみる
AWS Security Blog Getting started with AWS SSO delegated administration で解説されている手順に従って設定してみます。
AWS Organizations の管理アカウントのマネジメントコンソールにログインし、AWS SSOの 設定
管理
から 委任された管理者
の アカウントを登録
に進みます。
委任管理者アカウント登録画面で、組織内のアカウントを1つ選択し アカウントを登録
を押します。
以上の操作で、委任管理者アカウントからもAWS SSOを管理できるようになりました。
ちなみに、AWS SSOの実体(AWS SSO インスタンス)やその権限設定が移動するわけではなく、あくまで「委任管理者アカウントからAWS Organizationsの管理アカウント内の AWS SSO を操作できる」という形になります。
Even though your SSO instance must always reside in the management account
出典:Delegated administration
よって、委任管理者アカウントからは「AWS SSO 自体を削除する」等の一部の操作は実行することはできません。委任管理者アカウントに許可されている操作の一覧については下記ドキュメントをご参考ください。
What tasks can be performed in the delegated administrator account
また、AWS Organizationsの管理アカウント上でCloudFormationを使ってAWS SSOの権限設定を構成していた場合には、委任管理者アカウント側の管理に切り替えたとしても、権限設定のCloudFormationスタックはAWS Organizationsの管理アカウント側に残り続けることにも注意が必要です。
さいごに
簡単な操作で、AWS SSOの委任管理者を設定し、AWS Organizationsの管理アカウントの役割を減らすことができました。
AWS SSO以外にも委任管理をサポートしているAWSサービスがありますので、AWS Organizations で使用できる AWS のサービス の 委任管理者をサポート
欄をご参考ください。
今後もAWSのアップデートを確認し、ベストプラクティスに従って安全にクラウドを活用していきたいと思います。
掲載内容は、記事執筆時点の情報をもとにしています。