在AWS上如何实现恶意删除保护

EC2如何防止恶意删除?

默认情况下,您可以使用 Amazon EC2 控制台、命令行界面或 API 终止实例。为防止您的实例使用 Amazon EC2 意外终止,您可以为实例启用终止保护。DisableApiTerminate 属性控制是否可以使用控制台、CLI 或 API 终止实例。默认情况下,您的实例的终止保护处于禁用状态。您可以在启动实例时、实例运行时或实例停止时(对于 Amazon EBS 支持的实例)设置此属性的值。

1 - 启用安全配置

(1)开启删除保护,可以防止意外删除EC2:

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination

console上选择需要开启删除保护的EC2 instance;

然后在Actions-Instance Settings中选择Change termination protection;

勾选Enable;

点击Save。

(2)开启停止保护,可以防止意外停止EC2:

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Instances.html?icmpid=docs_ec2_console

console上选择需要开启停止保护的EC2 instance;

然后在Actions-Instance Settings中选择Change stop protection;

勾选Enable;

点击Save。

(3)还可以通过AWSBackup创建备份计划

https://www.amazonaws.cn/backup/?nc2=h_ql_prod_st_bu

https://docs.amazonaws.cn/aws-backup/latest/devguide/creating-a-backup-plan.html

(4)或者使用权限控制

对于一些特殊场景下需要删除或停止的EC2,可以通过权限控制避免未预期的人员或程序触发了删除和停止操作。

  • 添加策略和role可以查看EC2,以及停止实例,删除实例,把这个角色指定给具体的某个人或者某个可以启停EC2的服务:需要注意的是,如果配置过删除保护,进行操作前需要管理员将停止保护和删除保护设置为disable。如果觉得两个人一起操作比较繁琐,使用权限控制则不要使用停止保护和删除保护。

以下策略要求操作者要有MFA登录,并且来源IP地址为"210.75.12.75/16",替换为自己的办公网地址或者访问来源地址比如VPC的IP段。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowTerminateAndStopInstances",
            "Effect": "Allow",
            "Action": [
                "ec2:RebootInstances",
                "ec2:TerminateInstances",
                "ec2:StopInstances",
                "ec2:StartInstances"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "true"
                },
                "IpAddress": {
                    "aws:SourceIp": "210.75.12.75/16"
                }
            }
        },
        {
            "Sid": "AllowDescribeEC2",
            "Effect": "Allow",
            "Action": "ec2:Describe*",
            "Resource": "*"
        }
    ]
}

如果EC2通过标签进行标记,还可以限制可操作的资源范围。

2 - 监控

通过config检查EC2 是否使用了备份,检查将提示为不合规。

config rule:ec2-last-backup-recovery-point-created

Amazon Aurora如何防止恶意删除?

1- 启用安全配置

(1)创建时启用

Availability & durability选择Create an Aurora Replica or Reader node in a different AZ (recommended for scaled availability)

Additional configuration

  • Backup选择Backup retention period,可选days (1-35)。

  • Log exports的日志类型都勾选上,这样在发生问题的时候方便排查原因。

  • Deletion protectionEnable deletion protection勾选上。

(2)已经创建的Aurora

Regional cluster:

  1. 打开亚马逊 RDS 控制台。

  2. 在导航窗格中,选择 数据库,然后选择要修改的数据库集群。

  3. 选择修改

  4. Additional configuration

    • Backup选择Backup retention period,可选days (1-35)。

    • Log exports的日志类型都勾选上,这样在发生问题的时候方便排查原因。

    • Deletion protectionEnable deletion protection勾选上。

  5. 选择继续

  6. 在“修改计划*”下,选择何时应用修改。选项是在下一个计划的维护时段内应用立即应用

  7. 选择修改集群

Writer instance:

为 RDS 数据库实例启用删除保护

  1. 打开亚马逊 RDS 控制台。

  2. 在导航窗格中,选择 数据库,然后选择要修改的数据库实例。

  3. 选择修改

  4. Additional configuration

    • Backup选择**Backup retention period,**可选days (1-35)。

    • Log exports的日志类型都勾选上,这样在发生问题的时候方便排查原因。

    • Deletion protectionEnable deletion protection勾选上。

  5. 选择继续

  6. 在“修改计划*”下,选择何时应用修改。选项是在下一个计划的维护时段内应用立即应用

  7. 选择 修改数据库实例

(3)还可以通过AWSBackup创建备份计划

https://www.amazonaws.cn/backup/?nc2=h_ql_prod_st_bu

https://docs.amazonaws.cn/aws-backup/latest/devguide/creating-a-backup-plan.html

(4)权限控制

对于一些特殊场景下需要删除或停止的RDS,可以通过权限控制避免未预期的人员或程序触发了删除和停止操作。

  • 添加策略和role可以查看RDS,以及删除RDS,把这个角色指定给具体的某个人或者某个可以删除RDS的服务:

以下策略要求操作者要有MFA登录,并且来源IP地址为"210.75.12.75/16",替换为自己的办公网地址或者访问来源地址比如VPC的IP段。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "rds:DeleteDBClusterSnapshot",
                "rds:DeleteDBClusterEndpoint",
                "rds:DeleteDBSnapshot",
                "rds:DeleteDBCluster",
                "rds:DeleteDBInstance"
            ],
            "Resource": "*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": "210.75.12.75/16"
                },
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "true"
                }
            }
        },
        {
            "Sid": "AllowDescribeRDS",
            "Effect": "Allow",
            "Action": [
                "rds:Describe*"
            ],
            "Resource": "*"
        }
    ]
}

2 - 监控

(1)开启config

(2)设置config:注意配置中Resource types to record一定要包含

  • RDS DBCluster

  • RDS DBInstance

(3)添加config rules:

[rds-cluster-deletion-protection-enabled]

[rds-instance-deletion-protection-enabled]

Parameters:databaseEngines : mariadb,mysql,oracle-ee,oracle-se2,oracle-se1,oracle-se,postgres,sqlserver-ee,sqlserver-se,sqlserver-ex,sqlserver-web

elb如何防止恶意删除?

1 - 开启

https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#deletion-protection

为防止负载均衡器被意外删除,您可以启用删除保护。默认情况下,负载均衡器的删除保护处于禁用状态。

如果为负载均衡器启用了删除保护,则必须先禁用它,然后才能删除负载均衡器。

查看ALB删除保护是否开启了

通过console开启删除保护:

  1. 菜单下选择 LOAD BALANCING,然后选择 Load Balancers.

  2. 选择要保护的负载均衡.

  3. Description 页签, 选择 Edit attributes.

  4. Edit load balancer attributes 页面, 选择 Enable for Delete Protection, 然后保存。

  5. 选择 Save.

2 - 监控

通过config检查 Load Balances 是否启用了删除保护。如果未配置删除保护,检查将提示为不合规。

(1)开启config

(2)设置config:注意配置中Resource types to record一定要包含AWS ElasticLoadBalancingV2 LoadBalancer。

(3)添加rules:[elb-deletion-protection-enabled]

S3 Glacier Vault Lock

官网文档地址

S3 Glacier Vault Lock可以帮助你通过Vault Lock策略为单个S3 Glacier Vault轻松部署和执行合规控制。你可以在Vault Lock策略中指定控制措施,如 "一次写入多次读取"(WORM),并锁定该策略以防止未来的编辑。 还可以指定比如:

  1. 拒绝删除保存不足365天的档案。地址

  2. 基于标签拒绝删除,比如标记了某个合规规范,敏感等级3级或者4级的归档不允许删除。地址

最后更新于