はじめに
先日、AWS Organizationsの登録、アカウントの招待、組織単位(Organizational Unit)の作成をしてみました。そのときの備忘録は下記の記事を参照ください。
今回はその続きで、サービスコントロールポリシー(以降、SCPと表記)の設定テストをしてみました。SCPは、全ての機能が有効になっている組織でのみ使用することが可能です。一括請求機能のみを有効にしている場合には使用できないとのことなので、その点はご注意を。以下にSCPの設定テストしたときのメモをまとめました。
SCPの有効化
SCPの設定テストをするために、まずはSCPを有効化します。有効化するための手順は下記の通りです。
-
AWS Organizations画面の左側にあるメニューにおいて、ポリシーを選択し、サポートされているポリシー一覧を開きます。
上記画面に記載されている「サービスコントロールポリシー」をクリックします。 -
下記の画面が表示されるので、「サービスコントロールポリシーを有効にする」ボタンをクリックします。
すると、下記の「FullAWSAccess」という名前のSCPが表示されます。管理アカウントを含む全ての組織に対して有効なポリシーとなっています。
SCPのテスト準備
今回は、特定の組織単位(Organizational Unit)に対してのみ有効となるSCPを作成し、SCPの動作確認テストを行います。テストに向けて下記の準備を実施します。
- 組織に招待したアカウントを組織単位(TestGroup)に移動する。
- テスト用の簡単なSCPを定義する。
1.組織に招待したアカウントの組織単位(TestGroup)への移動作業
-
AWS OrganizationsのAWSアカウント画面上で、移動する対象のアカウントのチェックボックスにチェックをいれた後、アクションメニューを開き、AWSアカウントの下にある「移動」を押し下げします。
2.テスト用のSCP定義作成
今回は簡単なSCPとして、「TestGroup配下のアカウントについては、Amazon S3のバケツの新規作成を拒否する」といった内容のものを作成します。
-
ポリシーの記述ですが、簡単なテンプレートが用意されていますので、ActionステートメントやResourceステートメントの中身を埋めていく形になります。今回、Sidステートメントは削除しました。Actionステートメントの中身などについては親切なことに対象サービスやアクセスレベルをメニューから必要項目にチェックを入れれば簡単に中身を埋めることが可能でした。(1回きりの作業であればIaCツール使うより、マネジメントコンソールから作業する方が楽かもしれません。)
-
上記画面を下にスクロールすると下記のようなメニューが表示されます。
「リソースを追加する」や「条件を追加する」で「追加」ボタンを押すことで、様々な設定を追加することが可能です。ちなみに今回は単純に「リソースを追加する」の「追加」ボタンだけ押して、必要項目を選択 or 入力しました。こんなイメージです。
画面を下部にスクロールすると、「ポリシーを作成」ボタンが表示されますので、それをクリックします。
-
作成した「Deny_S3CreateBucket」という名前のSCPが一覧に表示されます。ここで、「アクション」メニューから「ポリシーのアタッチ」を押し下げします。
-
「TestGroup」組織単位のチェックボックスにチェックを入れた後、画面下部にある「ポリシーのアタッチ」ボタンをクリックします。
SCPの効果確認テスト実施
「TestGroup」組織単位に移動したAWSアカウントを使用して、AWSコンソールにログオンした後、Amazon S3のバケツを新規作成してみます。
→「バケットを作成」ボタンをクリック後、見事想定した通りにAmazon S3のバケツ作成が拒否されることを確認できました!
おわりに
今回はAWS Organizationsのサービスコントロールポリシー(SCP)の設定を行い、簡単なSCP定義を作成して稼働確認テストを実施し、その効果を確認することができました。やはりドキュメントやBlackbeltの資料を読んでいるだけよりも実際に手を動かして動作確認をしてみる方が個人的には理解しやすいと思います。AWSのサービスはたくさんありますので、可能な限り今後も様々なサービスのハンズオンを実施してみようと思います。