在AWS EC2镜像构建器中,您可以通过以下步骤来防止删除SSM代理:
prevent-ssm-deletion
的IAM策略,该策略将为您的IAM角色提供必要的权限来阻止删除SSM代理。以下是一个示例策略:{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenySSMDelete",
"Effect": "Deny",
"Action": [
"ssm:DeleteInstanceInformation",
"ssm:DeregisterManagedInstance"
],
"Resource": "*"
}
]
}
ssm-builder-role
的IAM角色,并将prevent-ssm-deletion
策略附加到该角色上。以下是一个示例角色:{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
在EC2镜像构建器中,创建一个新的组件,并选择要构建的AMI。在"Create new instance"步骤中,选择ssm-builder-role
作为构建实例的IAM角色。
在"Instance configuration"步骤中,选择"Configure instance",然后将以下代码示例添加到"User data"字段中:
#!/bin/bash
export AWS_DEFAULT_REGION=
export AWS_REGION=
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=
yum install -y amazon-ssm-agent
systemctl enable amazon-ssm-agent
systemctl start amazon-ssm-agent
# 添加以下代码以确保SSM代理不被删除
chmod +x /opt/aws/amazon-ssm-agent/bin/uninstall
mv /opt/aws/amazon-ssm-agent/bin/uninstall /opt/aws/amazon-ssm-agent/bin/uninstall.bak
确保将
、
和
替换为正确的值。
以上步骤将在构建AMI时安装SSM代理,并阻止删除SSM代理的权限。在构建完成后,您可以使用此AMI启动EC2实例,其中SSM代理将保留并运行。