标记 Amazon EC2 资源
1 - 标记Owner
创建时标记:使用 CloudFormation 为资源添加标签
创建时标记:为了防止越权,因此真人没有给EC2打标签的权限,可以通过CloudTrail记录创建资源的事件,通过EventBridge规则捕获,并且触发Lambda程序打标签。Lambda代入的角色Trusted entities指定为AWS Service: lambda。角色的IAM授权策略可以自定义创建如下:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"config:GetComplianceDetailsByConfigRule",
"config:DescribeConformancePacks",
"config:BatchGetResourceConfig",
"tag:getResources",
"tag:getTagKeys",
"tag:getTagValues",
"tag:TagResources"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"ec2:CreateTags",
"ec2:DescribeInstances"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
创建后标记:可以通过AWS Config识别没有打指定标签的资源,然后绑定一个Systems Manager Document自动打标签。SSM代入的角色Trusted entities指定为AWS Service: ssm。角色的IAM授权策略可以用上面的同一个策略。配置方法参见: config: required-tags
2-授权访问EC2
对于打了标签的EC2,可以通过在权限策略中定义授予标签匹配的身份访问EC2。
示例策略授权只有EC2 tag-key
的值和IAM身份的标签key匹配时才能执行操作,启动和停止EC2示例使用时注意确保替换 region
, account-id
, and tag-key
为你自己实际的值。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:StartInstances",
"ec2:StopInstances"
],
"Resource": "arn:aws:ec2:region:account-id:instance/*",
"Condition": {
"StringEquals": {
"aws:RequestTag/tag-key": "${aws:PrincipalTag/tag-key}",
"ec2:ResourceTag/tag-key": "${aws:CallerIdentity:PrincipalTag/tag-key}"
}
}
}
]
}
官网文档 - https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources
最后更新于