私は、うまくいくはずだと信じていることがなぜうまくいかないのか、ずっと調べてきました。ここに内訳があります
- セキュリティグループにパブリックに割り当てられた IP を持つ要塞があり、すべての送信トラフィックが有効になっています。これも、質問のポイントのようなものです:
FooSSHIngress:
Type: AWS::EC2::SecurityGroupIngress
Properties:
IpProtocol: tcp
FromPort: 22
ToPort: 22
GroupId:
Fn::ImportValue: !Sub "${FooStackName}-AdminSecurityGroup"
SourceSecurityGroupId: !Ref BastionSecurityGroup
Description: Enables SSH to FooService
だから私はからの接続がfroBastionSecurityGroup@22と呼ばれる別のセキュリティグループに到達できるようにしようとしています。AdminSecurityGroupFooStack
AdminSecurityGroup以下で見つけることができます。は明らかに空ですが、ご容赦ください。ポイントは、SSH アクセスを有効にするためにどこかにリンクできるセキュリティ グループを用意することでした。
AdminSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: >-
For FooService admin access.
Grants access to EC2 instances over SSH.
VpcId:
Fn::ImportValue: !Sub "${VpcStackName}-VPCId"
とにかく、上記のグループは後で SecurityGroup にリンクされ、最終的にで参照されAWS::EC2::LaunchTemplateます。その定義は次のとおりです。
ServerSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Enable Client and Admin access
VpcId:
Fn::ImportValue: !Sub "${VpcStackName}-VPCId"
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: !Ref ClientPort
ToPort: !Ref ClientPort
SourceSecurityGroupId: !Ref ClientSecurityGroup
- IpProtocol: tcp
FromPort: 22
ToPort: 22
SourceSecurityGroupId: !Ref AdminSecurityGroup
ご覧のClientSecurityGroupとおり、同じパターンに従うものもあります。
最後に、質問は次のとおりです。
- それは理にかなっていますか?
- うまくいかないのはなぜですか?私の知る限り、このようなセキュリティ グループを使用すると、ENI を介してトラフィックがルーティングされるはずです。しかし、どういうわけかそうではありません。
- おもしろいの
AdminSecurityGroupはServerSecurityGroup、 for bastion に差し替えれば接続可能。明らかに、その後にAdminSecurityGroupandClientSecurityGroupfromが削除されFooStackます (もうそれらを使用しても意味がありません)。 Fooのすべてのセキュリティ グループが の内部で参照されている場合、すべてが開始されるのはなぜLaunchTemplateですか?