AWS Service Catalog TagOption Libraryを使用して、プロビジョニングされた製品に自動的にタグを設定する
AWS SOAの出題範囲の1つである、デプロイ、プロビジョニング、およびオートメーションに関する内容です。
Service Catalog TagOption Libraryを使用すると、Service Catalogでプロビジョニングされた製品のタグを管理できます。
管理者がプロビジョニングされた製品のタグを簡単に管理できるように、Service Catalog TagOption はライブラリを提供しています。A TagOption は、Service Catalog で管理されるキーと値のペアです。これはAWSのタグではありませんが、に基づいてAWSのタグを作成するためのテンプレートとして機能します TagOption。
AWS Service Catalog TagOption 図書館
本ページでは、Service Catalog TagOption Libraryを使用して、Service Catalogでプロビジョニングされた製品に、自動的にタグを設定することを目指します。
構築する環境
構築する環境は以下のページの内容とほとんど同様です。
変更点はTagOptionに関する設定です。
ポートフォリオおよび製品にそれぞれTagOptionを設定します。
CloudFormationテンプレートファイル
上記の構成をCloudFormationで構築します。
以下のURLにCloudFormationテンプレートを配置しています。
https://github.com/awstut-an-r/awstut-soa/tree/main/03/006
テンプレートファイルのポイント解説
今回はService Catalog TagOption Libraryに関する内容を中心に取り上げます。
Service Catalogに関する基本的な事項については、以下のページをご確認ください。
TagOption
Resources:
TagOption1:
Type: AWS::ServiceCatalog::TagOption
Properties:
Active: true
Key: tag1
Value: true
TagOption2:
Type: AWS::ServiceCatalog::TagOption
Properties:
Active: true
Key: tag2
Value: true
Code language: YAML (yaml)
2つのTagOptionを作成します。
それぞれポートフォリオと製品用です。
ポートフォリオ用のTagOptionは以下の通りに設定します。
- タグ名:tag1
- タグの値:true
製品用のTagOptionは以下の通りに設定します。
- タグ名:tag2
- タグの値:true
以下の2リソースを定義して、TagOptionをポートフォリオ・製品に関連付けます。
Resources:
TagOptionAssociation1:
Type: AWS::ServiceCatalog::TagOptionAssociation
Properties:
ResourceId: !Ref Portfolio
TagOptionId: !Ref TagOption1
TagOptionAssociation2:
Type: AWS::ServiceCatalog::TagOptionAssociation
Properties:
ResourceId: !Ref CloudFormationProduct
TagOptionId: !Ref TagOption2
Code language: YAML (yaml)
環境構築
CloudFormationを使用して、本環境を構築し、実際の挙動を確認します。
CloudFormationスタックを作成し、スタック内のリソースを確認する
CloudFormationスタックを作成します。
スタックの作成および各スタックの確認方法については、以下のページをご確認ください。
なお今回のCloudFormationスタックを作成する際のコマンドのパラメータは以下となります。
$ aws cloudformation create-stack \
--stack-name soa-03-006 \
--template-url [s3-bucket-url]/soa-03-006.yaml \
--capabilities CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND
Code language: Bash (bash)
各スタックのリソースを確認した結果、今回作成された主要リソースの情報は以下の通りです。
- IAMユーザ:soa-03-006-User
- IAMグループ:soa-03-006-Endusers
- ポートフォリオ:Engineering Tools
- 製品:Linux Desktop
- Service Catalog用IAMロール:soa-03-006-IAMStack-1WYETO3-LinuxDesktopLaunchRole-1RA1FLM5ZIOV6
AWSマネージメントコンソールから各種リソースを確認します。
ポートフォリオのTagOptionsを確認します。
確かに2つのタグ情報が確認できます。
ポートフォリオ用と、製品用のタグ情報です。
製品のTagOptionsも確認します。
こちらでも2つのタグ情報が確認できます。
動作確認
準備が整いましたので、IAMユーザ(soa-03-006-User)でAWSマネージメントコンソールにサインイン後、製品を起動します。
Manage tagの項目を見ると、2つのタグが必須として指定されていることがわかります。
つまりポートフォリオや製品にTagOptionを設定することによって、プロビジョニングされた製品に、自動的にタグを付与することができるということです。
最後にプロビジョニングされた製品である2つのリソース(EC2, セキュリティグループ)を確認します。
確かに2リソースに対して、2つのタグが設定されていることがわかります。
まとめ
Service Catalog TagOption Libraryを使用して、Service Catalogでプロビジョニングされた製品に、自動的にタグを設定する方法を確認しました。