하이브리드 Linux 노드에 SSM Agent를 설치하는 방법 - AWS Systems Manager

하이브리드 Linux 노드에 SSM Agent를 설치하는 방법

이 주제에서는 하이브리드 및 멀티클라우드 환경의 비 EC2(Amazon Elastic Compute Cloud) Linux 시스템에 AWS Systems Manager SSM Agent를 설치하는 방법을 설명합니다. 하이브리드 및 멀티클라우드 환경에서 Windows Server 시스템을 사용할 계획인 경우 다음 단계인 하이브리드 Windows 노드에 SSM Agent를 설치하는 방법을 참조하세요.

중요

이 절차는 하이브리드 및 멀티클라우드 환경의 EC2 인스턴스가 아닌 시스템 유형에 적용됩니다. Linux용 EC2 인스턴스에서 SSM Agent를 다운로드하고 설치하려면 Linux용 EC2 인스턴스에 수동으로 SSM Agent 설치 및 제거 섹션을 참조하세요.

시작하기 전에 앞의 하이브리드 활성화를 생성하여 Systems Manager에 노드 등록에서 하이브리드 정품 인증을 완료한 후 받은 정품 인증 코드 및 정품 인증 ID를 찾습니다. 다음 절차에서 코드 및 ID를 지정합니다.

리전은 미국 동부(오하이오) 리전의 us-east-2 같이 AWS Systems Manager가 지원하는 AWS 리전의 식별자를 나타냅니다. 지원되는 리전 값 목록은 Amazon Web Services 일반 참조의 Systems Manager 서비스 엔드포인트에 있는 리전 열을 참조하세요.

예를 들어 미국 동부(오하이오) 리전(us-east-2)에서 Amazon Linux, RHEL, CentOS 및 SLES 64비트용 SSM Agent를 다운로드하려면 다음 URL을 사용합니다.

https://s3.us-east-2.amazonaws.com/amazon-ssm-us-east-2/latest/linux_amd64/amazon-ssm-agent.rpm
Amazon Linux 1,Amazon Linux 2, RHEL, Oracle Linux, CentOS, and SLES
  • x86_64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/linux_amd64/amazon-ssm-agent.rpm

  • x86

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/linux_386/amazon-ssm-agent.rpm

  • ARM64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/linux_arm64/amazon-ssm-agent.rpm

RHEL 6.x, CentOS 6.x
  • x86_64

    https://s3.region.amazonaws.com/amazon-ssm-region/3.0.1479.0/linux_amd64/amazon-ssm-agent.rpm

  • x86

    https://s3.region.amazonaws.com/amazon-ssm-region/3.0.1479.0/linux_386/amazon-ssm-agent.rpm

Ubuntu 서버
  • x86_64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_amd64/amazon-ssm-agent.deb

  • ARM64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_arm64/amazon-ssm-agent.deb

  • x86

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_386/amazon-ssm-agent.deb

Debian 서버
  • x86_64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_amd64/amazon-ssm-agent.deb

  • ARM64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_arm64/amazon-ssm-agent.deb

Raspberry Pi OS (formerly Raspbian)
  • https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_arm/amazon-ssm-agent.deb

하이브리드 및 멀티클라우드 환경의 비 EC2 시스템에 SSM Agent를 설치하는 방법
  1. 하이브리드 및 멀티클라우드 환경의 서버 또는 VM에 로그온합니다.

  2. HTTP 또는 HTTPS 프록시를 사용하는 경우 현재 셸 세션에서 http_proxy 또는 https_proxy 환경 변수를 설정해야 합니다. 프록시를 사용하지 않는 경우 이 단계를 건너뛸 수 있습니다.

    HTTP 프록시 서버의 경우 명령줄에 다음 명령을 입력합니다.

    export http_proxy=http://hostname:port export https_proxy=http://hostname:port

    HTTPS 프록시 서버의 경우 명령줄에 다음 명령을 입력합니다.

    export http_proxy=http://hostname:port export https_proxy=https://hostname:port
  3. 다음 명령 블록 중 하나를 복사하여 SSH에 붙여 넣습니다. 관리형 노드 활성화를 생성할 때 생성된 활성화 코드 및 활성화 ID와 SSM Agent를 다운로드하려는 AWS 리전의 식별자로 자리 표시자 값을 바꾸고 Enter 키를 누릅니다.

    참고

    다음과 같은 중요 세부 정보에 주의합니다.

    • 루트 사용자인 경우 sudo가 필요 없습니다.

    • 하이브리드 활성화가 생성된 동일한 AWS 리전에서 ssm-setup-cli를 다운로드합니다.

    • ssm-setup-cli에서는 에이전트가 다운로드되는 소스를 결정하는 manifest-url 옵션을 지원합니다. 조직에서 요구하지 않는 한 이 옵션의 값을 지정하지 않습니다.

    • 인스턴스를 등록할 때는 ssm-setup-cli에 대해 제공된 다운로드 링크만 사용합니다. ssm-setup-cli는 나중에 사용할 수 있도록 별도로 보관해서는 안 됩니다.

    • 여기에 제공된 스크립트를 사용하여 ssm-setup-cli 서명을 검증할 수 있습니다.

    리전은 미국 동부(오하이오) 리전의 us-east-2 같이 AWS Systems Manager가 지원하는 AWS 리전의 식별자를 나타냅니다. 지원되는 리전 값 목록은 Amazon Web Services 일반 참조의 Systems Manager 서비스 엔드포인트에 있는 리전 열을 참조하세요.

    또한 ssm-setup-cli에는 다음 옵션도 포함됩니다.

    • version - 유효 값은 lateststable입니다.

    • downgrade - SSM Agent를 이전 버전으로 다운그레이드할 수 있습니다. 이전 버전의 에이전트를 설치하려면 true를 지정합니다.

    • skip-signature-validation - 에이전트 다운로드 및 설치 중에 서명 검증을 건너뜁니다.

mkdir /tmp/ssm curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/3.0.1479.0/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm sudo stop amazon-ssm-agent sudo -E amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" sudo start amazon-ssm-agent
mkdir /tmp/ssm curl https://amazon-ssm-region.s3.region.amazonaws.com/latest/linux_amd64/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli sudo chmod +x /tmp/ssm/ssm-setup-cli sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code" -id "activation-id" -region "region"
mkdir /tmp/ssm curl https://amazon-ssm-region.s3.region.amazonaws.com/latest/linux_amd64/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli sudo chmod +x /tmp/ssm/ssm-setup-cli sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code" -activation-id "activation-id" -region "region"
mkdir /tmp/ssm curl https://amazon-ssm-region.s3.region.amazonaws.com/latest/linux_amd64/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli sudo chmod +x /tmp/ssm/ssm-setup-cli sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code" -activation-id "activation-id" -region "region"
mkdir /tmp/ssm curl https://amazon-ssm-region.s3.region.amazonaws.com/latest/debian_amd64/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli sudo chmod +x /tmp/ssm/ssm-setup-cli sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code" -activation-id "activation-id" -region "region"
mkdir /tmp/ssm curl https://amazon-ssm-region.s3.region.amazonaws.com/latest/debian_arm/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli sudo chmod +x /tmp/ssm/ssm-setup-cli sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code" -activation-id "activation-id" -region "region"
  • .deb 패키지 사용

    mkdir /tmp/ssm curl https://amazon-ssm-region.s3.region.amazonaws.com/latest/debian_amd64/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli sudo chmod +x /tmp/ssm/ssm-setup-cli sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code" -activation-id "activation-id" -region "region"
  • Snap 패키지 사용

    snap 명령은 Snap 앱 스토어(https://snapcraft.io)에서 에이전트를 자동으로 다운로드하기 때문에 다운로드를 위해 URL을 지정할 필요는 없습니다.

    Ubuntu Server 20.10 STR 및 20.04, 18.04 및 16.04 LTS에서는 에이전트 바이너리 및 구성 파일을 포함한 SSM Agent 설치 관리자 파일이 /snap/amazon-ssm-agent/current/ 디렉터리에 저장됩니다. 이 디렉터리의 구성 파일을 변경하는 경우 /snap 디렉터리에서 /etc/amazon/ssm/ 디렉터리로 이러한 파일을 복사해야 합니다. 로그 및 라이브러리 파일이 변경되지 않았습니다(/var/lib/amazon/ssm, /var/log/amazon/ssm).

    sudo snap install amazon-ssm-agent --classic sudo systemctl stop snap.amazon-ssm-agent.amazon-ssm-agent.service sudo /snap/amazon-ssm-agent/current/amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" sudo systemctl start snap.amazon-ssm-agent.amazon-ssm-agent.service
    중요

    Snap Store의 후보(candidate) 채널에는 최신 버전의 SSM Agent가 있습니다. 안정적인 채널은 아닙니다. 후보 채널에서 SSM Agent 버전 정보를 추적하려면 Ubuntu Server 18.04 및 16.04 LTS 64비트 관리형 노드에서 다음 명령을 실행합니다.

    sudo snap switch --channel=candidate amazon-ssm-agent

명령을 통해 하이브리드 및 멀티클라우드 환경의 하이브리드 정품 인증 시스템에 SSM Agent를 다운로드하고 설치합니다. 명령을 통해 SSM Agent를 중지한 다음에 시스템을 Systems Manager 서비스에 등록합니다. 이제 시스템이 관리형 노드입니다. Systems Manager에 대해 구성된 Amazon EC2 인스턴스도 관리형 노드입니다. 그러나 Systems Manager 콘솔에서는 하이브리드 정품 인증 노드는 접두사 "mi-"로 Amazon EC2 인스턴스와 구별됩니다.

계속해서 하이브리드 Windows 노드에 SSM Agent를 설치하는 방법로 이동하십시오.

프라이빗 키 자동 교체 설정

보안 태세를 강화하기 위해 하이브리드 및 멀티클라우드 환경의 프라이빗 키를 자동으로 교체하도록 AWS Systems Manager 에이전트(SSM Agent)를 구성할 수 있습니다. SSM Agent 버전 3.0.1031.0 이상을 사용하여 이 기능에 액세스할 수 있습니다. 다음 절차에 따라 이 기능을 설정합니다.

하이브리드 및 멀티클라우드 환경의 프라이빗 키를 교체하도록 SSM Agent를 구성하는 방법
  1. /etc/amazon/ssm/(Linux 시스템) 또는 C:\Program Files\Amazon\SSM(Windows 시스템)으로 이동합니다.

  2. amazon-ssm-agent.json.template의 내용을 amazon-ssm-agent.json이라는 새 파일에 복사합니다. amazon-ssm-agent.json.template이 위치한 동일한 디렉터리에 amazon-ssm-agent.json을 저장합니다.

  3. Profile, KeyAutoRotateDays를 찾습니다. 자동 프라이빗 키 교체 간격(일)을 입력합니다.

  4. SSM Agent을 다시 시작합니다.

구성을 변경할 때마다 SSM Agent를 다시 시작합니다.

동일한 절차를 사용하여 SSM Agent의 다른 기능을 사용자 정의할 수 있습니다. 사용 가능한 구성 속성 및 기본값의 최신 목록은 Config 속성 정의를 참조하세요.

관리형 노드 등록 취소 및 다시 등록

AWS CLI 또는 Tools for Windows PowerShell에서 DeregisterManagedInstance API 작업을 호출하여 하이브리드 정품 인증 관리형 노드 등록을 취소할 수 있습니다. 다음은 CLI 명령의 예입니다.

aws ssm deregister-managed-instance --instance-id "mi-1234567890"

에이전트의 나머지 등록 정보를 제거하려면 amazon-ssm-agent.json 파일에서 IdentityConsumptionOrder 키를 제거합니다. 그런 다음, 다음 명령을 실행합니다.

amazon-ssm-agent -register -clear

시스템 등록 취소 후 다시 등록할 수 있습니다. 다음 절차에 따라 시스템을 다시 등록합니다. 이 절차를 완료하면 관리형 노드가 관리형 노드 목록에 다시 표시됩니다.

비 EC2 Linux 시스템의 관리형 노드를 다시 등록하는 방법
  1. 시스템에 연결합니다.

  2. 다음 명령을 실행합니다. 자리표시자 값을 관리형 노드 활성화를 생성할 때 생성된 활성화 코드 및 활성화 ID와 SSM Agent를 다운로드하려는 리전의 식별자로 바꿔야 합니다.

    echo "yes" | sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code" -activation-id "activation-id" -region "region

비 EC2 Linux 시스템의 SSM Agent 설치 문제 해결

다음 정보를 사용하면 하이브리드 및 멀티클라우드 환경에서 하이브리드 정품 인증 Linux 시스템에 SSM Agent를 설치하는 문제를 해결하는 데 도움이 됩니다.

DeliveryTimedOut 오류 발생

문제: 하나의 AWS 계정에 시스템을 별도의 AWS 계정에 대한 관리형 노드로 구성하는 동안 대상 시스템에 SSM Agent를 설치하는 명령을 실행한 후 DeliveryTimedOut 오류가 표시됩니다.

해결 방법: DeliveryTimedOut은 이 시나리오에 대한 예상 응답 코드입니다. 대상 노드에 SSM Agent를 설치하는 명령은 소스 노드의 노드 ID를 변경합니다. 노드 ID가 변경되었기 때문에 소스 노드는 명령 실행 중 실패, 완료 또는 시간 초과된 대상 노드에 응답할 수 없습니다.

노드 연결을 로드할 수 없음

문제: 설치 명령을 실행한 후 SSM Agent 오류 로그에 다음 오류가 표시됩니다.

Unable to load instance associations, unable to retrieve associations unable to retrieve associations error occurred in RequestManagedInstanceRoleToken: MachineFingerprintDoesNotMatch: Fingerprint doesn't match

재부팅 후 시스템 ID가 유지되지 않는 경우 이 오류가 표시됩니다.

해결 방법: 이 문제를 수정하려면 다음 명령을 실행합니다. 이 명령은 재부팅 후에도 시스템 ID가 유지되도록 합니다.

umount /etc/machine-id systemd-machine-id-setup