기본 호스트 관리 구성을 사용한 자동 EC2 인스턴스 관리 - AWS Systems Manager

기본 호스트 관리 구성을 사용한 자동 EC2 인스턴스 관리

기본 호스트 관리 구성 설정을 통해 AWS Systems Manager에서 Amazon EC2 인스턴스를 자동으로 관리형 인스턴스로 관리할 수 있습니다. 관리형 인스턴스는 Systems Manager에 사용하도록 구성된 EC2 인스턴스입니다.

Systems Manager로 인스턴스를 관리하는 경우의 이점은 다음과 같습니다.

  • Session Manager를 사용하여 안전하게 EC2 인스턴스에 연결합니다.

  • Patch Manager를 사용하여 자동 패치 스캔을 수행합니다.

  • Systems Manager Inventory를 사용하여 인스턴스에 대한 세부 정보를 봅니다.

  • Fleet Manager를 사용하여 인스턴스를 추적하고 관리합니다.

  • SSM Agent를 자동으로 최신 상태로 유지합니다.

Fleet Manager, Inventory, Patch Manager 및 Session Manager는 Systems Manager의 기능입니다.

기본 호스트 관리 구성을 통해 AWS Identity and Access Management(IAM) 인스턴스 프로파일을 수동으로 생성하지 않고 EC2 인스턴스를 관리할 수 있습니다. 그 대신에 기본 IAM 역할이 활성화된 AWS 계정 및 AWS 리전의 모든 인스턴스를 관리하는 권한이 Systems Manager에 확보되도록 기본 호스트 관리 구성을 통해 해당 역할이 생성되고 적용됩니다.

제공된 권한이 사용 사례에 충분하지 않은 경우 기본 호스트 관리 구성에서 생성된 기본 IAM 역할에 정책을 추가할 수도 있습니다. 또는 기본 IAM 역할에서 제공하는 모든 기능에 대한 권한이 필요하지 않은 경우 사용자 지정 역할과 정책을 직접 생성할 수 있습니다. 기본 호스트 관리 구성에 대해 선택한 IAM 역할의 모든 변경 사항은 리전 및 계정의 모든 관리형 Amazon EC2 인스턴스에 적용됩니다.

기본 호스트 관리 구성에서 사용하는 정책에 대한 자세한 내용은 AWS 관리형 정책: AmazonSSMManagedEC2InstanceDefaultPolicy 섹션을 참조하세요.

최소 권한 액세스 구현

이 주제의 이 절차는 관리자만 수행할 수 있습니다. 따라서 관리자가 아닌 사용자가 기본 호스트 관리 구성을 구성하거나 수정하지 못하도록 하려면 최소 권한 액세스를 구현하는 것이 좋습니다. 기본 호스트 관리 구성에 대한 액세스를 제한하는 예제 정책을 보려면 이 주제의 기본 호스트 관리 구성의 최소 권한 정책 예제 이후를 참조하세요.

중요

기본 호스트 관리 구성을 사용하여 등록된 인스턴스의 등록 정보는 var/lib/amazon/ssm 또는 C:\ProgramData\Amazon 디렉터리에 로컬로 저장됩니다. 이러한 디렉토리 또는 해당 파일을 제거하면 인스턴스가 기본 호스트 관리 구성을 사용하여 시스템 관리자에 연결하는 데 필요한 보안 인증을 획득하지 못하게 됩니다. 이러한 경우 IAM 인스턴스 프로파일을 사용하여 인스턴스에 필요한 권한을 제공하거나 인스턴스를 다시 생성해야 합니다.

사전 조건

설정을 활성화하는 AWS 리전 및 AWS 계정에서 기본 호스트 관리 구성을 사용하려면 다음과 같은 요구 사항을 충족해야 합니다.

  • 관리할 인스턴스에서 IMDSv2(인스턴스 메타데이터 서비스 버전 2)를 사용해야 합니다.

    기본 호스트 관리 구성은 인스턴스 메타데이터 서비스 버전 1을 지원하지 않습니다. IMDSv2로 전환에 대한 자세한 내용은 Amazon EC2 사용 설명서인스턴스 메타데이터 서비스 버전 2 사용으로 전환을 참조하세요.

  • 인스턴스를 관리하려면 SSM Agent version 3.2.582.0 이상을 설치해야 합니다.

    인스턴스에 설치된 SSM Agent 버전 확인에 대한 자세한 내용은 SSM Agent 버전 번호 확인 섹션을 참조하세요.

    SSM Agent 업데이트에 대한 자세한 내용은 SSM Agent 자동 업데이트 섹션을 참조하세요.

  • 이 주제의 작업을 수행하는 관리자라면 GetServiceSetting, ResetServiceSettingUpdateServiceSetting API 작업에 대한 권한이 있어야 합니다. 또한 AWSSystemsManagerDefaultEC2InstanceManagementRole IAM 역할에 대한 iam:PassRole 권한이 있어야 합니다. 다음은 이러한 권한을 제공하는 정책 예제입니다. 각 example resource placeholder를 사용자의 정보로 바꿉니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetServiceSetting", "ssm:ResetServiceSetting", "ssm:UpdateServiceSetting" ], "Resource": "arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::account-id:role/service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole", "Condition": { "StringEquals": { "iam:PassedToService": [ "ssm.amazonaws.com" ] } } } ] }
  • 시스템 관리자를 사용하여 관리할 EC2 인스턴스에 이미 IAM 인스턴스 프로파일이 연결되었으면 ssm:UpdateInstanceInformation 작업을 허용하는 권한을 제거해야 합니다. SSM Agent에서는 기본 호스트 관리 구성 권한을 사용하기 전에 인스턴스 프로파일 권한을 사용하려고 시도합니다. IAM 인스턴스 프로파일에서 ssm:UpdateInstanceInformation 작업을 허용하면 인스턴스에서 기본 호스트 관리 구성 권한을 사용하지 않습니다.

기본 호스트 관리 구성 설정 활성화

Fleet Manager 콘솔에서 또는 AWS Command Line Interface이나 AWS Tools for Windows PowerShell을 사용하여 기본 호스트 관리 구성을 활성화할 수 있습니다.

Amazon EC2 인스턴스를 이 설정으로 관리할 각 리전에서 기본 호스트 관리 구성을 하나씩 켜야 합니다.

기본 호스트 관리 구성을 켠 후 인스턴스가 다음 절차의 5단계에서 선택한 역할의 자격 증명을 사용하는 데 최대 30분이 걸릴 수 있습니다.

기본 호스트 관리 구성을 활성화하는 방법(콘솔)
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

  2. 탐색 창에서 Fleet Manager를 선택합니다.

  3. 계정 관리, 기본 호스트 관리 구성을 선택합니다.

  4. 기본 호스트 관리 구성 활성화를 켭니다.

  5. 인스턴스에 대해 Systems Manager 기능을 활성화하는 데 사용되는 AWS Identity and Access Management(IAM) 역할을 선택합니다. 기본 호스트 관리 구성에서 제공하는 기본 역할을 사용하는 것이 좋습니다. 여기에는 Systems Manager를 사용하여 Amazon EC2 인스턴스를 관리하는 데 필요한 최소 권한 세트가 포함되어 있습니다. 사용자 지정 역할을 사용하는 것을 선호하는 경우 역할의 신뢰 정책에서 Systems Manager를 신뢰할 수 있는 엔터티로 허용해야 합니다.

  6. 구성을 선택하여 설정을 완료합니다.

기본 호스트 관리 구성을 활성화하는 방법(명령줄)
  1. 다음 신뢰 관계 정책이 포함된 JSON 파일을 로컬 컴퓨터에 생성합니다.

    { "Version":"2012-10-17", "Statement":[ { "Sid":"", "Effect":"Allow", "Principal":{ "Service":"ssm.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
  2. AWS CLI 또는 Tools for Windows PowerShell을 열고 로컬 시스템의 운영 체제 유형에 따라 다음과 같은 명령 중 하나를 실행하여 계정에서 서비스 역할을 생성합니다. 각 example resource placeholder를 사용자의 정보로 바꿉니다.

    Linux & macOS
    aws iam create-role \ --role-name AWSSystemsManagerDefaultEC2InstanceManagementRole \ --path /service-role/ \ --assume-role-policy-document file://trust-policy.json
    Windows
    aws iam create-role ^ --role-name AWSSystemsManagerDefaultEC2InstanceManagementRole ^ --path /service-role/ ^ --assume-role-policy-document file://trust-policy.json
    PowerShell
    New-IAMRole ` -RoleName "AWSSystemsManagerDefaultEC2InstanceManagementRole" ` -Path "/service-role/" ` -AssumeRolePolicyDocument "file://trust-policy.json"
  3. 다음 명령을 실행하여 새로 생성한 역할에 AmazonSSMManagedEC2InstanceDefaultPolicy 관리형 정책을 연결합니다. 각 example resource placeholder를 사용자의 정보로 바꿉니다.

    Linux & macOS
    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedEC2InstanceDefaultPolicy \ --role-name AWSSystemsManagerDefaultEC2InstanceManagementRole
    Windows
    aws iam attach-role-policy ^ --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedEC2InstanceDefaultPolicy ^ --role-name AWSSystemsManagerDefaultEC2InstanceManagementRole
    PowerShell
    Register-IAMRolePolicy ` -PolicyArn "arn:aws:iam::aws:policy/AmazonSSMManagedEC2InstanceDefaultPolicy" ` -RoleName "AWSSystemsManagerDefaultEC2InstanceManagementRole"
  4. AWS CLI 또는 Tools for Windows PowerShell을 열고 다음 명령을 실행합니다. 각 example resource placeholder를 사용자의 정보로 바꿉니다.

    Linux & macOS
    aws ssm update-service-setting \ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role \ --setting-value service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole
    Windows
    aws ssm update-service-setting ^ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role ^ --setting-value service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole
    PowerShell
    Update-SSMServiceSetting ` -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role" ` -SettingValue "service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole"

    명령이 성공해도 출력은 없습니다.

  5. 다음 명령을 실행하여 현재 AWS 계정 및 AWS 리전에서 기본 호스트 관리 구성에 대한 현재 서비스 설정을 봅니다.

    Linux & macOS
    aws ssm get-service-setting \ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role
    Windows
    aws ssm get-service-setting ^ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role
    PowerShell
    Get-SSMServiceSetting ` -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role"

    명령은 다음과 같은 정보를 반환합니다.

    {
        "ServiceSetting": {
            "SettingId": "/ssm/managed-instance/default-ec2-instance-management-role",
            "SettingValue": "service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole",
            "LastModifiedDate": "2022-11-28T08:21:03.576000-08:00",
            "LastModifiedUser": "System",
            "ARN": "arn:aws:ssm:us-east-2:-123456789012:servicesetting/ssm/managed-instance/default-ec2-instance-management-role",
            "Status": "Custom"
        }
    }

기본 호스트 관리 구성 설정 비활성화

Fleet Manager 콘솔에서 또는 AWS Command Line Interface이나 AWS Tools for Windows PowerShell을 사용하여 기본 호스트 관리 구성을 비활성화할 수 있습니다.

Amazon EC2 인스턴스를 더는 이 구성으로 관리하지 않으려는 각 리전에서 기본 호스트 관리 구성 설정을 하나씩 꺼야 합니다. 한 리전에서 비활성화하면 모든 리전에서 비활성화되는 것이 아닙니다.

기본 호스트 관리 구성을 비활성화하고 Systems Manager에 대한 액세스를 허용하는 Amazon EC2 인스턴스에 인스턴스 프로파일을 연결하지 않으면 Systems Manager에서 해당 인스턴스를 더는 관리하지 않습니다.

기본 호스트 관리 구성을 비활성화하는 방법(콘솔)
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

  2. 탐색 창에서 Fleet Manager를 선택합니다.

  3. 계정 관리, 기본 호스트 관리 구성을 선택합니다.

  4. 기본 호스트 관리 구성 활성화를 끕니다.

  5. 구성을 선택하여 기본 호스트 관리 구성을 비활성화합니다.

기본 호스트 관리 구성을 비활성화하는 방법(명령줄)
  • AWS CLI 또는 Tools for Windows PowerShell을 열고 다음 명령을 실행합니다. 각 example resource placeholder를 사용자의 정보로 바꿉니다.

    Linux & macOS
    aws ssm reset-service-setting \ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role
    Windows
    aws ssm reset-service-setting ^ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role
    PowerShell
    Reset-SSMServiceSetting ` -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role"

기본 호스트 관리 구성의 최소 권한 정책 예제

다음과 같은 샘플 정책에서는 소속 조직의 멤버가 계정의 기본 호스트 관리 구성 설정을 변경하지 못하도록 하는 방법을 보여줍니다.

AWS Organizations에 대한 서비스 제어 정책

다음 정책에서는 소속 AWS Organizations의 관리자 멤버가 아닌 멤버가 기본 호스트 관리 구성 설정을 업데이트하지 못하도록 하는 방법을 보여줍니다. 각 example resource placeholder를 사용자의 정보로 바꿉니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Deny", "Action":[ "ssm:UpdateServiceSetting", "ssm:ResetServiceSetting" ], "Resource":"arn:aws:ssm:*:*:servicesetting/ssm/managed-instance/default-ec2-instance-management-role", "Condition":{ "StringNotEqualsIgnoreCase":{ "aws:PrincipalTag/job-function":[ "administrator" ] } } }, { "Effect":"Deny", "Action":[ "iam:PassRole" ], "Resource":"arn:aws:iam::*:role/service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole", "Condition":{ "StringEquals":{ "iam:PassedToService":"ssm.amazonaws.com" }, "StringNotEqualsIgnoreCase":{ "aws:PrincipalTag/job-function":[ "administrator" ] } } }, { "Effect":"Deny", "Resource":"arn:aws:iam::*:role/service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole", "Action":[ "iam:AttachRolePolicy", "iam:DeleteRole" ], "Condition":{ "StringNotEqualsIgnoreCase":{ "aws:PrincipalTag/job-function":[ "administrator" ] } } } ] }

IAM 보안 주체 정책

다음 정책에서는 소속 AWS Organizations의 IAM 그룹, 역할 또는 사용자가 기본 호스트 관리 구성 설정을 업데이트하지 못하도록 하는 방법을 보여줍니다. 각 example resource placeholder를 사용자의 정보로 바꿉니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ssm:UpdateServiceSetting", "ssm:ResetServiceSetting" ], "Resource": "arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role" }, { "Effect": "Deny", "Action": [ "iam:AttachRolePolicy", "iam:DeleteRole", "iam:PassRole" ], "Resource": "arn:aws:iam::account-id:role/service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole" } ] }