AWS: VPC 内での authorizeSecurityGroupIngress

AWS: VPC 内での authorizeSecurityGroupIngress

NodeJS SDK を使用して、db-access セキュリティ グループから db セキュリティ グループに受信ルールを追加しています。

これらのセキュリティグループは両方ともVPC内に存在しますが、

params =
  GroupId: <Target Group Id>
  SourceSecurityGroupOwnerId: <Source Group Id>

ec2.authorizeSecurityGroupIngress(params, ...)

次のエラーが発生します: { [MissingParameter: Source group ID missing.] message: 'Source group ID missing.', code: 'MissingParameter', time: Mon Nov 24 2014 19:44:13 GMT-0800 (PST), statusCode: 400, retryable: false, retryDelay: 30 }

私が送信しているペイロードには有効なセキュリティグループがあり、EC2のドキュメントを見ると、ソースグループIDが取得される唯一の場所はソースセキュリティグループ所有者 IDパラメータ。

他にもこれに遭遇した人はいますか? このエンドポイントは不安定なのでしょうか?

答え1

次のドキュメントを参照してください:

http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#authorizeSecurityGroupIngress プロパティ

関数を正しく使用しているようです。ただし、パラメータの名前からSourceSecurityGroupOwnerId判断すると、アカウント間のアクセスを許可する場合、これはアクセスを許可するセキュリティ グループの所有者アカウント ID である可能性があります。

代わりに、IpPermissions配列を使用してセキュリティ グループ情報を示してみてください。

var params = {
  GroupId: <Target Group Id>,
  IpPermissions: [
    {
      IpProtocol: 'tcp',
      FromPort: <port>,
      ToPort: <port>,
      UserIdGroupPairs: [
        {
          GroupId: <Source Group Id>
        }
      ]
    }
  ]
};

関連情報