リソースタグを使用した EC2 リソースへのアクセスの制御
EC2 リソースを使用するための許可をユーザーに付与する IAM ポリシーを作成する場合、ポリシーの Condition
要素にタグ情報を含めることで、タグに基づいてアクセスをコントロールできます。これは、属性ベースのアクセス制御 (ABAC) と呼ばれます。ABAC を使用すると、ユーザーが変更、使用、または削除できるリソースをより適切に制御できます。詳細については、AWS の ABAC とはを参照してください。
例えば、インスタンスを終了することをユーザーに許可するが、インスタンスに environment=production
タグが付いている場合はアクションを拒否するポリシーを作成できます。これを行うには、aws:ResourceTag
条件キーを使用し、リソースにアタッチされているタグに基づいてリソースへのアクセスを許可または拒否します。
"StringEquals": { "aws:ResourceTag/environment": "production" }
Amazon EC2 API アクションが aws:ResourceTag
条件キーを使用したアクセスの制御をサポートしているかどうかについては、Amazon EC2 のアクション、リソース、および条件キーを参照してください。Describe
アクションはリソースレベルのアクセス権限をサポートしないため、条件のない別のステートメントでそれらのアクセス権限を指定する必要があることに注意してください。
IAM ポリシーの例は、AWS CLI または AWS SDK で使用するサンプルポリシーを参照してください。
タグに基づいてリソースへのユーザーのアクセスを許可または拒否する場合は、ユーザーが同じリソースに対してそれらのタグを追加または削除することを明示的に拒否することを検討する必要があります。そうしないと、ユーザーはそのリソースのタグを変更することで、制限を回避してリソースにアクセスできてしまいます。