gpt4 book ai didi

amazon-web-services - 在 Cloud Formation 中为 SQS 创建 VPC 接口(interface)端点

转载 作者:行者123 更新时间:2023-12-04 02:52:03 25 4
gpt4 key购买 nike

我想知道是否可以在我的 CloudFormation 文件中创建资源来为 SQS 创建 VPC 端点。我能够对 SQS 和 DynamoDB 执行此操作,但我相信这是因为它们是网关端点。

目前我已将我的 SQS 资源定义为:

SQSEndpoint:
Type: AWS::EC2::VPCEndpoint
Properties:
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal: '*'
Action:
- 'sqs:*'
Resource:
- '*'
ServiceName: !Join
- ''
- - com.amazonaws.
- !Ref 'AWS::Region'
- .sqs
SubnetIds:
- !Ref PrivateSubnet
- !Ref PublicSubnet
VpcId: !Ref 'VPC'
VpcEndpointType: Interface

但是,当我尝试创建堆栈时,我收到错误:

enter image description here

从阅读 this blog post 看来这是可能的来自AWS。虽然我找不到任何示例或文档。有什么想法吗?

最佳答案

总结一下:

  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

背景

我发现,对于使用网关端点的 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

但这仍然不起作用,即使设置了接口(interface)端点,我也必须:

  1. PrivateDnsEnabled 属性设置为 true,以便您可以使用 AWS CLI,因为 AWS CLI 使用公共(public)终端节点,并设置 PrivateDnsEnabled 允许私有(private)端点自动映射到公共(public)端点

  2. 设置 SecurityGroupsIds 以拥有允许来自您的 VPC 的入站流量的安全组。如果设置此实例,则使用默认安全组,并且仅允许来自具有默认安全组的源的入站流量,这意味着 SQS 将无法将流量发送回您的实例

关于amazon-web-services - 在 Cloud Formation 中为 SQS 创建 VPC 接口(interface)端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54643688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com