AWS: authorizeSecurityGroupIngress innerhalb einer VPC

AWS: authorizeSecurityGroupIngress innerhalb einer VPC

Ich verwende das NodeJS SDK, um einer Datenbank-Sicherheitsgruppe eine eingehende Regel aus einer Datenbank-Zugriffssicherheitsgruppe hinzuzufügen.

Beide Sicherheitsgruppen existieren innerhalb einer VPC. Wenn ich jedoch die Ingress-Regel hinzufüge mit

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

ec2.authorizeSecurityGroupIngress(params, ...)

Ich erhalte die folgende Fehlermeldung: { [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 }

Die Nutzlast, die ich sende, hat gültige Sicherheitsgruppen, und wenn ich mir die EC2-Dokumentation anschaue, scheint die einzige Stelle, von der die Quellgruppen-ID zu stammen scheint, dieSourceSecurityGroupOwnerIdParameter.

Ist das sonst noch jemandem passiert? Ist dieser Endpunkt einfach unzuverlässig?

Antwort1

Sehen Sie sich die Dokumentation an unter:

http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#authorizeSecurityGroupIngress-property

es scheint, dass Sie die Funktion richtig verwenden. Aufgrund des Parameternamens SourceSecurityGroupOwnerIdvermute ich jedoch, dass es sich hierbei um die Eigentümerkonto-ID der Sicherheitsgruppe handeln könnte, der Sie Zugriff gewähren möchten, wenn Sie kontenübergreifenden Zugriff zulassen möchten.

Versuchen Sie stattdessen, das IpPermissionsArray zu verwenden, um die Sicherheitsgruppeninformationen anzugeben.

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

verwandte Informationen