View a markdown version of this page

Amazon EC2를 사용한 테스트 설정 - AWS Management Console

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon EC2를 사용한 테스트 설정

이 설정은 Amazon EC2 인스턴스에서 Amazon Simple Storage Service에 대한 AWS Management Console프라이빗 액세스 연결을 보여줍니다. 이 예제에서는 CloudFormation를 사용하여 네트워크 구성을 생성하고 원격 데스크톱 프로토콜(RDP)을 사용하여 Fleet Manager(의 기능AWS Systems Manager)를 통해 Amazon EC2 Windows 인스턴스에 연결합니다.

아래의 다이어그램은 Amazon EC2를 사용하여 AWS Management Console 프라이빗 액세스 설정에 액세스하는 워크플로를 설명합니다. 여기에서는 사용자가 프라이빗 엔드포인트를 사용하여 Amazon S3에 연결하는 방법을 보여줍니다.

Amazon EC2를 사용하여 AWS Management Console프라이빗 액세스를 시도하기 위한 설정 구성입니다.

다음 CloudFormation템플릿을 복사하여 네트워크 설정 절차의 3단계에서 사용할 파일에 저장합니다.

Description: | AWS Management Console Private Access. Parameters: VpcCIDR: Type: String Default: 172.16.0.0/16 Description: CIDR range for VPC PrivateSubnet1CIDR: Type: String Default: 172.16.1.0/24 Description: CIDR range for Private Subnet 1 PrivateSubnet2CIDR: Type: String Default: 172.16.2.0/24 Description: CIDR range for Private Subnet 2 Ec2KeyPair: Type: AWS::EC2::KeyPair::KeyName Description: The EC2 KeyPair to use to connect to the Windows instance LatestWindowsAmiId: Type: AWS::SSM::Parameter::Value<AWS::EC2::Image::Id> Default: /aws/service/ami-windows-latest/Windows_Server-2022-English-Full-Base InstanceTypeParameter: Type: String Default: m5.large Resources: ######################### # VPC AND SUBNETS ######################### AppVPC: Type: AWS::EC2::VPC Properties: CidrBlock: !Ref VpcCIDR InstanceTenancy: default EnableDnsSupport: true EnableDnsHostnames: true PrivateSubnet1: Type: AWS::EC2::Subnet Properties: VpcId: !Ref AppVPC CidrBlock: !Ref PrivateSubnet1CIDR AvailabilityZone: Fn::Select: - 0 - Fn::GetAZs: "" PrivateSubnet2: Type: AWS::EC2::Subnet Properties: VpcId: !Ref AppVPC CidrBlock: !Ref PrivateSubnet2CIDR AvailabilityZone: Fn::Select: - 1 - Fn::GetAZs: "" ######################### # Route Tables ######################### PrivateRouteTable: Type: AWS::EC2::RouteTable Properties: VpcId: !Ref AppVPC PrivateSubnet1RouteTableAssociation: Type: AWS::EC2::SubnetRouteTableAssociation Properties: RouteTableId: !Ref PrivateRouteTable SubnetId: !Ref PrivateSubnet1 PrivateSubnet2RouteTableAssociation: Type: AWS::EC2::SubnetRouteTableAssociation Properties: RouteTableId: !Ref PrivateRouteTable SubnetId: !Ref PrivateSubnet2 ######################### # SECURITY GROUPS ######################### VPCEndpointSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Allow TLS for VPC Endpoint VpcId: !Ref AppVPC SecurityGroupIngress: - IpProtocol: tcp FromPort: 443 ToPort: 443 CidrIp: !GetAtt AppVPC.CidrBlock EC2SecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Default EC2 Instance SG VpcId: !Ref AppVPC SecurityGroupIngress: - IpProtocol: tcp FromPort: 3389 ToPort: 3389 CidrIp: !Ref VpcCIDR ######################### # VPC ENDPOINTS ######################### VPCEndpointInterfaceSsm: Type: AWS::EC2::VPCEndpoint Properties: VpcEndpointType: Interface PrivateDnsEnabled: true SubnetIds: - !Ref PrivateSubnet1 - !Ref PrivateSubnet2 SecurityGroupIds: - !Ref VPCEndpointSecurityGroup ServiceName: !Sub com.amazonaws.${AWS::Region}.ssm VpcId: !Ref AppVPC PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: '*' Action: '*' Resource: '*' Condition: StringEquals: aws:PrincipalAccount: !Ref AWS::AccountId aws:ResourceAccount: !Ref AWS::AccountId aws:SourceVpc: !Ref AppVPC - Effect: Deny Principal: '*' Action: '*' Resource: '*' Condition: StringNotEquals: aws:PrincipalAccount: !Ref AWS::AccountId aws:ResourceAccount: !Ref AWS::AccountId aws:SourceVpc: !Ref AppVPC VPCEndpointInterfaceEc2Messages: Type: AWS::EC2::VPCEndpoint Properties: VpcEndpointType: Interface PrivateDnsEnabled: true SubnetIds: - !Ref PrivateSubnet1 - !Ref PrivateSubnet2 SecurityGroupIds: - !Ref VPCEndpointSecurityGroup ServiceName: !Sub com.amazonaws.${AWS::Region}.ec2messages VpcId: !Ref AppVPC PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: '*' Action: '*' Resource: '*' Condition: StringEquals: aws:PrincipalAccount: !Ref AWS::AccountId aws:ResourceAccount: !Ref AWS::AccountId aws:SourceVpc: !Ref AppVPC - Effect: Deny Principal: '*' Action: '*' Resource: '*' Condition: StringNotEquals: aws:PrincipalAccount: !Ref AWS::AccountId aws:ResourceAccount: !Ref AWS::AccountId aws:SourceVpc: !Ref AppVPC VPCEndpointInterfaceSsmMessages: Type: AWS::EC2::VPCEndpoint Properties: VpcEndpointType: Interface PrivateDnsEnabled: true SubnetIds: - !Ref PrivateSubnet1 - !Ref PrivateSubnet2 SecurityGroupIds: - !Ref VPCEndpointSecurityGroup ServiceName: !Sub com.amazonaws.${AWS::Region}.ssmmessages VpcId: !Ref AppVPC PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: '*' Action: '*' Resource: '*' Condition: StringEquals: aws:PrincipalAccount: !Ref AWS::AccountId aws:ResourceAccount: !Ref AWS::AccountId aws:SourceVpc: !Ref AppVPC - Effect: Deny Principal: '*' Action: '*' Resource: '*' Condition: StringNotEquals: aws:PrincipalAccount: !Ref AWS::AccountId aws:ResourceAccount: !Ref AWS::AccountId aws:SourceVpc: !Ref AppVPC VPCEndpointInterfaceSignin: Type: AWS::EC2::VPCEndpoint Properties: VpcEndpointType: Interface PrivateDnsEnabled: true SubnetIds: - !Ref PrivateSubnet1 - !Ref PrivateSubnet2 SecurityGroupIds: - !Ref VPCEndpointSecurityGroup ServiceName: !Sub com.amazonaws.${AWS::Region}.signin VpcId: !Ref AppVPC PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: '*' Action: signin:Authenticate Resource: '*' Condition: StringEquals: aws:ResourceAccount: !Ref AWS::AccountId - Effect: Allow Principal: '*' Action: - signin:AuthorizeOAuth2Access - signin:CreateOAuth2Token Resource: '*' Condition: StringEquals: aws:PrincipalAccount: !Ref AWS::AccountId VPCEndpointInterfaceConsole: Type: AWS::EC2::VPCEndpoint Properties: VpcEndpointType: Interface PrivateDnsEnabled: true SubnetIds: - !Ref PrivateSubnet1 - !Ref PrivateSubnet2 SecurityGroupIds: - !Ref VPCEndpointSecurityGroup ServiceName: !Sub com.amazonaws.${AWS::Region}.console VpcId: !Ref AppVPC PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: '*' Action: '*' Resource: '*' Condition: StringEquals: aws:PrincipalAccount: !Ref AWS::AccountId aws:ResourceAccount: !Ref AWS::AccountId aws:SourceVpc: !Ref AppVPC - Effect: Deny Principal: '*' Action: '*' Resource: '*' Condition: StringNotEquals: aws:PrincipalAccount: !Ref AWS::AccountId aws:ResourceAccount: !Ref AWS::AccountId aws:SourceVpc: !Ref AppVPC VPCEndpointInterfaceConsoleStatic: # console-static only supports the full access endpoint policy Type: AWS::EC2::VPCEndpoint Properties: VpcEndpointType: Interface PrivateDnsEnabled: true SubnetIds: - !Ref PrivateSubnet1 - !Ref PrivateSubnet2 SecurityGroupIds: - !Ref VPCEndpointSecurityGroup ServiceName: !Sub com.amazonaws.${AWS::Region}.console-static VpcId: !Ref AppVPC ######################### # EC2 INSTANCE ######################### Ec2InstanceRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: - ec2.amazonaws.com Action: - sts:AssumeRole Path: / ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore Ec2InstanceProfile: Type: AWS::IAM::InstanceProfile Properties: Path: / Roles: - !Ref Ec2InstanceRole Ec2LaunchTemplate: Type: AWS::EC2::LaunchTemplate Properties: LaunchTemplateData: MetadataOptions: HttpTokens: required EC2WinInstance: Type: AWS::EC2::Instance Properties: ImageId: !Ref LatestWindowsAmiId IamInstanceProfile: !Ref Ec2InstanceProfile KeyName: !Ref Ec2KeyPair InstanceType: !Ref InstanceTypeParameter SubnetId: !Ref PrivateSubnet1 SecurityGroupIds: - !Ref EC2SecurityGroup BlockDeviceMappings: - DeviceName: /dev/sda1 Ebs: VolumeSize: 50 LaunchTemplate: LaunchTemplateId: !Ref Ec2LaunchTemplate Version: !GetAtt Ec2LaunchTemplate.LatestVersionNumber Tags: - Key: Name Value: Console VPCE test instance
네트워크를 설정하려면
  1. 조직의 관리 계정으로 로그인하고 CloudFormation 콘솔을 엽니다.

  2. 스택 생성을 선택합니다.

  3. 새 리소스 사용(표준)(With new resources (standard))을 선택합니다. 이전에 생성한 CloudFormation템플릿 파일을 업로드하고 다음을 선택합니다.

  4. PrivateConsoleNetworkForS3 같은 스택 이름을 입력한 후 다음을 선택합니다.

  5. VPC 및 서브넷의 경우, 원하는 IP CIDR 범위를 입력하거나 제공된 기본값을 사용합니다. 기본값을 사용하는 경우 기본값이의 기존 VPC 리소스와 겹치지 않는지 확인합니다AWS 계정.

  6. EC2KeyPair 파라미터의 경우, 계정의 기존 Amazon EC2 키 페어 중에서 하나를 선택합니다. 기존 Amazon EC2 키 페어가 없다면 다음 단계로 진행하기 전에 이를 새로 생성해야 합니다. 자세한 내용은 Amazon EC2 사용 설명서Amazon EC2를 사용하여 키 페어 생성을 참조하세요.

  7. 스택 생성을 선택합니다.

  8. 스택이 생성된 후 리소스 탭을 선택하여 생성된 리소스를 확인합니다.

Amazon EC2 인스턴스에 연결하려면
  1. 조직의 관리 계정으로 로그인하고 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 인스턴스를 선택합니다.

  3. 인스턴스 페이지에서 CloudFormation템플릿으로 생성된 콘솔 VPCE 테스트 인스턴스를 선택합니다. 그런 다음 연결을 선택합니다.

    참고

    이 예제에서는의 기능인 Fleet Manager를 사용하여 Windows ServerAWS Systems Manager Explorer에 연결합니다. 연결이 시작되기까지 몇 분 정도 걸릴 수 있습니다.

  4. 인스턴스에 연결 페이지에서 RDP 클라이언트를 선택한 다음, Fleet Manager를 사용하여 연결을 선택합니다.

  5. Fleet Manager 원격 데스크톱을 선택합니다.

  6. Amazon EC2 인스턴스의 관리 암호를 가져오고 웹 인터페이스를 사용하여 Windows 데스크톱에 액세스하려면 CloudFormation템플릿을 생성할 때 사용한 Amazon EC2 키 페어와 연결된 프라이빗 키를 사용합니다.

  7. Amazon EC2 Windows 인스턴스에서 브라우저AWS Management Console에서를 엽니다.

  8. 자격 AWS증명으로 로그인한 후 Amazon S3 콘솔을 열고 프라이빗 액세스를 사용하여AWS Management Console 연결되어 있는지 확인합니다.

AWS Management Console프라이빗 액세스 설정을 테스트하려면
  1. 조직의 관리 계정으로 로그인하고 Amazon S3 콘솔을 엽니다.

  2. 탐색 메뉴에서 잠금-프라이빗 아이콘을 선택하면 사용 중인 VPC 엔드포인트를 볼 수 있습니다. 아래의 스크린샷은 잠금-프라이빗 아이콘의 위치와 VPC 정보를 보여줍니다.

    잠금 아이콘과 AWS Management Console프라이빗 액세스 정보가 표시된 Amazon S3 콘솔.