AWS Organizations入門 SCPを使ってみた
やりたいこと
・2つの既存AWSアカウントに対して、AWS OrganizationsのSCPを使って管理できるようにしたい。
・OUに属するアカウントは、EC2サービスアクションのみ許可。つまりEC2以外の他サービスは触れないようにしたい。
やってみる
1. AWS Organizationsを起動
ルートアカウント(管理アカウント)で、AWS Organizationsを作成する。

構成が表示される。

2. OUを作成
Rootにチェックを入れて、アクションから組織単位>新規作成を選択する。

OU名をつけて作成ボタンぽち。

いざOU設計することになった場合、どのように考えればいいかな~と思っていたところ、以下が参考になりそうでした。
AWS Organizationsの設計に必須なOU設計のベストプラクティスを学ぶ | DevelopersIO
作成すると構成が表示される。

3. 別のAWSアカウントをOUに追加

今回は既存アカウントを追加。
まずは、ルートアカウント側のメールアドレスに認証メールを送信。

認証後、やっとOUに追加したいアカウントに招待メールを送信。

プロセスを完了してねとあるので、OUに追加したいアカウントにログインします。

OUに追加したいアカウントにログイン後、Organizations>招待にいくと、
招待を承認するか拒否するか選択する画面が表示されたので、承認するをぽち。

管理アカウントにログインして確認すると、OUに追加したいアカウントが見えるようになりました。

OUに参加させるため、対象アカウントにチェックを入れ、アクション>移動をぽち。

移動先にチェックを入れて、「AWSアカウントを移動」をぽち

OUに参加させることができました。

4.SCPを有効化
左ペインからポリシーを選択すると、デフォルトでは全ポリシー設定が無効になっているので、有効化します。


有効化直後は「FullAWSAccess」が存在します。ポリシー名をクリックして、もう少し確認します。

アタッチ先を見ると、デフォルトは全OUにアタッチされていました。
SCPを作成してアタッチするだけでは、この「FullAWSAccess」が効果を発揮してしまうため、後ほど「FullAWSAccess」はデタッチします。

ちなみに、SCP継承の詳細については、以下がとてもわかりやすかったです。
[AWS Organizations] SCP(サービスコントロールポリシー)の継承の仕組みを学ぼう | DevelopersIO
5.SCPを作成
試しに、EC2アクションのみ許可するポリシーを作成しました。

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Action": [
"ec2:*"
],
"Resource": [
"*"
]
}
]
}
6.SCPをOUにアタッチ
作成したポリシーにチェックを入れて、アクション>ポリシーのアタッチをぽち。

アタッチ対象を選択するよう求められるので、
対象OUにチェックを入れて「ポリシーのアタッチ」をぽち。

ポリシー画面で、ターゲットタブを確認するとアタッチしたOUが確認できました。

7.SCP「FullAWSAccess」をデタッチ
ポリシー画面から「FullAWSAccess」を選択しデタッチさせたいOUにチェックを入れて「デタッチ」をぽち。

「デタッチ」をぽち。

「FullAWSAccess」のターゲットから、選択したOUが表示されなくなったので、動作を確認します。
8.動作確認
OUに参加させたアカウントにログインします。
EC2画面は表示できますが、一例でS3画面は表示許可がないことが確認できました。
<EC2画面>

<S3画面>

以上!
参考リンク
AWS OrganizationsのSCP(サービスコントロールポリシー)を理解する | DevelopersIO