Amazon ec2 如何使用boto3更改RDS安全组?
我正在使用恢复(=创建新实例)RDS MySQL快照。不幸的是,安全组没有被复制,而是被分配了默认的安全组,该安全组对传入流量没有限制 查看源RDS实例,我可以看到连接到RDS实例的正确安全组(sg-a247eec5)。此安全组在EC2-安全组和VPC-安全组下可见,但在RDS-安全组下不可见 我正在使用,但我看不到将该安全组附加到新实例的位置 通过使用AWS UI(修改我的RDS实例),我可以轻松地连接正确的安全组 EC2客户端上有一个可以更改安全组的实例,但它需要一个InstanceId,我无法从RDS实例中获得该ID。我只能找到DBInstanceIdentifierAmazon ec2 如何使用boto3更改RDS安全组?,amazon-ec2,amazon-rds,aws-security-group,Amazon Ec2,Amazon Rds,Aws Security Group,我正在使用恢复(=创建新实例)RDS MySQL快照。不幸的是,安全组没有被复制,而是被分配了默认的安全组,该安全组对传入流量没有限制 查看源RDS实例,我可以看到连接到RDS实例的正确安全组(sg-a247eec5)。此安全组在EC2-安全组和VPC-安全组下可见,但在RDS-安全组下不可见 我正在使用,但我看不到将该安全组附加到新实例的位置 通过使用AWS UI(修改我的RDS实例),我可以轻松地连接正确的安全组 EC2客户端上有一个可以更改安全组的实例,但它需要一个InstanceId,我
试图设置正确的IAM权限也让我感到困惑。我有一个RDS ARN:ARN:aws:RDS:ap-Southast-2::db:但是ModifyInstanceAttribute列在Amazon EC2下。在策略编辑器中选择这两个选项会给我一个错误,说明ARN无效(这是有意义的)。无论何时使用从\u db\u snapshotapi还原\u db\u instance\u,默认行为都是应用
默认安全组
和默认参数组
。这一点在中有记录
目标数据库是从源数据库还原点创建的
使用最原始的配置和默认的安全性
组和默认的DB参数组
解决方法是在恢复完成后使用修改\u db\u实例api。
DBInstanceIdentifier对于RDS实例而言,就像InstanceId对于EC2实例一样
将上面使用的相同的DBInstanceIdentifier作为此api的输入
response = client.modify_db_instance(
DBInstanceIdentifier='string',
DBSecurityGroups=[
'string',
], /* If you are using ec2 security groups then remove this and use VpcSecurityGroupIds. */
VpcSecurityGroupIds=[
'string',
],
DBParameterGroupName='string',
ApplyImmediately=True,
)
我认为您需要同时更改安全组和参数组(除非您对默认组没有意见)。如果要更改参数组,则还需要重新启动db实例,以使设置生效
response = client.reboot_db_instance(
DBInstanceIdentifier='string',
)
此外,您需要执行上述db操作的角色具有以下策略权限
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1507879517000",
"Effect": "Allow",
"Action": [
"rds:CreateDBInstance",
"rds:ModifyDBInstance",
"rds:RebootDBInstance",
"rds:RestoreDBInstanceFromDBSnapshot"
],
"Resource": [
"arn:aws:rds:*:XXXXXXXXXX:db:*"
]
}
]
}
rds:CreateDBInstance
不需要。除此之外,这只是一个完美的答案。谢谢你!