私は、うまくいくはずだと信じていることがなぜうまくいかないのか、ずっと調べてきました。ここに内訳があります
- セキュリティグループにパブリックに割り当てられた 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
と呼ばれる別のセキュリティグループに到達できるようにしようとしています。AdminSecurityGroup
FooStack
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 に差し替えれば接続可能。明らかに、その後にAdminSecurityGroup
andClientSecurityGroup
fromが削除されFooStack
ます (もうそれらを使用しても意味がありません)。 Foo
のすべてのセキュリティ グループが の内部で参照されている場合、すべてが開始されるのはなぜLaunchTemplate
ですか?