初めに
とある案件でOrganizationsを使用したセキュリティ関連の統制を行おうとしています。
今回はOrganizationsを使用するうえで障害となった「全ての機能の有効化」について記載したいと思います。
AWS Organizationsとは
AWSアカウントを一元管理することのできるサービス。
AWSアカウントの払い出し、グルーピング、サービスコントロールポリシーの適用による操作権限の適用などをすることができます。
Organizationsの機能セット
Organizationsの機能セットには以下の2つがあります。
今回使用していたOrganizationsでは「一括請求のみ」の使用となっていたため、一括請求以外の機能を使用するためには「全ての機能の有効化」をする必要がありました。
機能セット | 説明 |
---|---|
一括請求のみ | Organizationsの機能のうち、アカウントの払い出しと、払い出したアカウントの請求を1つにまとめる機能のみを使用する機能セット。 |
全ての機能の使用 | Organizationsの全ての機能を使用できる機能セット。 これにより払い出したアカウント全体に対してサービスの利用制限を実施できる「サービスコントロールポリシー」の機能の利用が可能になる。 |
全ての機能の有効化のために必要なこと
全ての機能の有効化のためには、外部から招待したアカウントで承認を行う必要があります。
Organizations配下のAWSアカウントのOrganizationsのコンソール画面で以下のような招待が届いています。
この承認を全ての外部から招待したAWSアカウントで実施しなければなりません。
この承認が完了した後に、管理アカウントで全ての機能の有効化のプロセスを完了させることができるようになります。プロセスの完了を持って全ての機能の有効化が完了します。
承認における注意事項
全ての機能の有効化の承認の際には基本的にAWSコンソールから承認を行うことになると思いますが、その際にIAMの権限には以下が必要になります。
organizations:AcceptHandshake
organizations:DescribeOrganization
organizations:ListHandshakesForAccount
iam:CreateServiceLinkedRole
Organizationsに関する権限は承認とAWSコンソールでOrganizationsの画面を見るために必要な権限となります。
IAMの権限は、この承認がされると「AWSServiceRoleForOrganizations」というIAMのサービスリンクロールが作成されるため、必要な権限となります。
終わりに
AWS Organizationsの「一括請求のみ」から「全ての機能の有効化」の機能セットに変更するのは思うよりもに手間のかかる作業になると思います。
Organizations配下のアカウント数が少なければ大した手間ではないですが、外部招待アカウントが多数存在する場合は大きな手間になる恐れがあると思います。
後から使いたくなった時に各アカウント管理者への周知など結構な手間が発生することになると思うので、Organizationsを使用する際には最初から全ての機能の有効化しておくことをお勧めします。