Systems Manager에 필요한 인스턴스 권한 구성 - AWS Systems Manager

Systems Manager에 필요한 인스턴스 권한 구성

AWS Systems Manager는 기본적으로 인스턴스에서 작업을 수행할 권한이 없습니다. AWS Identity and Access Management(IAM) 역할을 사용하여 계정 수준에서 또는 인스턴스 프로파일을 사용하여 인스턴스 수준에서 인스턴스 권한을 제공할 수 있습니다. 사용 사례에서 허용하는 경우 기본 호스트 관리 구성을 사용하여 계정 수준에서 액세스 권한을 부여하는 것이 좋습니다.

EC2 인스턴스 권한에 대한 권장 구성

기본 호스트 관리 구성을 통해 Systems Manager는 Amazon EC2 인스턴스를 자동으로 관리할 수 있습니다. 이 설정을 켜면 AWS 리전에서 인스턴스 메타데이터 서비스 버전 2(IMDSv2)를 사용하는 모든 인스턴스와 SSM Agent 버전 3.2.582.0 이상이 설치된 AWS 계정이 자동으로 관리형 인스턴스가 됩니다. 기본 호스트 관리 구성은 인스턴스 메타데이터 서비스 버전 1을 지원하지 않습니다. IMDSv2로 전환에 대한 자세한 내용은 Amazon EC2 사용 설명서인스턴스 메타데이터 서비스 버전 2 사용으로 전환을 참조하세요. 인스턴스에 설치된 SSM Agent 버전 확인에 대한 자세한 내용은 SSM Agent 버전 번호 확인 섹션을 참조하세요. SSM Agent 업데이트에 대한 자세한 내용은 SSM Agent 자동 업데이트 섹션을 참조하세요. 관리형 인스턴스의 이점은 다음과 같습니다.

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

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

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

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

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

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

기본 호스트 관리 구성을 사용하면 인스턴스 프로파일을 사용하지 않고 인스턴스를 관리할 수 있으며 Systems Manager에 리전 및 계정의 모든 인스턴스를 관리할 수 있는 권한이 있는지 확인할 수 있습니다. 제공된 권한이 사용 사례에 충분하지 않은 경우 기본 호스트 관리 구성에서 생성된 기본 IAM 역할에 정책을 추가할 수도 있습니다. 또는 기본 IAM 역할에서 제공하는 모든 기능에 대한 권한이 필요하지 않은 경우 사용자 지정 역할과 정책을 직접 생성할 수 있습니다. 기본 호스트 관리 구성에 대해 선택한 IAM 역할의 모든 변경 사항은 리전 및 계정의 모든 관리형 Amazon EC2 인스턴스에 적용됩니다. 기본 호스트 관리 구성에서 사용하는 정책에 대한 자세한 내용은 AWS 관리형 정책: AmazonSSMManagedEC2InstanceDefaultPolicy 섹션을 참조하세요. 기본 호스트 관리 구성에 대한 자세한 내용은 기본 호스트 관리 구성 설정 관리 섹션을 참조하세요.

중요

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

참고

이 절차는 관리자만 수행할 수 있습니다. 개인이 기본 호스트 관리 구성을 구성하거나 수정할 수 있도록 허용할 때 최소 권한 액세스를 구현합니다. Amazon EC2 인스턴스를 자동으로 관리하려는 각 AWS 리전에서 기본 호스트 관리 구성을 켜야 합니다.

기본 호스트 관리 구성 설정 켜기

Fleet Manager 콘솔에서 기본 호스트 관리 구성을 켤 수 있습니다. AWS Management Console 또는 기본 명령줄 도구를 사용하여 이 절차를 완료하려면 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" ] } } } ] }

시작하기 전에 Amazon EC2 인스턴스에 연결된 인스턴스 프로파일이 있는 경우ssm:UpdateInstanceInformation 작업을 허용하는 모든 권한을 제거합니다. SSM Agent는 기본 호스트 관리 구성 권한을 사용하기 전에 인스턴스 프로파일 권한 사용을 시도합니다. 인스턴스 프로파일에서 ssm:UpdateInstanceInformation 작업을 허용하면 인스턴스가 기본 호스트 관리 구성 권한을 사용하지 않습니다.

  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

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

  3. 계정 관리 드롭다운에서 기본 호스트 관리 구성 구성하기를 선택합니다.

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

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

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

기본 호스트 관리 구성을 켠 후 인스턴스가 선택한 역할의 자격 증명을 사용하는 데 30분 정도 걸릴 수 있습니다. Amazon EC2 인스턴스를 자동으로 관리하려는 각 리전에서 기본 호스트 관리 구성을 켜야 합니다.

EC2 인스턴스 권한에 대한 대체 구성

AWS Identity and Access Management(IAM) 인스턴스 프로파일을 사용하여 개별 인스턴스 수준에서 액세스 권한을 부여할 수 있습니다. 인스턴스 프로파일은 시작 시 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 IAM 역할 정보를 전달하는 컨테이너입니다. 새로운 역할이나 이미 생성된 역할에 필요한 권한을 정의하는 IAM 정책을 하나 이상 연결하여 Systems Manager에 대한 인스턴스 프로파일을 생성할 수 있습니다.

참고

AWS Systems Manager의 기능인 Quick Setup을 사용하여 AWS 계정의 모든 인스턴스에서 인스턴스 프로파일을 빠르게 구성할 수 있습니다. Quick Setup은 또한 Systems Manager가 사용자를 대신하여 인스턴스에서 명령을 안전하게 실행할 수 있도록 하는 IAM 서비스 역할이나 수임 역할을 생성할 수 있습니다. Quick Setup을 사용하여 이 단계(3단계)와 4단계를 건너뛸 수 있습니다. 자세한 내용은 AWS Systems Manager Quick Setup 단원을 참조하십시오.

IAM 인스턴스 프로파일 생성에 대한 다음 세부 정보를 참조하세요.

  • Systems Manager용 하이브리드 및 멀티클라우드 환경에서 비 EC2 시스템을 구성하는 경우에는 인스턴스 프로파일을 생성할 필요가 없습니다. 그 대신에 IAM 서비스 역할을 사용할 서버와 VM을 구성합니다. 자세한 내용은 하이브리드 및 멀티클라우드 환경에서 Systems Manager에 필요한 IAM 서비스 역할 생성을 참조하세요.

  • IAM 인스턴스 프로파일을 변경한 경우에는 인스턴스 자격 증명이 갱신될 때까지 시간이 걸릴 수 있습니다. 갱신이 되어야 SSM Agent가 요청을 처리하기 시작합니다. SSM Agent 또는 인스턴스를 다시 시작하여 갱신 프로세스의 속도를 높일 수 있습니다.

인스턴스 프로파일의 역할을 새로 생성하려는 경우 또는 기존 역할에 필요한 권한을 추가하려는 경우에 각각 다음 절차 중 하나를 사용합니다.

Systems Manager 관리형 인스턴스의 인스턴스 프로파일을 생성하려면(콘솔)
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 역할(Roles)을 선택한 후 역할 생성(Create role)을 선택합니다.

  3. 신뢰할 수 있는 엔터티 유형(Trusted entity type)에 AWS service을 선택합니다.

  4. 사용 사례(Use case)에서 EC2를 선택한 후 다음(Next)을 선택합니다.

  5. 권한 추가(Add permissions) 페이지에서 다음을 수행합니다.

    • 검색(Search) 필드를 사용하여 AmazonSSMManagedInstanceCore 정책을 찾습니다. 이름 옆의 확인란을 선택합니다.

      IAM 콘솔에서 EC2 서비스 선택

      이 콘솔은 사용자가 다른 정책을 검색하더라도 사용자의 선택을 유지합니다.

    • 이전 절차에서 사용자 지정 S3 버킷 정책 (선택 사항) S3 버킷 액세스에 대한 사용자 지정 정책 생성를 생성한 경우 해당 이름을 검색하고 이름 옆의 확인란을 선택합니다.

    • AWS Directory Service에 의해 관리되는 Active Directory에 인스턴스를 조인하려는 경우 AmazonSSMDirectoryServiceAccess를 검색하고 이름 옆의 확인란을 선택합니다.

    • 인스턴스를 관리하거나 모니터링하기 위해 EventBridge 또는 CloudWatch Logs를 사용하려는 경우 CloudWatchAgentServerPolicy를 검색하고 이름 옆의 확인란을 선택합니다.

  6. Next(다음)를 선택합니다.

  7. 역할 이름(Role name)에 새 인스턴스 프로파일의 이름(예: SSMInstanceProfile)을 입력합니다.

    참고

    역할 이름을 기록해 둡니다. 이 역할은 Systems Manager를 사용하여 관리할 새 인스턴스를 생성할 때 선택합니다.

  8. (선택) 설명(Description)에 이 인스턴스 프로파일에 대한 설명을 입력합니다.

  9. (선택) 태그(Tags)에서 이 역할에 대한 액세스를 구성, 추적 또는 제어할 태그-키 값 페어를 하나 이상 추가한 후 역할 생성(Create role)을 선택합니다. 그러면 역할 페이지로 돌아갑니다.

Systems Manager의 인스턴스 프로파일 권한을 기존 역할에 추가하려면(콘솔)
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 역할(Roles)을 선택한 후, Systems Manager 작업을 위한 인스턴스 프로파일과 연결하려는 기존 역할을 선택합니다.

  3. 권한(Permissions) 탭에서 권한 추가, 정책 연결(Add permissions, Attach policies)을 선택합니다.

  4. 정책 연결 페이지에서 다음 작업을 수행합니다.

    • 검색(Search) 필드를 사용하여 AmazonSSMManagedInstanceCore 정책을 찾습니다. 이름 옆의 확인란을 선택합니다.

    • 사용자 지정 S3 버킷 정책을 생성한 경우 검색하고 이름 옆의 확인란을 선택합니다. 인스턴스 프로파일의 사용자 지정 S3 버킷 정책에 대한 내용은 (선택 사항) S3 버킷 액세스에 대한 사용자 지정 정책 생성을 참조하십시오.

    • AWS Directory Service에 의해 관리되는 Active Directory에 인스턴스를 조인하려는 경우 AmazonSSMDirectoryServiceAccess를 검색하고 이름 옆의 확인란을 선택합니다.

    • 인스턴스를 관리하거나 모니터링하기 위해 EventBridge 또는 CloudWatch Logs를 사용하려는 경우 CloudWatchAgentServerPolicy를 검색하고 이름 옆의 확인란을 선택합니다.

  5. 정책 연결을 선택합니다.

역할을 업데이트하여 신뢰할 수 있는 엔터티를 포함하거나 액세스를 추가로 제한하는 방법에 대한 자세한 내용은 IAM 사용 설명서역할 변경을 참조하세요.

(선택 사항) S3 버킷 액세스에 대한 사용자 지정 정책 생성

Amazon S3 액세스를 위한 사용자 정의 정책 생성은 Systems Manager 작업에서 VPC 종단점을 사용 중이거나 자체의 S3 버킷을 사용 중인 경우에만 필요합니다. 기본 호스트 관리 구성에서 생성한 기본 IAM 역할 또는 이전 절차에서 생성한 인스턴스 프로파일에 이 정책을 연결할 수 있습니다.

다음 정책에서 액세스 권한을 제공하는 AWS 관리형 S3 버킷에 대한 내용은 AWS 관리형 S3 버킷과 SSM Agent 통신 섹션을 참조하세요.

  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 정책을 선택한 후 정책 생성을 선택합니다.

  3. JSON 탭을 선택하고 기본 텍스트를 다음과 같이 바꿉니다.

    { "Version": "2012-10-17", "Statement": [ Footnote callout 1 to explain a line in a JSON policy{ "Effect": "Allow", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::aws-ssm-region/*", "arn:aws:s3:::aws-windows-downloads-region/*", "arn:aws:s3:::amazon-ssm-region/*", "arn:aws:s3:::amazon-ssm-packages-region/*", "arn:aws:s3:::region-birdwatcher-prod/*", "arn:aws:s3:::aws-ssm-distributor-file-region/*", "arn:aws:s3:::aws-ssm-document-attachments-region/*", "arn:aws:s3:::patch-baseline-snapshot-region/*" ] }, Footnote callout 2 to explain a line in a JSON policy{ "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl", Footnote callout 3 to explain a line in a JSON policy "s3:GetEncryptionConfiguration" Footnote callout 4 to explain a line in a JSON policy ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "arn:aws:s3:::DOC-EXAMPLE-BUCKET" Footnote callout 5 to explain a line in a JSON policy ] } ] }

    1 첫 번째 Statement 요소는 VPC 엔드포인트를 사용 중인 경우에만 필요합니다.

    2 두 번째 Statement 요소는 Systems Manager 작업에서 사용하기 위해 생성한 S3 버킷을 사용 중인 경우에만 필요합니다.

    3 PutObjectAcl 액세스 제어 목록 권한은 다른 계정에서 S3 버킷에 대한 교차 계정 액세스를 지원하려는 경우에만 필요합니다.

    4 GetEncryptionConfiguration 요소는 암호화를 사용하기 위해 S3 버킷을 구성할 경우 필요합니다.

    5 암호화를 사용하기 위해 S3 버킷을 구성할 경우 S3 버킷 루트(예: arn:aws:s3:::DOC-EXAMPLE-BUCKET)가 리소스(Resource) 섹션에 있어야 합니다. 사용자, 그룹 또는 역할은 루트 버킷에 대한 액세스 권한을 사용하여 구성해야 합니다.

  4. 작업에 VPC 엔드포인트를 사용 중인 경우 다음을 수행합니다.

    첫 번째 Statement 요소에서, 각 region 자리 표시자를 이 정책이 사용되는 AWS 리전의 식별자로 대체합니다. 예를 들어 미국 동부(오하이오) 리전의 경우 us-east-2를 사용합니다. 지원되는 리전 값 목록은 Amazon Web Services 일반 참조의 Systems Manager 서비스 엔드포인트에 있는 리전 열을 참조하세요.

    중요

    이 정책에서는 특정 리전 대신에 와일드카드 문자(*)를 사용하지 않는 것이 좋습니다. 예를 들어, arn:aws:s3:::aws-ssm-*/*는 사용하지 마시고 arn:aws:s3:::aws-ssm-us-east-2/*를 사용하세요. 와일드카드를 사용하면 액세스 권한을 부여하도록 의도하지 않은 S3 버킷에 액세스할 수 있습니다. 둘 이상의 리전에 대해 인스턴스 프로파일을 사용하려는 경우, 각 리전에 대해 첫 번째 Statement 요소를 반복하는 것이 좋습니다.

    -또는-

    작업에서 VPC 엔드포인트를 사용하고 있지 않다면, 첫 번째 Statement 요소를 삭제할 수 있습니다.

  5. Systems Manager 작업에 자체의 S3 버킷을 사용 중인 경우 다음을 수행합니다.

    두 번째 Statement 요소에서 DOC-EXAMPLE-BUCKET을 계정에 있는 S3 버킷의 이름으로 바꿉니다. 이 버킷은 Systems Manager 작업을 위해 사용되며, 리소스로 "arn:aws:s3:::my-bucket-name/*"을 사용하여 버킷의 객체에 대한 권한을 제공합니다. 버킷 또는 버킷의 객체에 대한 권한 제공에 대한 자세한 내용은 Amazon Simple Storage Service 개발자 안내서Amazon S3 작업 및 AWS 블로그 게시물 IAM 정책, 버킷 정책 및 ACLs!를 참조하세요. ACL (S3 리소스에 대한 액세스 제어).

    참고

    둘 이상의 버킷을 사용하는 경우 각각에 대한 ARN을 제공합니다. 버킷에 대한 권한은 다음 예를 참조하세요.

    "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*", "arn:aws:s3:::DOC-EXAMPLE-BUCKET2/*" ]

    -또는-

    Systems Manager 작업에서 자체의 S3 버킷을 사용하고 있지 않다면 두 번째 Statement 요소를 삭제할 수 있습니다.

  6. 다음: 태그를 선택합니다.

  7. (선택 사항) 태그 추가(Add tag)를 선택하고 정책에 대한 기본 설정 태그를 입력하여 태그를 추가합니다.

  8. 다음: 검토를 선택합니다.

  9. 이름(Name)에 이 정책을 식별할 수 있는 이름(예: SSMInstanceProfileS3Policy)을 입력합니다.

  10. 정책 생성을 선택합니다.

관리형 인스턴스에 대한 추가 정책 고려 사항

이 섹션에서는 기본 호스트 관리 구성에서 생성한 기본 IAM 역할 또는 AWS Systems Manager용 인스턴스 프로파일에 추가할 수 있는 몇 가지 정책에 대해 설명합니다. 인스턴스와 Systems Manager API 간 통신에 권한을 부여하려면 시스템 요구 사항과 보안 요구 사항을 반영하는 사용자 정의 정책을 만드는 것이 좋습니다. 운영 계획에 따라, 다른 정책 중 하나 이상에 제시된 권한이 필요할 수 있습니다.

정책: AmazonSSMDirectoryServiceAccess

Windows Server의 Amazon EC2 인스턴스를 Microsoft AD 디렉터리에 조인하려는 경우에만 필요합니다.

이 AWS 관리형 정책은 SSM Agent가 관리형 인스턴스의 도메인 조인 요청을 위해 사용자 대신 AWS Directory Service에 액세스하도록 허용합니다. 자세한 내용은 AWS Directory Service 관리 안내서Windows EC2 인스턴스를 원활하게 조인을 참조하세요.

정책: CloudWatchAgentServerPolicy

인스턴스에서 지표 및 로그 데이터를 읽고 Amazon CloudWatch에 쓰기 위해 인스턴스에서 CloudWatch 에이전트를 설치하고 실행하려는 경우에만 필요합니다. 이렇게 하면 AWS 리소스의 문제 및 변경을 모니터링, 분석하고 빠르게 대응할 수 있습니다.

기본 호스트 관리 구성 또는 인스턴스 프로파일에서 생성된 기본 IAM 역할에는 Amazon EventBridge 또는 Amazon CloudWatch Logs와 같은 기능을 사용하는 경우에만 이 정책이 필요합니다. (예를 들어 특정 CloudWatch Logs 로그 스트림에 대한 쓰기 액세스를 제어하는 더 제한적인 정책을 생성할 수도 있습니다.)

참고

EventBridge 및 CloudWatch Logs 기능 사용은 선택 사항입니다. 그러나 사용하기로 한 경우에는 Systems Manager 구성 프로세스 시작 시 옵션을 설정하는 것이 좋습니다. 자세한 내용은 Amazon EventBridge User GuideAmazon CloudWatch Logs User Guide를 참조하세요.

추가 Systems Manager 기능에 대한 권한이 있는 IAM 정책을 생성하려면 다음 리소스를 참조하세요.

인스턴스에 Systems Manager 인스턴스 프로파일 연결(콘솔)

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창의 인스턴스에서 인스턴스를 선택합니다.

  3. 목록에서 EC2 인스턴스를 찾아서 선택합니다.

  4. 작업(Actions) 메뉴에서 보안(Security), IAM 역할 수정(Modify IAM role)을 선택합니다.

  5. IAM 역할(IAM role)EC2 인스턴스 권한에 대한 대체 구성의 절차를 사용하여 생성한 인스턴스 프로파일을 선택합니다.

  6. IAM 역할 업데이트(Update IAM role)를 선택합니다.

인스턴스에 IAM 역할 연결에 대한 자세한 내용은 선택한 운영 체제 유형에 따라 다음 중 하나를 참조하세요.

계속해서 Systems Manager용 VPC 엔드포인트를 사용하여 EC2 인스턴스의 보안 개선로 이동하십시오.