튜토리얼: EC2 Instance Connect로 인스턴스에 연결하기 위한 구성 완료

튜토리얼: EC2 Instance Connect로 인스턴스에 연결하기 위한 구성 완료

Amazon EC2 콘솔에서 EC2 Instance Connect로 인스턴스에 연결하려면 먼저 성공적으로 연결할 수 있게 해 주는 사전 구성(prerequisite configuration)을 완료해야 해요. 이 튜토리얼의 목적은 사전 구성을 완료하기 위한 작업을 안내하는 거예요.

출처: 문서

본문

튜토리얼 개요

이 튜토리얼에서는 다음 네 가지 작업을 완료하게 돼요.

  • 작업 1: EC2 Instance Connect를 사용하는 데 필요한 권한 부여 — 먼저 인스턴스 메타데이터에 퍼블릭 키를 푸시할 수 있게 해 주는 IAM 권한을 포함한 IAM 정책을 만들고, 이 정책을 IAM ID(사용자, 사용자 그룹, 역할)에 연결해 그 권한을 갖게 해요.
  • 작업 2: EC2 Instance Connect 서비스에서 인스턴스로의 인바운드 트래픽 허용 — EC2 Instance Connect 서비스에서 인스턴스로의 트래픽을 허용하는 보안 그룹을 만들어요. Amazon EC2 콘솔에서 EC2 Instance Connect로 인스턴스에 연결할 때 필요해요.
  • 작업 3: 인스턴스 실행 — EC2 Instance Connect가 사전 설치된 AMI를 사용해 EC2 인스턴스를 실행하고, 이전 단계에서 만든 보안 그룹을 추가해요.
  • 작업 4: 인스턴스에 연결 — 마지막으로 Amazon EC2 콘솔에서 EC2 Instance Connect를 사용해 인스턴스에 연결해요. 연결할 수 있다면 작업 1, 2, 3에서 완료한 사전 구성이 성공했음을 확인할 수 있어요.

작업 1: EC2 Instance Connect를 사용하는 데 필요한 권한 부여

EC2 Instance Connect로 인스턴스에 연결하면 EC2 Instance Connect API가 SSH 퍼블릭 키를 인스턴스 메타데이터에 푸시하는데, 그 키는 60초 동안 유지돼요. 퍼블릭 키를 인스턴스 메타데이터에 푸시하는 데 필요한 권한을 부여하려면 IAM ID(사용자, 사용자 그룹, 역할)에 연결된 IAM 정책이 필요해요.

작업 목표

퍼블릭 키를 인스턴스에 푸시하는 권한을 부여하는 IAM 정책을 만들어요. 허용할 특정 작업은 ec2-instance-connect:SendSSHPublicKey예요. Amazon EC2 콘솔에서 인스턴스를 보고 선택할 수 있도록 ec2:DescribeInstances 작업도 허용해야 해요.

정책을 만든 뒤에는 정책을 IAM ID(사용자, 사용자 그룹, 역할)에 연결해 그 권한을 갖게 해요.

다음과 같이 구성된 정책을 만들게 돼요.

JSON

{
    "Version":"2012-10-17",
    "Statement": [{
            "Effect": "Allow",
            "Action": "ec2-instance-connect:SendSSHPublicKey",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeInstances",
            "Resource": "*"
        }
    ]
}

중요 — 이 튜토리얼에서 만든 IAM 정책은 매우 관대한(permissive) 정책이에요. 어떤 AMI 사용자 이름으로든 어떤 인스턴스에든 연결할 수 있게 해 줘요. 이 튜토리얼에서는 이 튜토리얼이 가르치는 특정 구성을 단순하고 집중적으로 유지하기 위해 이 관대한 정책을 사용해요. 하지만 프로덕션 환경에서는 IAM 정책이 최소 권한(least-privilege) 권한을 제공하도록 구성할 것을 권장해요. IAM 정책 예시는 EC2 Instance Connect에 대한 IAM 권한 부여 문서를 참고하세요.

EC2 Instance Connect로 인스턴스에 연결할 수 있게 하는 IAM 정책을 만들고 연결하려면

  1. 먼저 IAM 정책을 만듭니다.
  2. IAM 콘솔(https://console.aws.amazon.com/iam/)을 엽니다.
  3. 탐색 창에서 Policies를 선택합니다.
  4. Create policy를 선택합니다.
  5. Specify permission 페이지에서 다음을 수행합니다.
    • Service에서 EC2 Instance Connect를 선택합니다.
    • Actions allowed의 검색 필드에 send를 입력해 관련 작업을 표시한 다음 SendSSHPublicKey를 선택합니다.
    • Resources에서 All을 선택합니다. 프로덕션 환경에서는 인스턴스를 ARN으로 지정할 것을 권장하지만, 이 튜토리얼에서는 모든 인스턴스를 허용하고 있어요.
    • Add more permissions을 선택합니다.
    • Service에서 EC2를 선택합니다.
    • Actions allowed의 검색 필드에 describein을 입력해 관련 작업을 표시한 다음 DescribeInstances를 선택합니다.
    • Next를 선택합니다.
  6. Review and create 페이지에서 다음을 수행합니다.
    • Policy name에 정책의 이름을 입력합니다.
    • Create policy를 선택합니다.
  7. 그런 다음 정책을 여러분의 ID에 연결합니다.
  8. IAM 콘솔의 탐색 창에서 Policies를 선택합니다.
  9. 정책 목록에서 만든 정책 이름 옆의 옵션 버튼을 선택합니다. 검색 상자를 사용해 정책 목록을 필터링할 수 있어요.
  10. Actions, Attach를 선택합니다.
  11. IAM entities에서 여러분의 ID(사용자, 사용자 그룹, 역할) 옆의 체크박스를 선택합니다. 검색 상자를 사용해 엔터티 목록을 필터링할 수 있어요.
  12. Attach policy를 선택합니다.

작업 2: EC2 Instance Connect 서비스에서 인스턴스로의 인바운드 트래픽 허용

Amazon EC2 콘솔에서 EC2 Instance Connect로 인스턴스에 연결할 때 인스턴스에 도달하도록 허용해야 하는 트래픽은 EC2 Instance Connect 서비스에서 오는 트래픽이에요. 로컬 컴퓨터에서 인스턴스로 연결하는 경우와는 달라요. 그 경우에는 로컬 컴퓨터에서 인스턴스로의 트래픽을 허용해야 하죠. EC2 Instance Connect 서비스의 트래픽을 허용하려면 EC2 Instance Connect 서비스의 IP 주소 범위에서 오는 인바운드 SSH 트래픽을 허용하는 보안 그룹을 만들어야 해요.

AWS는 IP 주소 범위를 관리하기 위해 프리픽스 목록(prefix list)을 사용해요. EC2 Instance Connect 프리픽스 목록의 이름은 다음과 같아요. region은 리전 코드로 바꾸시면 돼요.

  • IPv4 프리픽스 목록 이름: com.amazonaws.region.ec2-instance-connect
  • IPv6 프리픽스 목록 이름: com.amazonaws.region.ipv6.ec2-instance-connect

작업 목표

인스턴스가 위치한 리전의 IPv4 프리퓔스 목록에서 오는 포트 22 인바운드 SSH 트래픽을 허용하는 보안 그룹을 만들어요.

EC2 Instance Connect 서비스에서 인스턴스로의 인바운드 트래픽을 허용하는 보안 그룹 만들기

  1. Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다.
  2. 탐색 창에서 Security Groups를 선택합니다.
  3. Create security group을 선택합니다.
  4. Basic details에서 다음을 수행합니다.
    • Security group name에 보안 그룹에 의미 있는 이름을 입력합니다.
    • Description에 보안 그룹에 의미 있는 설명을 입력합니다.
  5. Inbound rules에서 다음을 수행합니다.
    • Add rule을 선택합니다.
    • Type에서 SSH를 선택합니다.
    • Source에서 Custom을 그대로 둡니다.
    • Source 옆의 필드에서 EC2 Instance Connect용 프리픽스 목록을 선택합니다.
    • 예를 들어 인스턴스가 US East (N. Virginia)(us-east-1) 리전에 있고 사용자가 퍼블릭 IPv4 주소로 연결한다면 다음 프리픽스 목록을 선택합니다: com.amazonaws.us-east-1.ec2-instance-connect
  6. Create security group을 선택합니다.

작업 3: 인스턴스 실행

인스턴스를 실행할 때는 인스턴스 실행에 필요한 정보를 포함한 AMI를 지정해야 해요. EC2 Instance Connect가 사전 설치된 인스턴스를 실행할 수도 있고, 그렇지 않은 인스턴스를 실행할 수도 있어요. 이 작업에서는 EC2 Instance Connect가 사전 설치된 AMI를 지정해요.

EC2 Instance Connect가 사전 설치되지 않은 인스턴스를 실행하고, EC2 Instance Connect로 인스턴스에 연결하려면 추가 구성 단계를 수행해야 해요. 이 단계는 이 튜토리얼의 범위를 벗어나요.

작업 목표

EC2 Instance Connect가 사전 설치된 Amazon Linux 2023 AMI로 인스턴스를 실행해요. 이전에 만든 보안 그룹도 지정해서 Amazon EC2 콘솔에서 EC2 Instance Connect로 인스턴스에 연결할 수 있게 해요. EC2 Instance Connect로 인스턴스에 연결할 것이므로(인스턴스 메타데이터에 퍼블릭 키를 푸시하는 방식) 인스턴스를 실행할 때 SSH 키를 지정하지 않아도 돼요.

Amazon EC2 콘솔에서 연결에 EC2 Instance Connect를 사용할 수 있는 인스턴스 실행하기

  1. Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다.
  2. 화면 상단의 탐색 모음에 현재 AWS 리전이 표시됩니다(예: Ireland). 인스턴스를 실행할 리전을 선택합니다. 특정 리전의 트래픽을 허용하는 보안 그룹을 만들었으므로, 인스턴스를 실행할 리전도 같은 리전을 선택해야 하므로 이 선택은 중요해요.
  3. Amazon EC2 콘솔 대시보드에서 Launch instance를 선택합니다.
  4. (선택) Name and tags의 Name에 인스턴스의 설명적인 이름을 입력합니다.
  5. **Application and OS Images (Amazon Machine Image)**에서 Quick Start를 선택합니다. Amazon Linux가 기본으로 선택됩니다. **Amazon Machine Image (AMI)**에서 Amazon Linux 2023 AMI가 기본으로 선택됩니다. 이 작업에서는 기본 선택을 유지합니다.
  6. Instance type의 Instance type에서 기본 선택을 유지하거나 다른 인스턴스 유형을 선택합니다.
  7. **Key pair (login)**의 Key pair name에서 **Proceed without a key pair (Not recommended)**를 선택합니다. EC2 Instance Connect로 인스턴스에 연결하면 EC2 Instance Connect가 키 페어를 인스턴스의 메타데이터에 푸시하고, 이 키 페어가 연결에 사용돼요.
  8. Network settings에서 다음을 수행합니다.
    • Auto-assign public IP에서 Enable을 그대로 둡니다.

참고 — Amazon EC2 콘솔에서 EC2 Instance Connect로 인스턴스에 연결하려면 인스턴스에 퍼블릭 IPv4 또는 IPv6 주소가 있어야 해요.

  • **Firewall (security groups)**에서 Select existing security group을 선택합니다.
  • Common security groups에서 이전에 만든 보안 그룹을 선택합니다.
  1. Summary 패널에서 Launch instance를 선택합니다.

작업 4: 인스턴스에 연결

EC2 Instance Connect로 인스턴스에 연결하면 EC2 Instance Connect API가 SSH 퍼블릭 키를 인스턴스 메타데이터에 푸시하는데, 그 키는 60초 동안 유지돼요. SSH 데몬은 AuthorizedKeysCommand와 AuthorizedKeysCommandUser를 사용해 인증을 위해 인스턴스 메타데이터에서 퍼블릭 키를 조회하고, 여러분을 인스턴스에 연결해요.

작업 목표

이 작업에서는 Amazon EC2 콘솔에서 EC2 Instance Connect를 사용해 인스턴스에 연결해요. 사전 작업 1, 2, 3을 완료했다면 연결이 성공해야 해요.

인스턴스에 연결하는 단계

다음 단계를 사용해 인스턴스에 연결하세요. 단계의 애니메이션을 보려면 View an animation: Connect to your instance를 참고하세요.

Amazon EC2 콘솔에서 EC2 Instance Connect로 인스턴스 연결하기

  1. Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다.
  2. 화면 상단의 탐색 모음에 현재 AWS 리전이 표시됩니다(예: Ireland). 인스턴스가 위치한 리전을 선택합니다.
  3. 탐색 창에서 Instances를 선택합니다.
  4. 인스턴스를 선택하고 Connect를 선택합니다.
  5. EC2 Instance Connect 탭을 선택합니다.
  6. Connect using a Public IP를 선택합니다.
  7. Connect를 선택합니다.

브라우저에 터미널 창이 열리고 인스턴스에 연결됩니다.

더 알아보기

  • 퍼블릭 IP와 EC2 Instance Connect로 연결하기
  • 사전 요구 사항