【发布时间】:2015-08-28 14:56:41
【问题描述】:
我正在准备一个小型 bash 脚本,它读取给定实例的最新快照名称并从该快照创建一个新实例。我使用的命令是
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 数据的标准“转储”所必需的)。
快照实例的原始安全组 (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、组名、...)。
任何帮助或信息将不胜感激。
问候,
埃里克
【问题讨论】:
-
要了解有关您的安全组的更多信息,您可以运行
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 => Malformed input-MalformedInput ---------- rds-modify-db-instance snapper-1 --region eu- west-1 --db-security-groups default => "SC 不属于 VPC vpc-95c10xxx"
-
将 --db-subnet-group-name
添加到命令行。
标签: amazon-web-services command-line-interface restore snapshot rds