タグを使用して ECS リソースを分類および管理できます。タグはリソースのクラスを識別し、これにより Resource Access Management (RAM) ポリシーを定義したり、リソースに対してバッチ操作を実行したりできます。たとえば、RAM ポリシーを使用して、特定のタグを持つイメージのみが ECS インスタンスを作成できるように許可できます。これにより、カテゴリベースのリソース操作の制御が可能になります。
セキュリティリスク
タグは、リソースグループよりも柔軟な方法でリソースを分類します。単一のリソースに複数のタグを追加して、リージョン、部門、環境などのディメンションで分類できます。リソースは、ECS 計算リソース、OSS ストレージリソース、VPC ネットワークリソースなどのプロダクト別に表示できますが、タグを使用すると、ユーザー中心の視点からリソースを表示できます。これにより、複数のディメンションでリソースを区別し、これらのタグに基づいてアクセスの制御を実装できます。
ベストプラクティス
ビジネス機能ごとにアクセスポリシーを管理するには、同じビジネスプロパティを持つリソースにタグを追加します。その後、RAM アクセスポシーでこれらのタグを使用して、それらのリソースへのアクセスを制限できます。
たとえば、データベースのデプロイメントに使用される ECS インスタンスのグループを考えてみましょう。これらのインスタンスは、パブリック IP アドレスにアタッチしてはなりません。このルールを適用するには:
1) この ECS インスタンスのグループに、function:database などのタグを追加します。
2) 次のサンプル RAM ポリシーでは、acs:ResourceTag/function:database を使用して Resource 要素を制約します。
{
"Version": "1",
"Statement": [
{
"Effect": "Deny", # 拒否
"Action": [
"ecs:ModifyInstanceNetworkSpec", # インスタンスネットワーク仕様の変更
... ... # 内容は省略
],
"Resource": "acs:ecs:*:*:instance/*", # すべての ECS インスタンス
"Condition": {
"StringEquals": {
"acs:ResourceTag/function:database": ["*"] # function:database タグを持つ
},
"Bool": {
"ecs:AssociatePublicIpAddress": ["true"] # パブリック IP アドレスのアタッチ
}
}
]
}結果: ModifyInstanceNetworkSpec 操作を使用してネットワーク構成を変更するときに、function:database タグを持つ ECS インスタンスにパブリック IP アドレスをアタッチすることはできません。