2023-03-06 · 2분
AWS SSM(Systems Manager) - Patch Manager
Patch Manager패치 관리자 페이지에서 패치 기준 태그들을 보면 AWS에서 기본으로 사용하고 있는 패치의 기준을 살펴볼 수 있습니다. 사용할 수 있는 모든 OS 별로 패치가 정리되어 있습니다. 이번 실습에선 Amazon Linux 2를 기준으로 진행하겠습니다.
2023-02-28 · 5분
이 글은 작성된 지 2년이 넘었어요. 내용이 오래됐을 수 있어요.

요약 : 기존 것보다 더 좋은 것이 있다면 바꾼다!

Users를 하나 만들어 Access Key를 발급받아 aws CLI에 연결이 된 상태에서 진행됩니다.
IAM에서 EC2에 연결해줄 Role를 미리 만들어 줍시다.

위와 같이 설정을 해준 후 Next를 눌러줍니다. 여기서 EC2 Role for AWS Systems Manager를 선택해야합니다.

잘 따라 왔다면 별 다른 설정 없이도 위와 같이 AmazonSSMManagedInstanceCore라는 권한이 추가된 것을 확인할 수 있습니다. 이 권한만 있으면 됩니다. Next를 누른 후 Role name만 적어주고 Create Role를 눌러줍시다.
이제 ec2로 이동해서 private를 하나 만들어 보겠습니다.

ec2 설정은 위와 같이 Key-pair를 따로 만들어 주었고 vpc를 만들어 private-a 구역에 배치를 하고 security groups에 22번과 3306, 80, 443, 웹과 DB, SSH에 관련 기본적인 포트들만 열어두겠습니다.

그 후 만든 EC2를 클릭하여 설정에 들어와 Modify IAM role를 눌러줍니다.

아까 저희가 만든 IAM role이 있는 것을 확인할 수 있습니다. 저걸 선택한 후 Update IAM Role를 눌러줍니다.
그 후 테스트로 ssh 접속을 시도해 봐도 public IP가 없기 때문에 당연히 가능하지 않습니다. 그렇다고 Bation EC2가 존재하는 것도 아니기 때문에 접속이 불가능합니다.
하지만 여기까지 잘 따라 왔다면 **"aws ssm start-session --target <instances ID>"**를 입력하면 접속이 잘 되는 것을 확인할 수 있습니다.

> 계정의 모든 EC2 인스턴스에서 기본적으로 AWS Systems Manager를 활성화하는 기능 발표
이제 AWS Systems Manager 고객은 기본 호스트 관리 구성(DHMC) 에이전트를 사용하여 한 번의 작업으로 Systems Manager를 활성화하고 계정의 모든 EC2 인스턴스에 대한 권한을 구성할 수 있게 되었습니다. — aws.amazon.com
이번 업데이트(2023-02-17)에서 AWS Systems Manager에 새로운 Default Host Management Configuration(DHMC)이라는 설정이 추가되었습니다.
이 DHMC는 SSM의 fleet manage에서 권한(IAM 역할)을 지정하는 형태로 설정합니다. 그리고 SSM Agent가 인스턴스 프로파일 대신 DHMC에 설정된 역할로부터 자격 증명을 취득하여 SSM의 각종 기능을 실현하는 형태가 됩니다.
간단하게 말하면 "EC2 프로파일이 없을 때에 fallback되는 디폴드 룰"을 말합니다.
※ 주의) SSM Agent는 Ver.3.2.582.0 이상이여야한다. 이 이전의 SSM Agent는 DHMC를 지원하지 않습니다.
먼저 DHMC에서 구성할 IAM 역할을 만들어 줍니다.
AWS에서 AmazonSSManagedEC2InstanceDefaultPolicy란 정책으로 만들어 줍니다. 이 정책은 원래 AmazonSSManagedInstanceCore와 대략 동일하지만 ssm:getParameter(s)의 두가지의 정책은 허용되지 않았습니다.
만약 EC2 인스턴스에서 SSM Parameter Store에 대한 로드도 하고 싶은 경우 AmazonSSManagedInstanceCore기반으로 정책을 만드는것이 좋습니다.

SSMManagedEC2InstanceDefaultRole란 이름으로 만들겠습니다. 계속 Next를 눌러 만들어주고 만든 룰을 클릭하여 접속해줍니다.

SSMManagedEC2InstanceDefaultRole -> Trust relationships -> Edit trust policy를 눌러줍니다.

ec2.amazonaws.com -> ssm.amazonaws.com로 바꿔주고 Update policy를 눌러줍니다. 이제 DHMC설정을 하러 갑시다.


위 사진과 같이 IAM Role를 바꿔주고 Configure를 눌러주면 CDHM설정 끝입니다. 이제 EC2를 만들어줍니다.
EC2 생성이 profile은 설정하지 않아도 됩니다. 인스턴스 메타데이터 설정은 V1과 V2를 사용하게 설정해줍니다. 그리고 User-data에는 아래와 같은 코드를 넣어줍니다.
#!/bin/bash
cd /tmp
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
sudo systemctl enable amazon-ssm-agent
sudo systemctl start amazon-ssm-agent
> EC2 Linux 인스턴스에 Systems Manager Agent 설치
Amazon EC2 Linux 인스턴스를 시작할 때 AWS Systems Manager Agent(SSM Agent)를 설치하려면 어떻게 해야 하나요? 최종 업데이트 날짜: 2023년 1월 31일 Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스를 시작하기 — aws.amazon.com

IAM Role이 설정되지 않은 상태인 것을 확인할 수 있습니다.

DHMC가 활성화 된 경우 이 상태에서도 SSM Host manager가 관리 노드로 인식하게 됩니다.

그 후 Session Manager로 들어가서 Connect를 눌러주면 연결이 되는 것을 확인할 수 있습니다. 위에서 했던 것처럼 cli로 해도 됩니다.


yum info amazon-ssm-agent를 입력해 봤을 때 올바른 버전으로 뜨는 것을 확인할 수 있었습니다.
원문: tistory — 2023-02-28 발행, 이 블로그로 이전됨.
…