我在准备一个小型bash脚本,该脚本读取给定实例的最新快照名称并从该快照创建一个新实例。我正在使用的命令是亚马逊RDS(CLI) - 从快照恢复实例 - 错误的安全组(无入站许可)
rds-restore-db-instance-from-db-snapshot snapshot-instance --db-snapshot-identifier rds:snapshot-name --region eu-west-1 --availability-zone eu-west-1a --db-instance-class db.t2.micro --multi-az false
这工作正常,实例被创建。但是实例的安全组分配不正确,无法从外部访问它(这是标准的“倾倒”sql数据所需的)。
原来的安全组snapshott'ed实例(VPC)是
default (sg-2bc44xxx) (active)
但通过CLI创建从快照中的新实例时,得到了如下分配:
default:vpc-95c10xxx (active)
rds-default-vpc-95c10-xxxx (sg-9e45bxxx) (active)
您会看到旧安全组的安全组(sg)与新安全组的不同之处。
但我不能改变通过CLI这种连接:
rds-modify-db-instance snapshot-instance --region eu-west-1 -sg sg-2bc44xxx
结果在
"Malformed input-MalformedInput".
其他尝试:
rds-modify-db-instance snapshot-instance --region eu-west-1 -a sg-2bc44xxx
这给
Could not find the resource you requested: DBSecurityGroup not found: sg-2bc44xxx
当我通过Web-Console将组更改为默认组时,入站连接可用,我可以毫无问题地使用mysqldump。
目前尚不清楚使用什么选项,无论是-a还是-sg。另外,还不清楚安全组的正确标识符是(id,group-name,...)。
任何帮助或信息将不胜感激。
问候,
埃里克
想了解更多关于您的安全组的信息,您可以运行'rds-describe-db-security-groups' - 它看起来像'-a'用于您的数据库安全组,'-sg'用于VPC。你尝试了' - vpc-security-group-ids sg-2bc44xxx' –
我不明白的一件事是为什么新创建的实例分别绑定到DB和VPC的安全组,而原始实例只有VPC连接。 我尝试的输出是: rds-modify-db-instance snapper-1 --region eu-west-1 --vpc-security-group-ids sg-2bc44xxx =>无法识别的选项(虽然有文档记载) rds-modify-db-instance snapper-1 --region eu-west-1 -sg sg-2bc44xxx =>格式错误的输入 - 格式错误输入 ---------- rds-modify-db-实例snapper-1 --region eu-west-1 --db-security-groups default =>“SC不属于VPC vpc-95c10xxx” – TheNightCoder
将--db-subnet-group-name添加到你的命令行。 –