今日は、AWS組織のセキュリティを高める方法の一つである「ポリシー」という機能の中で、組織・組織単位(OU)内のリソースに対してタグを強制する際に使える①サービスコントロールポリシー(SCP)と ②タグポリシー について書いてみます。
こちらの記事は、
1.そもそもSCP、タグポリシーってなに?
2.SCP、タグポリシーを使ってタグを強制する方法
のテーマで書いていきます。
0. SCPとタグポリシーを有効にしましょう。
まずSCPとタグポリシーを使うために、サービスの有効化が必要です。
AWS Management Consoleの「組織」>「ポリシー」画面より有効化することができます。
青い文字になっている各ポリシーを選択して中に入ると、そのポリシーの詳細確認と有効化・無効化などの操作ができます。
1-1. サービスコントロールポリシー(SCP)とは?
サービスコントロールポリシー(SCP)は、用途によって様々な内容で作成することができます。AWSで提供しているSCPの例を下に貼りますのでご参考ください。
https://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/orgs_manage_policies_scps_examples.html
例えば、AWS Configの設定をユーザーが勝手にいじれないようにする、指定したリソースタイプのみ作成を許可する、AWS Control Towerなどによって作成されたログアーカイブを削除できないようにする、などなど、組織内の各AWSアカウントに対して明らかに禁止にしたいアクションがある場合SCPを設定しコントロールできますのでとても便利だと思います。
1-2. タグポリシーとは?
そもそも「タグ」とは何者なのかご存知でしょうか。
(AWSドキュメント:リソースのタグとは)https://docs.aws.amazon.com/ja_jp/general/latest/gr/aws_tagging.html
↑のAWSドキュメントを見ると理解できると思いますが、タグは簡単に説明しますと、AWSアカウント内の様々なリソースを管理する際、把握・管理しやすくするために付けるラベルみたいなものです。(タグそのものに関しては、また別の記事で詳しく説明いたします。)
ていう「タグ」というものを、組織内で標準化して付けるために存在するものが「タグポリシー」となります。
タグポリシーは、以下のようなケースに対応できます。
- 「Name」というタグは絶対つけてほしい(name、NAMEはだめ)
- EC2 instance, S3 bucket には絶対「Owner」というタグをつけてほしい
- 「Environment」というタグをつけてほしいけど、そのバリューは prod, dev, testの中の1つじゃないとダメ
より詳しいタグポリシーに関する説明は以下のAWSドキュメントをご参照ください。
(AWSドキュメント:タグポリシーとは)https://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/orgs_manage_policies_tag-policies.html
2. SCP、タグポリシーを使ってタグを強制する方法
上までの説明を読むと「え、待って、タグポリシーだけでタグ付けの強制できるんじゃない?なんでSCPも必要?」と思われる方いらっしゃるかと思います。
私も最初そう思い作業を始めましたが、SCPが無いと「タグ付け」自体の強制はできなかったため、この記事を書きました。
タグポリシーは「タグ付け」自体の強制はできません。
ユーザーがタグ付けをするっていう前提で、タグのキーとバリューの値の設定を強制するものがタグポリシーとなります。
(例)EC2インスタンスに「Owner」タグを指定するようタグポリシーを組織にアタッチ
- EC2インスタンスに「OWNER」タグをつけると、Denyされる
- EC2インスタンスに何もタグをつけないと、Denyされない
→ タグ付けできてるかどうかは、タグポリシーによって判断しないため
ですので、タグ付けを強制するには、以下のようなSCPをアタッチする必要があります。
(AWSドキュメント:リソースのタグ付けの SCP の例)https://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/orgs_manage_policies_scps_examples_tagging.html
このSCPをアタッチすることで、ユーザーは特定のタグをつけずにリソースを作成できなくなります。また、その特定のタグを削除できないようにすることもできます。
色々な条件付きでこのようなタグ付け強制のSCPの実装が可能ですので、上記のドキュメントを参考しながらSCPを作成してアタッチしてみましょう。✌('ω'✌ )三
参考URL
- (AWSブログ:Implement AWS resource tagging strategy using AWS Tag Policies and Service Control Policies (SCPs))https://aws.amazon.com/jp/blogs/mt/implement-aws-resource-tagging-strategy-using-aws-tag-policies-and-service-control-policies-scps/