Я понял, что для DynamoDB и S3, которые используют конечные точки шлюза, необходимо определить свойство PolicyDocument
.Для всех других услуг, это не должно быть определено.Таким образом, для SQS все, что нужно:
SQSEndpoint:
Type: AWS::EC2::VPCEndpoint
Properties:
ServiceName: !Join
- ''
- - com.amazonaws.
- !Ref 'AWS::Region'
- .sqs
SubnetIds:
- !Ref PrivateSubnet
- !Ref PublicSubnet
VpcId: !Ref 'VPC'
VpcEndpointType: Interface
РЕДАКТИРОВАТЬ: Все еще не работало, хотя конечная точка интерфейса была настроена, мне пришлось:
установите для свойства PrivateDnsEnabled
значение true
, чтобы вы могли использовать интерфейс командной строки AWS, поскольку интерфейс командной строки AWS использует общедоступную конечную точку, а установка PrivateDnsEnabled
позволяет частной конечной точке автоматически сопоставляться с общедоступнойодин
установить для SecurityGroupsIds
группу безопасности, которая разрешает входящий трафик от вашего VPC.Если этот экземпляр установлен, используется группа безопасности по умолчанию, и она разрешает входящий трафик только из источников, которые имеют группу безопасности по умолчанию, что означает, что SQS
не сможет отправить трафик обратно вашему экземпляру
Итак, подведем итог:
SQSEndpoint:
Type: AWS::EC2::VPCEndpoint
Properties:
ServiceName: !Join
- ''
- - com.amazonaws.
- !Ref 'AWS::Region'
- .sqs
SubnetIds:
- !Ref PrivateSubnet
VpcId: !Ref 'VPC'
VpcEndpointType: Interface
SecurityGroupIds:
- !Ref PrivateSubnetInstanceSG # has to allow traffic from your VPC
PrivateDnsEnabled: true