[CloudFormation] SSMエンドポイント
インターネットに接続されていない閉域環境で、セッションマネージャなどのSSMを利用するには3つのエンドポイントを作成する必要があります。
・com.amazonaws.${AWS::Region}.ssm
・com.amazonaws.${AWS::Region}.ec2messages
・com.amazonaws.${AWS::Region}.ssmmessages
作成されたエンドポイントには、指定したサブネットのIPアドレスがアサインされます。
設定したけれど利用できない原因となるポイントを挙げます。
1つ目は、DNSで引くためにプライベートDNSを有効にする必要があります。
PrivateDnsEnabled: true
2つ目は、エンドポイントには443番ポートを空ける必要があります。インバウンドを許可したセキュリティグループを割り当てます。
SecurityGroupIds:
- !Ref EndpointSecurityGroup
以下、全文です。
AWSTemplateFormatVersion: '2010-09-09'
Description: Create VPC endpoints for SSM, EC2Messages, and SSMMessages
Resources:
SSMVpcEndpoint:
Type: 'AWS::EC2::VPCEndpoint'
Properties:
VpcId: !ImportValue VpcId
ServiceName: !Sub com.amazonaws.${AWS::Region}.ssm
VpcEndpointType: Interface
SubnetIds:
- !ImportValue SubnetId
SecurityGroupIds:
- !Ref EndpointSecurityGroup
PrivateDnsEnabled: true
EC2MessagesVpcEndpoint:
Type: 'AWS::EC2::VPCEndpoint'
Properties:
VpcId: !ImportValue VpcId
ServiceName: !Sub com.amazonaws.${AWS::Region}.ec2messages
VpcEndpointType: Interface
SubnetIds:
- !ImportValue SubnetId
SecurityGroupIds:
- !Ref EndpointSecurityGroup
PrivateDnsEnabled: true
SSMMessagesVpcEndpoint:
Type: 'AWS::EC2::VPCEndpoint'
Properties:
VpcId: !ImportValue VpcId
ServiceName: !Sub com.amazonaws.${AWS::Region}.ssmmessages
VpcEndpointType: Interface
SubnetIds:
- !ImportValue SubnetId
SecurityGroupIds:
- !Ref EndpointSecurityGroup
PrivateDnsEnabled: true
EndpointSecurityGroup:
Type: 'AWS::EC2::SecurityGroup'
Properties:
GroupDescription: Security Group for SSM VPC Endpoints
VpcId: !ImportValue VpcId
SecurityGroupIngress:
- CidrIp: !ImportValue VpcCIDR
IpProtocol: tcp
FromPort: 443
ToPort: 443
Outputs:
SSMVpcEndpointId:
Description: SSM VPC Endpoint ID
Value: !Ref SSMVpcEndpoint
Export:
Name: SSMVpcEndpointId
EC2MessagesVpcEndpointId:
Description: EC2Messages VPC Endpoint ID
Value: !Ref EC2MessagesVpcEndpoint
Export:
Name: EC2MessagesVpcEndpointId
SSMMessagesVpcEndpointId:
Description: SSMMessages VPC Endpoint ID
Value: !Ref SSMMessagesVpcEndpoint
Export:
Name: SSMMessagesVpcEndpointId