

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

# Amazon WorkSpaces를 사용한 테스트 설정
<a name="test-console-private-access-workspaces"></a>

Amazon WorkSpaces를 사용하면 WorkSpaces라고 하는, 사용자를 위한 가상의 클라우드 기반 Windows, Amazon Linux 또는 Ubuntu Linux 데스크톱을 프로비저닝할 수 있습니다. 필요에 따라 신속하게 사용자를 추가 또는 제거할 수 있습니다. 사용자는 여러 디바이스 또는 웹 브라우저에서 가상 데스크톱에 액세스할 수 있습니다. WorkSpaces에 대해 자세히 알아보려면 [Amazon WorkSpaces 관리 가이드](https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces.html)를 참조하세요.

이 섹션의 예제에서는 사용자 환경이 WorkSpace에서 실행되는 웹 브라우저를 사용하여 AWS Management Console 프라이빗 액세스에 로그인하는 테스트 환경을 설명합니다. 그런 다음 사용자가 Amazon Simple Storage Service 콘솔을 방문합니다. 이 WorkSpace는 브라우저 AWS Management Console 에서에 액세스하여 VPC에 연결된 네트워크에서 노트북을 사용하는 기업 사용자의 경험을 시뮬레이션하기 위한 것입니다.

이 자습서에서는 AWS CloudFormation 를 사용하여 네트워크 설정과 WorkSpaces에서 사용할 Simple Active Directory를 생성하고 구성하며,를 사용하여 WorkSpace를 설정하는 단계별 지침을 사용합니다 AWS Management Console.

아래의 다이어그램은 WorkSpace를 사용하여 AWS Management Console 프라이빗 액세스 설정을 테스트하는 워크플로를 설명합니다. 여기에는 클라이언트 WorkSpace, Amazon 관리형 VPC, 고객 관리형 VPC 간의 관계가 나와 있습니다.

![\[Amazon WorkSpaces를 사용하여 AWS Management Console 프라이빗 액세스를 테스트하기 위한 설정 구성입니다.\]](http://docs.aws.amazon.com/ko_kr/awsconsolehelpdocs/latest/gsg/images/vpce-workspaces-how-to-1.png)


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

## AWS Management Console 프라이빗 액세스 환경 CloudFormation 템플릿
<a name="private-access-environment-cloudformation-template"></a>

```
Description: |
  AWS Management Console Private Access.
Parameters:

  VpcCIDR:
    Type: String
    Default: 172.16.0.0/16
    Description: CIDR range for VPC

  PublicSubnet1CIDR:
    Type: String
    Default: 172.16.1.0/24
    Description: CIDR range for Public Subnet A

  PublicSubnet2CIDR:
    Type: String
    Default: 172.16.0.0/24
    Description: CIDR range for Public Subnet B

  PrivateSubnet1CIDR:
    Type: String
    Default: 172.16.4.0/24
    Description: CIDR range for Private Subnet A

  PrivateSubnet2CIDR:
    Type: String
    Default: 172.16.5.0/24
    Description: CIDR range for Private Subnet B 

  DSAdminPasswordResourceName:
    Type: String
    Default: ADAdminSecret
    Description: Password for directory services admin 

# Amazon WorkSpaces is available in a subset of the Availability Zones for each supported Region.
# https://docs.aws.amazon.com/workspaces/latest/adminguide/azs-workspaces.html
Mappings:
  RegionMap:
    us-east-1:
      az1: use1-az2
      az2: use1-az4
      az3: use1-az6
    us-west-2:
      az1: usw2-az1
      az2: usw2-az2
      az3: usw2-az3
    ap-south-1:
      az1: aps1-az1
      az2: aps1-az2
      az3: aps1-az3
    ap-northeast-2:
      az1: apne2-az1
      az2: apne2-az3
    ap-southeast-1:
      az1: apse1-az1
      az2: apse1-az2
    ap-southeast-2:
      az1: apse2-az1
      az2: apse2-az3
    ap-northeast-1:
      az1: apne1-az1
      az2: apne1-az4
    ca-central-1:
      az1: cac1-az1
      az2: cac1-az2
    eu-central-1:
      az1: euc1-az2
      az2: euc1-az3
    eu-west-1:
      az1: euw1-az1
      az2: euw1-az2
    eu-west-2:
      az1: euw2-az2
      az2: euw2-az3
    sa-east-1:
      az1: sae1-az1
      az2: sae1-az3

Resources:

  iamLambdaExecutionRole:
    Type: AWS::IAM::Role
    Properties: 
      AssumeRolePolicyDocument:
        Version: 2012-10-17
        Statement:
          - Effect: Allow
            Principal:
              Service:
              - lambda.amazonaws.com
            Action:
              - 'sts:AssumeRole'
      ManagedPolicyArns: 
        - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
      Policies:
        - PolicyName: describe-ec2-az
          PolicyDocument:
            Version: "2012-10-17"		 	 	 
            Statement:
              - Effect: Allow
                Action:
                  - 'ec2:DescribeAvailabilityZones'
                Resource: '*'
      MaxSessionDuration: 3600
      Path: /service-role/

  fnZoneIdtoZoneName:
    Type: AWS::Lambda::Function
    Properties:
      Runtime: python3.8
      Handler: index.lambda_handler
      Code:
        ZipFile: |
          import boto3
          import cfnresponse

          def zoneId_to_zoneName(event, context):
              responseData = {}
              ec2 = boto3.client('ec2')
              describe_az = ec2.describe_availability_zones()
              for az in describe_az['AvailabilityZones']:
                  if event['ResourceProperties']['ZoneId'] == az['ZoneId']:
                      responseData['ZoneName'] = az['ZoneName']
                      cfnresponse.send(event, context, cfnresponse.SUCCESS, responseData, str(az['ZoneId']))
                      
          def no_op(event, context):
              print(event)
              responseData = {}
              cfnresponse.send(event, context, cfnresponse.SUCCESS, responseData, str(event['RequestId']))

          def lambda_handler(event, context):
              if event['RequestType'] == ('Create' or 'Update'):
                  zoneId_to_zoneName(event, context)
              else:
                  no_op(event,context)
      Role: !GetAtt iamLambdaExecutionRole.Arn

  getAZ1:
    Type: "Custom::zone-id-zone-name"
    Properties:
      ServiceToken: !GetAtt fnZoneIdtoZoneName.Arn
      ZoneId: !FindInMap [ RegionMap, !Ref 'AWS::Region', az1 ]
  getAZ2:
    Type: "Custom::zone-id-zone-name"
    Properties:
      ServiceToken: !GetAtt fnZoneIdtoZoneName.Arn
      ZoneId: !FindInMap [ RegionMap, !Ref 'AWS::Region', az2 ]

#########################
# VPC AND SUBNETS
#########################

  AppVPC:
    Type: 'AWS::EC2::VPC'
    Properties:
      CidrBlock: !Ref VpcCIDR
      InstanceTenancy: default
      EnableDnsSupport: true
      EnableDnsHostnames: true

  PublicSubnetA:
    Type: 'AWS::EC2::Subnet'
    Properties:
      VpcId: !Ref AppVPC
      CidrBlock: !Ref PublicSubnet1CIDR
      MapPublicIpOnLaunch: true
      AvailabilityZone: !GetAtt getAZ1.ZoneName
      
  PublicSubnetB:
    Type: 'AWS::EC2::Subnet'
    Properties:
      VpcId: !Ref AppVPC
      CidrBlock: !Ref PublicSubnet2CIDR
      MapPublicIpOnLaunch: true
      AvailabilityZone: !GetAtt getAZ2.ZoneName

  PrivateSubnetA:
    Type: 'AWS::EC2::Subnet'
    Properties:
      VpcId: !Ref AppVPC
      CidrBlock: !Ref PrivateSubnet1CIDR
      AvailabilityZone: !GetAtt getAZ1.ZoneName

  PrivateSubnetB:
    Type: 'AWS::EC2::Subnet'
    Properties:
      VpcId: !Ref AppVPC
      CidrBlock: !Ref PrivateSubnet2CIDR
      AvailabilityZone: !GetAtt getAZ2.ZoneName

  InternetGateway:
    Type: AWS::EC2::InternetGateway

  InternetGatewayAttachment:
    Type: AWS::EC2::VPCGatewayAttachment
    Properties:
      InternetGatewayId: !Ref InternetGateway
      VpcId: !Ref AppVPC

  NatGatewayEIP:
    Type: AWS::EC2::EIP
    DependsOn: InternetGatewayAttachment

  NatGateway:
    Type: AWS::EC2::NatGateway
    Properties:
      AllocationId: !GetAtt NatGatewayEIP.AllocationId
      SubnetId: !Ref PublicSubnetA

#########################
# Route Tables
#########################

  PrivateRouteTable:
    Type: 'AWS::EC2::RouteTable'
    Properties:
      VpcId: !Ref AppVPC

  DefaultPrivateRoute:
    Type: AWS::EC2::Route
    Properties:
      RouteTableId: !Ref PrivateRouteTable
      DestinationCidrBlock: 0.0.0.0/0
      NatGatewayId: !Ref NatGateway

  PrivateSubnetRouteTableAssociation1:
    Type: 'AWS::EC2::SubnetRouteTableAssociation'
    Properties:
      RouteTableId: !Ref PrivateRouteTable
      SubnetId: !Ref PrivateSubnetA

  PrivateSubnetRouteTableAssociation2:
    Type: 'AWS::EC2::SubnetRouteTableAssociation'
    Properties:
      RouteTableId: !Ref PrivateRouteTable
      SubnetId: !Ref PrivateSubnetB

  PublicRouteTable:
    Type: AWS::EC2::RouteTable
    Properties:
      VpcId: !Ref AppVPC

  DefaultPublicRoute:
    Type: AWS::EC2::Route
    DependsOn: InternetGatewayAttachment
    Properties:
      RouteTableId: !Ref PublicRouteTable
      DestinationCidrBlock: 0.0.0.0/0
      GatewayId: !Ref InternetGateway

  PublicSubnetARouteTableAssociation1:
    Type: AWS::EC2::SubnetRouteTableAssociation
    Properties:
      RouteTableId: !Ref PublicRouteTable
      SubnetId: !Ref PublicSubnetA

  PublicSubnetBRouteTableAssociation2:
    Type: AWS::EC2::SubnetRouteTableAssociation
    Properties:
      RouteTableId: !Ref PublicRouteTable
      SubnetId: !Ref PublicSubnetB


#########################
# 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
      
#########################
# VPC ENDPOINTS
#########################

  VPCEndpointGatewayS3:
    Type: 'AWS::EC2::VPCEndpoint'
    Properties:
      ServiceName: !Sub 'com.amazonaws.${AWS::Region}.s3'
      VpcEndpointType: Gateway
      VpcId: !Ref AppVPC
      RouteTableIds:
        - !Ref PrivateRouteTable
        
  VPCEndpointInterfaceSignin:
    Type: 'AWS::EC2::VPCEndpoint'
    Properties:
      VpcEndpointType: Interface
      PrivateDnsEnabled: false
      SubnetIds:
        - !Ref PrivateSubnetA
        - !Ref PrivateSubnetB
      SecurityGroupIds:
        - !Ref VPCEndpointSecurityGroup
      ServiceName: !Sub 'com.amazonaws.${AWS::Region}.signin'
      VpcId: !Ref AppVPC
        
  VPCEndpointInterfaceConsole:
    Type: 'AWS::EC2::VPCEndpoint'
    Properties:
      VpcEndpointType: Interface
      PrivateDnsEnabled: false
      SubnetIds:
        - !Ref PrivateSubnetA
        - !Ref PrivateSubnetB
      SecurityGroupIds:
        - !Ref VPCEndpointSecurityGroup
      ServiceName: !Sub 'com.amazonaws.${AWS::Region}.console'
      VpcId: !Ref AppVPC

#########################
# ROUTE53 RESOURCES
#########################

  ConsoleHostedZone: 
    Type: "AWS::Route53::HostedZone"
    Properties: 
      HostedZoneConfig: 
        Comment: 'Console VPC Endpoint Hosted Zone'
      Name: 'console.aws.amazon.com'
      VPCs: 
        - 
          VPCId: !Ref AppVPC
          VPCRegion: !Ref "AWS::Region"
          
  ConsoleRecordGlobal:
    Type: AWS::Route53::RecordSet
    Properties:
      HostedZoneId: !Ref 'ConsoleHostedZone'
      Name: 'console.aws.amazon.com'
      AliasTarget:
        DNSName: !Select ['1', !Split [':', !Select ['0', !GetAtt VPCEndpointInterfaceConsole.DnsEntries]]]
        HostedZoneId: !Select ['0', !Split [':', !Select ['0', !GetAtt VPCEndpointInterfaceConsole.DnsEntries]]]
      Type: A

  GlobalConsoleRecord:
    Type: AWS::Route53::RecordSet
    Properties:
      HostedZoneId: !Ref 'ConsoleHostedZone'
      Name: 'global.console.aws.amazon.com'
      AliasTarget:
        DNSName: !Select ['1', !Split [':', !Select ['0', !GetAtt VPCEndpointInterfaceConsole.DnsEntries]]]
        HostedZoneId: !Select ['0', !Split [':', !Select ['0', !GetAtt VPCEndpointInterfaceConsole.DnsEntries]]]
      Type: A
          
  ConsoleS3ProxyRecordGlobal:
    Type: AWS::Route53::RecordSet
    Properties:
      HostedZoneId: !Ref 'ConsoleHostedZone'
      Name: 's3.console.aws.amazon.com'
      AliasTarget:
        DNSName: !Select ['1', !Split [':', !Select ['0', !GetAtt VPCEndpointInterfaceConsole.DnsEntries]]]
        HostedZoneId: !Select ['0', !Split [':', !Select ['0', !GetAtt VPCEndpointInterfaceConsole.DnsEntries]]]
      Type: A
          
  ConsoleSupportProxyRecordGlobal:
    Type: AWS::Route53::RecordSet
    Properties:
      HostedZoneId: !Ref 'ConsoleHostedZone'
      Name: "support.console.aws.amazon.com"
      AliasTarget:
        DNSName: !Select ['1', !Split [':', !Select ['0', !GetAtt VPCEndpointInterfaceConsole.DnsEntries]]]
        HostedZoneId: !Select ['0', !Split [':', !Select ['0', !GetAtt VPCEndpointInterfaceConsole.DnsEntries]]]
      Type: A
          
  ExplorerProxyRecordGlobal:
    Type: AWS::Route53::RecordSet
    Properties:
      HostedZoneId: !Ref 'ConsoleHostedZone'
      Name: "resource-explorer.console.aws.amazon.com"
      AliasTarget:
        DNSName: !Select ['1', !Split [':', !Select ['0', !GetAtt VPCEndpointInterfaceConsole.DnsEntries]]]
        HostedZoneId: !Select ['0', !Split [':', !Select ['0', !GetAtt VPCEndpointInterfaceConsole.DnsEntries]]]
      Type: A

  WidgetProxyRecord:
    Type: AWS::Route53::RecordSet
    Properties:
      HostedZoneId: !Ref "ConsoleHostedZone"
      Name: "*.widget.console.aws.amazon.com"
      AliasTarget:
        DNSName: !Select ["1", !Split [":", !Select ["0", !GetAtt VPCEndpointInterfaceConsole.DnsEntries],],]
        HostedZoneId: !Select ["0", !Split [":", !Select ["0", !GetAtt VPCEndpointInterfaceConsole.DnsEntries],],]
      Type: A

  ConsoleRecordRegional:
    Type: AWS::Route53::RecordSet
    Properties:
      HostedZoneId: !Ref 'ConsoleHostedZone'
      Name: !Sub "${AWS::Region}.console.aws.amazon.com"
      AliasTarget:
        DNSName: !Select ['1', !Split [':', !Select ['0', !GetAtt VPCEndpointInterfaceConsole.DnsEntries]]]
        HostedZoneId: !Select ['0', !Split [':', !Select ['0', !GetAtt VPCEndpointInterfaceConsole.DnsEntries]]]
      Type: A

  ConsoleRecordRegionalMultiSession:
    Type: AWS::Route53::RecordSet
    Properties:
      HostedZoneId: !Ref 'ConsoleHostedZone'
      Name: !Sub "*.${AWS::Region}.console.aws.amazon.com"
      AliasTarget:
        DNSName: !Select ['1', !Split [':', !Select ['0', !GetAtt VPCEndpointInterfaceConsole.DnsEntries]]]
        HostedZoneId: !Select ['0', !Split [':', !Select ['0', !GetAtt VPCEndpointInterfaceConsole.DnsEntries]]]
      Type: A

  SigninHostedZone: 
    Type: "AWS::Route53::HostedZone"
    Properties: 
      HostedZoneConfig: 
        Comment: 'Signin VPC Endpoint Hosted Zone'
      Name: 'signin.aws.amazon.com'
      VPCs: 
        - 
          VPCId: !Ref AppVPC
          VPCRegion: !Ref "AWS::Region"
          
  SigninRecordGlobal:
    Type: AWS::Route53::RecordSet
    Properties:
      HostedZoneId: !Ref 'SigninHostedZone'
      Name: 'signin.aws.amazon.com'
      AliasTarget:
        DNSName: !Select ['1', !Split [':', !Select ['0', !GetAtt VPCEndpointInterfaceSignin.DnsEntries]]]
        HostedZoneId: !Select ['0', !Split [':', !Select ['0', !GetAtt VPCEndpointInterfaceSignin.DnsEntries]]]
      Type: A
          
  SigninRecordRegional:
    Type: AWS::Route53::RecordSet
    Properties:
      HostedZoneId: !Ref 'SigninHostedZone'
      Name: !Sub "${AWS::Region}.signin.aws.amazon.com"
      AliasTarget:
        DNSName: !Select ['1', !Split [':', !Select ['0', !GetAtt VPCEndpointInterfaceSignin.DnsEntries]]]
        HostedZoneId: !Select ['0', !Split [':', !Select ['0', !GetAtt VPCEndpointInterfaceSignin.DnsEntries]]]
      Type: A

#########################
# WORKSPACE RESOURCES
#########################
  ADAdminSecret:
    Type: AWS::SecretsManager::Secret
    Properties:
      Name: !Ref DSAdminPasswordResourceName
      Description: "Password for directory services admin"
      GenerateSecretString:
        SecretStringTemplate: '{"username": "Admin"}'
        GenerateStringKey: password
        PasswordLength: 30
        ExcludeCharacters: '"@/\'

  WorkspaceSimpleDirectory:
    Type: AWS::DirectoryService::SimpleAD
    DependsOn: AppVPC
    Properties:
      Name: "corp.awsconsole.com"
      Password: '{{resolve:secretsmanager:ADAdminSecret:SecretString:password}}'
      Size: "Small"
      VpcSettings: 
        SubnetIds: 
          - Ref: PrivateSubnetA
          - Ref: PrivateSubnetB

        VpcId: 
          Ref: AppVPC


Outputs:
  PrivateSubnetA:
    Description: Private Subnet A
    Value: !Ref PrivateSubnetA

  PrivateSubnetB:
    Description: Private Subnet B
    Value: !Ref PrivateSubnetB

  WorkspaceSimpleDirectory:
    Description: Directory to be used for Workspaces
    Value: !Ref WorkspaceSimpleDirectory

  WorkspacesAdminPassword:
    Description : "The ARN of the Workspaces admin's password.  Navigate to the Secrets Manager in the AWS Console to view the value."
    Value: !Ref ADAdminSecret
```

**참고**  
이 테스트 설정은 미국 동부(버지니아 북부)(us-east-1) 리전에서 실행되도록 설계되었습니다.

**네트워크를 설정하려면**

1. 조직의 관리 계정으로 로그인하고 [CloudFormation 콘솔](https://console.aws.amazon.com/cloudformation)을 엽니다.

1. **스택 생성**을 선택합니다.

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

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

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

1. **스택 생성**을 선택합니다.

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

1. **출력** 탭을 선택하여 프라이빗 서브넷과 Workspace Simple Directory의 값을 확인합니다. 이러한 값은 WorkSpace를 생성하고 구성하는 다음 프로시저의 4단계에서 사용할 예정이므로 기록해 둡니다.

아래의 스크린샷은 프라이빗 서브넷과 Workspace Simple Directory의 값이 표시된 **출력** 탭의 보기를 보여줍니다.

![\[프라이빗 서브넷과 Workspace Simple Directory 및 해당 값.\]](http://docs.aws.amazon.com/ko_kr/awsconsolehelpdocs/latest/gsg/images/vpce-workspaces-how-to-2-latest.png)


이제 네트워크를 생성했으니 다음 프로시저를 사용하여 WorkSpace를 생성하고 액세스하세요.

**WorkSpaces를 생성하려면**

1. [WorkSpaces 콘솔](https://console.aws.amazon.com/workspaces)을 엽니다.

1. 탐색 창에서 **디렉터리**를 선택합니다.

1. **디렉터리** 페이지에서 디렉터리 상태가 **활성**인지 확인합니다. 아래의 스크린샷은 활성 디렉터리가 있는 **디렉터리** 페이지를 보여줍니다.  
![\[활성 상태인 디렉터리에 대한 항목이 있는 디렉터리 페이지.\]](http://docs.aws.amazon.com/ko_kr/awsconsolehelpdocs/latest/gsg/images/vpce-workspaces-how-to-3-updated.png)

1. WorkSpaces에서 디렉터리를 사용하려면 해당 디렉터리를 등록해야 합니다. 탐색 창에서 **WorkSpaces**를 선택한 다음 **WorkSpaces 생성**을 선택합니다.

1. **디렉터리 선택**의 경우, 이전 프로시저에서 CloudFormation 에 의해 생성된 디렉터리를 선택합니다. **작업** 메뉴에서 **등록**을 선택합니다.

1. 서브넷 선택의 경우, 이전 프로시저의 9단계에서 설명한 두 개의 프라이빗 서브넷을 선택합니다.

1. **셀프 서비스 권한 활성화**를 선택한 다음 **등록**을 선택합니다.

1. 디렉터리를 등록한 후 WorkSpace 생성을 계속 진행합니다. 등록된 디렉터리를 선택한 후 **다음**을 선택합니다.

1. **사용자 생성** 페이지에서 **추가 사용자 생성**을 선택합니다. WorkSpace를 사용할 수 있도록 이름과 이메일을 입력합니다. WorkSpace 로그인 정보가 이 이메일 주소로 전송되면 이메일 주소가 유효한지 확인하세요.

1. **다음**을 선택합니다.

1. **사용자 식별** 페이지에서, 9단계에서 생성한 사용자를 선택한 후 **다음**을 선택합니다.

1. **번들 선택** 페이지에서 **Standard with Amazon Linux 2**를 선택한 후 **다음**을 선택합니다.

1. 실행 모드 및 사용자 지정에 대해 기본 설정을 사용하고 **WorkSpace 생성**을 선택합니다. WorkSpace는 `Pending` 상태에서 시작하며 약 20분 이내에 `Available`로 전환됩니다.

1. WorkSpaces를 사용할 수 있게 되면 9단계에서 제공한 이메일 주소로 액세스 지침이 포함된 이메일이 발송됩니다.

WorkSpace에 로그인한 후 AWS Management Console 프라이빗 액세스를 사용하여 WorkSpace에 액세스 중인지 테스트할 수 있습니다.

**WorkSpace에 액세스하려면**

1. 이전 프로시저의 14단계에서 받은 이메일을 엽니다.

1. 이메일에서 제공된 고유 링크를 선택하여 프로파일을 설정하고 WorkSpaces 클라이언트를 다운로드합니다.

1. 암호를 설정합니다.

1. 선택한 클라이언트를 다운로드합니다.

1. 클라이언트를 설치하고 실행합니다. 이메일에 제공된 등록 코드를 입력한 다음 **등록**을 선택합니다.

1. 3단계에서 생성한 자격 증명을 사용하여 Amazon WorkSpaces에 로그인합니다.

**AWS Management Console 프라이빗 액세스 설정을 테스트하려면**

1. WorkSpaces에서 브라우저를 엽니다. 그런 다음, [AWS Management Console](https://console.aws.amazon.com/console)로 이동하고 보안 인증 정보를 사용하여 로그인합니다.
**참고**  
Firefox를 브라우저로 사용하는 경우 브라우저 설정에서 **HTTPS를 통한 DNS 활성화** 옵션이 꺼져 있는지 확인합니다.

1.  AWS Management Console 프라이빗 액세스를 사용하여 연결되었는지 확인할 수 있는 [Amazon S3 콘솔](https://console.aws.amazon.com/s3)을 엽니다.

1. 탐색 메뉴에서 잠금-프라이빗 아이콘을 선택하면 사용 중인 VPC 및 VPC 엔드포인트를 볼 수 있습니다. 아래의 스크린샷은 잠금-프라이빗 아이콘의 위치와 VPC 정보를 보여줍니다.  
![\[잠금-프라이빗 아이콘 위치와 AWS Management Console 프라이빗 액세스 정보를 보여주는 Amazon S3 콘솔입니다.\]](http://docs.aws.amazon.com/ko_kr/awsconsolehelpdocs/latest/gsg/images/console-private-access-verify-1.png)