Bil*_*ill 3 amazon-web-services amazon-iam aws-organizations
根据公司合规政策,我正在寻找解决方案来阻止客户端(100多个aws账户)创建具有公共IP的ec2实例,或者在创建后尝试在其上附加弹性IP。
我正在考虑使用AWS Organization SCP来实现它,所以我不需要在个人账户中设置它。但无法获得适当的 SCP 政策来做到这一点。
供您参考的 SCP 策略,我可以使用以下策略阻止 s3 公共访问,我需要类似于 ec2 实例。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:PutAccountPublicAccessBlock"
],
"Resource": "*",
"Effect": "Deny"
}
]
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,使用正确的 SCP 策略,当客户端在 Orgainzation OU 下的帐户中时,如果允许公共 IP,则无法创建 ec2 实例,或者在创建 ec2 后,当他们尝试附加弹性 IP 时,scp 应阻止它。
谢谢,@约翰
让我试试这个政策
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"ec2:AssociateAddress"
],
"Resource": "*",
"Effect": "Deny"
}
]
}
Run Code Online (Sandbox Code Playgroud)
上述 scp 策略不起作用,我仍然可以使用公共 IP 创建新实例
最后我得到了AWS支持的帮助。
@john的目标方向是部分正确的,真正的scp政策如下
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": [
"ec2:RunInstances"
],
"Condition": {
"BoolIfExists": {
"ec2:AssociatePublicIpAddress": "true"
}
},
"Resource": "arn:aws:ec2:*:*:network-interface/*"
},
{
"Action": [
"ec2:AssociateAddress"
],
"Resource": "*",
"Effect": "Deny"
}
]
}
Run Code Online (Sandbox Code Playgroud)
这个方案最终没有实施,因为太麻烦了。
特别是自动化IaC代码需要针对这一变化进行调整,例如Cloudformation、terraform、CDK等
我与 AWS CLI 共享了一个示例并解释了更改,您必须添加--no-associate-public-ip-address
aws ec2 run-instances --image-id ami-0c9f90931dxxxx --count 1 --instance-type t3.micro \
--key-name bill-import-key --no-associate-public-ip-address --subnet-id subnet-0613b48exxxx
Run Code Online (Sandbox Code Playgroud)
其次,当您从aws控制台创建ec2实例时,您必须选择“disable 自动分配公共IP”。

该解决方案仍然是保证整个组织的 aws 账户中的 ec2 实例没有公共 IP 的唯一解决方案,但组织中没有人喜欢它。
| 归档时间: |
|
| 查看次数: |
3634 次 |
| 最近记录: |