概要
AWSのタグの値が取りうる情報を限定する方法を簡単にまとめる。
「タグ付けの強制設定」ではないので注意する。
前提
AWS Organizationsというサービスの利用が前提となる。
AWS Organizationsは「EC2」とか「S3」とかと並列するよう(に見える)なAWSアカウント一元管理サービスで、料金はかからない模様。
方法
-
AWS Organizationsを開く。
-
サイドバーの「ポリシー」をクリックし、表示された画面の「タグポリシー」をクリックする。
-
「タグポリシーを有効にする」をクリックする。
-
「ポリシーを作成」をクリックする。
-
ポリシー名を入力し、タグキーのポリシー詳細を決める。今回は「キーIsTestは
true
かfalse
のみ許容」 -
タグキーに
IsTest
と入力する。 -
「タグキーに上記で指定した大文字を使用します。」にチェックを入れる。
-
「このタグキーに聞かされる値を指定します。」にチェックをいれ「値を編集」をクリックする。表示されたポップアップで
true
とfalse
を追加する。 -
「強制するリソースタイプ」の「このタグの非準拠操作を防止します。」のチェックボックスにチェックを入れる。
-
「リソースタイプの指定」をクリックする。
-
「すべて選択」をクリックし、「変更を保存」をクリックする。(これですべてのリソースのタグでポリシーに準拠しているかのチェックが行われる。)
-
下記のようにチェックマークが入っていることを確認し、ポリシーを保存する。
-
タグポリシーの一覧まで戻る。
-
今回作成したポリシーのチェックボックスにチェックをつけ、アクションの「ポリシーをアタッチ」をクリックする。
-
どの組織に今回のポリシーを適応するか確認される。今回は最も上部の組織である「Root」にポリシーを付与してみる。(「〇〇の組織の人なら好き勝手にタグの値を記載していい」訳がないので基本Rootにポリシーをアタッチするで良い気がする。)
-
Rootのチェックボックスにチェックをつけ、「ポリシーのアタッチ」をクリックする。
-
下記のように緑色の帯が出ればアタッチに成功している。
-
本当にポリシーがアタッチされたか確認する。とあるEC2インスタンスのタグを管理の画面を開く。現在は
IsTest
がtrue
に設定されている。これはポリシー通りである。 -
下記のように
IsTest
をx
に変えて保存してみる。 -
下記のようにタグポリシーに違反している旨が出力され、保存する事ができない。
-
タグの内容を強制しているだけでタグの存在そのものは強制していない。なのでIsTestのキーのタグがなくても保存できる。
-
後はプロジェクト名やENV名キーなども取りうる情報を限定するポリシーを設定することで有効活用できそうだ。
参考文献