AWS Systems Manager에서 IAM을 사용하는 방식
AWS Identity and Access Management(IAM)를 사용하여 AWS Systems Manager에 대한 액세스를 관리하려면 먼저 어떤 IAM 기능을 Systems Manager에 사용할 수 있는지를 이해해야 합니다. Systems Manager 및 기타 AWS 서비스에서 IAM을 사용하는 방법을 전체적으로 알아보려면 IAM 사용 설명서의 IAM으로 작업하는 AWS 서비스을(를) 참조하세요.
Systems Manager ID 기반 정책
IAM 자격 증명 기반 정책을 사용하면 허용되거나 거부되는 작업 및 리소스를 지정할 수 있을 뿐 아니라 작업이 허용되거나 거부되는 조건도 지정할 수 있습니다. Systems Manager는 특정 작업, 리소스 및 조건 키를 지원합니다. JSON 정책에서 사용하는 모든 요소에 대해 알아보려면 IAM 사용 설명서의 IAM JSON 정책 요소 참조를 참조하십시오.
작업
관리자는 AWSJSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지를 지정할 수 있습니다. 즉, 어떤 보안 주체가 어떤 리소스와 어떤 조건에서 작업을 수행할 수 있는지를 지정할 수 있습니다.
JSON 정책의 Action
요소는 정책에서 액세스를 허용하거나 거부하는 데 사용할 수 있는 태스크를 설명합니다. 일반적으로 정책 작업의 이름은 연결된 AWSAPI 작업의 이름과 동일합니다. 일치하는 API 작업이 없는 권한 전용 작업 같은 몇 가지 예외도 있습니다. 정책에서 여러 작업이 필요한 몇 가지 작업도 있습니다. 이러한 추가 작업을 일컬어 종속 작업이라고 합니다.
연결된 작업을 수행할 수 있는 권한을 부여하기 위한 정책에 작업을 포함하십시오.
Systems Manager의 정책 작업은 작업 앞에 ssm:
접두사를 사용합니다. 예를 들어 Systems Manager PutParameter
API 작업으로 Systems Manager 파라미터(SSM 파라미터)를 생성할 수 있는 권한을 부여하려면 해당 정책에 ssm:PutParameter
작업을 포함합니다. 정책 문에는 Action
또는 NotAction
요소가 포함되어야 합니다. Systems Manager는 이 서비스로 수행할 수 있는 작업을 설명하는 고유한 작업 집합을 정의합니다.
명령문 하나에 여러 작업을 지정하려면 다음과 같이 쉼표로 구분합니다.
"Action": [ "ssm:action1", "ssm:action2" ]
참고
AWS Systems Manager의 다음 기능에서는 작업 앞에 다른 접두사를 사용합니다.
-
AWS AppConfig는 작업 앞에
appconfig:
접두사를 사용합니다. -
Incident Manager는 작업 앞에 접두사
ssm-incidents:
또는ssm-contacts:
를 사용합니다. -
Systems Manager GUI Connect는 작업 앞에
ssm-guiconnect:
접두사를 사용합니다. -
Quick Setup는 작업 앞에
ssm-quicksetup:
접두사를 사용합니다.
와일드카드(*)를 사용하여 여러 작업을 지정할 수 있습니다. 예를 들어, Describe
라는 단어로 시작하는 모든 태스크를 지정하려면 다음 태스크를 포함합니다.
"Action": "ssm:Describe*"
Systems Manager 작업 목록을 보려면 Service Authorization Reference의 Actions Defined by AWS Systems Manager를 참조하세요.
리소스
관리자는 AWSJSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지를 지정할 수 있습니다. 즉, 어떤 보안 주체가 어떤 리소스와 어떤 조건에서 작업을 수행할 수 있는지를 지정할 수 있습니다.
Resource
JSON 정책 요소는 작업이 적용되는 하나 이상의 개체를 지정합니다. 문장에는 Resource
또는 NotResource
요소가 반드시 추가되어야 합니다. 모범 사례에 따라 Amazon 리소스 이름(ARN)을 사용하여 리소스를 지정합니다. 리소스 수준 권한이라고 하는 특정 리소스 유형을 지원하는 작업에 대해 이 태스크를 수행할 수 있습니다.
작업 나열과 같이 리소스 수준 권한을 지원하지 않는 작업의 경우, 와일드카드(*)를 사용하여 해당 문이 모든 리소스에 적용됨을 나타냅니다.
"Resource": "*"
예를 들어, Systems Manager 유지 관리 기간 리소스에는 다음과 같은 ARN 형식이 있습니다.
arn:aws:ssm:
region
:account-id
:maintenancewindow/window-id
미국 동부(오하이오) 리전에서 명령문에 mw-0c50858d01EXAMPLE 유지 관리 기간을 지정하려면 다음과 유사한 ARN을 사용합니다.
"Resource": "arn:aws:ssm:us-east-2:
123456789012
:maintenancewindow/mw-0c50858d01EXAMPLE"
특정 계정에 속하는 모든 유지 관리 기간을 지정하려면 와일드카드(*)를 사용합니다.
"Resource": "arn:aws:ssm:
region
:123456789012
:maintenancewindow/*"
Parameter Store
API 작업의 경우 다음과 같이 AWS Identity and Access Management(IAM) 정책과 계층적 이름을 사용하여 계층 구조의 한 수준 내에 있는 모든 파라미터에 대한 액세스를 제공하거나 제한할 수 있습니다.
"Resource": "arn:aws:ssm:
region
:123456789012:parameter/Dev/ERP/Oracle/*"
리소스를 생성하기 위한 작업과 같은 일부 Systems Manager 작업은 특정 리소스에서 수행할 수 없습니다. 이러한 경우, 와일드카드(*)를 사용해야 합니다.
"Resource": "*"
일부 Systems Manager API 작업에서는 여러 리소스 사용을 허용합니다. 명령문 하나에 여러 리소스를 지정하려면 다음과 같이 각 ARN을 쉼표로 구분합니다.
"Resource": [ "resource1", "resource2"
참고
대부분의 AWS 서비스은(는) 콜론(:) 또는 슬래시(/)를 ARN에서 동일한 문자로 처리합니다. 하지만 Systems Manager에서는 리소스 패턴 및 규칙에 정확히 일치하는 항목이 있어야 합니다. 이벤트 패턴을 만들 때 리소스의 ARN이 일치하도록 정확한 ARN 문자를 사용해야 합니다.
아래 표에서는 Systems Manager에서 지원하는 리소스 유형의 ARN 형식을 설명합니다.
참고
ARN 형식에는 다음과 같은 예외가 있습니다.
-
AWS Systems Manager의 다음 기능에서는 작업 앞에 다른 접두사를 사용합니다.
-
AWS AppConfig는 작업 앞에
appconfig:
접두사를 사용합니다. -
Incident Manager는 작업 앞에 접두사
ssm-incidents:
또는ssm-contacts:
를 사용합니다. -
Systems Manager GUI Connect는 작업 앞에
ssm-guiconnect
접두사를 사용합니다.
-
-
Amazon 소유의 문서 및 자동화 정의 리소스뿐 아니라 Amazon 및 타사 소스에서 제공하는 공용 파라미터에는 ARN 형식의 계정 ID가 포함되지 않습니다. 예:
-
SSM 문서
AWS-RunPatchBaseline
:arn:aws:ssm:us-east-2::document/AWS-RunPatchBaseline
-
Automation 런북
AWS-ConfigureMaintenanceWindows
:arn:aws:ssm:us-east-2::automation-definition/AWS-ConfigureMaintenanceWindows
-
공용 파라미터
/aws/service/bottlerocket/aws-ecs-1-nvidia/x86_64/1.13.4/image_version
:arn:aws:ssm:us-east-2::parameter/aws/service/bottlerocket/aws-ecs-1-nvidia/x86_64/1.13.4/image_version
이러한 리소스 유형에 대한 자세한 내용은 다음 주제를 참조하세요.
-
-
Quick Setup는 작업 앞에
ssm-quicksetup:
접두사를 사용합니다.
리소스 유형 | ARN 형식 |
---|---|
애플리케이션(AWS AppConfig) | arn:aws:appconfig:region :account-id :application/application-id |
연결 | arn:aws:ssm:region :account-id :association/association-id |
자동화 실행 | arn:aws:ssm:region :account-id :automation-execution/automation-execution-id |
자동화 정의(버전 하위 리소스 사용) |
arn:aws:ssm: |
구성 프로파일(AWS AppConfig) | arn:aws:appconfig:region :account-id :application/application-id /configurationprofile/configurationprofile-id |
연락처(Incident Manager) |
arn:aws:ssm-contacts: |
배포 전략(AWS AppConfig) | arn:aws:appconfig:region :account-id :deploymentstrategy/deploymentstrategy-id |
문서 |
arn:aws:ssm: |
환경(AWS AppConfig) | arn:aws:appconfig:region :account-id :application/application-id /environment/environment-id |
인시던트 |
arn:aws:ssm-incidents: |
유지보수 윈도우 |
arn:aws:ssm: |
관리형 노드 |
arn:aws:ssm: |
관리형 노드 인벤토리 | arn:aws:ssm:region :account-id :managed-instance-inventory/managed-node-id |
OpsItem | arn:aws:ssm:region :account-id :opsitem/OpsItem-id |
파라미터 |
단일 수준 파라미터:
계층 구조적 구성으로 이름이 지정된 파라미터:
|
패치 기준 |
arn:aws:ssm: |
대응 계획 |
arn:aws:ssm-incidents: |
세션 |
arn:aws:ssm: |
모든 Systems Manager 리소스 |
arn:aws:ssm:* |
지정한 AWS 리전에서 지정한 AWS 계정가 소유한 모든 Systems Manager 리소스 |
arn:aws:ssm: |
자동화 정의의 경우, Systems Manager는 두 번째 수준 리소스인 버전 ID를 지원합니다. AWS에서는 이러한 두 번째 수준 리소스를 하위 리소스라고 합니다. 자동화 정의 리소스에 대해 버전 하위 리소스를 지정하면 자동화 정의의 특정 버전에 대한 액세스를 제공할 수 있습니다. 예를 들어, 자동화 정의의 최신 버전만 노드 관리에 사용되도록 하고자 할 수 있습니다.
파라미터를 구성하고 관리하려면 계층적 구조로 파라미터의 이름을 생성합니다. 계층 구조적 구성을 사용하면, 슬래시를 사용하여 정의한 경로를 파라미터 이름에 포함할 수 있습니다. 최대 15개의 수준으로 파라미터 리소스의 이름을 지정할 수 있습니다. 현재 환경의 기존 계층 구조를 반영하는 계층 구조를 생성하는 것이 좋습니다. 자세한 내용은 Systems Manager 파라미터 생성 단원을 참조하십시오.
대부분의 경우 세션 ID는 세션을 시작한 계정 사용자의 ID와 영숫자 접미사로 구성됩니다. 예:
arn:aws:us-east-2:111122223333:session/JohnDoe-1a2b3c4sEXAMPLE
단, 사용자 ID를 사용할 수 없는 경우 ARN은 다음과 같은 방법으로 구성됩니다.
arn:aws:us-east-2:111122223333:session/session-1a2b3c4sEXAMPLE
ARN 형식에 대한 자세한 내용은 Amazon Web Services 일반 참조의 Amazon 리소스 이름(ARN)을 참조하세요.
Systems Manager 리소스 유형 및 해당 ARN의 목록을 보려면 Service Authorization Reference의 Resources Defined by AWS Systems Manager를 참조하세요. 각 리소스의 ARN을 지정할 수 있는 작업을 알아보려면 AWS Systems Manager가 정의한 작업을 참조하세요.
Systems Manager에 사용되는 조건 키
관리자는 AWSJSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지를 지정할 수 있습니다. 즉, 어떤 보안 주체가 어떤 리소스와 어떤 조건에서 작업을 수행할 수 있는지를 지정할 수 있습니다.
Condition
요소(또는 Condition
블록)를 사용하면 정책이 발효되는 조건을 지정할 수 있습니다. Condition
요소는 옵션입니다. 같거나 작음과 같은 조건 연산자를 사용하여 정책의 조건을 요청의 값과 일치시키는 조건식을 생성할 수 있습니다.
한 문에서 여러 Condition
요소를 지정하거나 단일 Condition
요소에서 여러 키를 지정하는 경우, AWS는 논리적 AND
태스크를 사용하여 평가합니다. 단일 조건 키의 여러 값을 지정하는 경우, AWS는 논리적 OR
태스크를 사용하여 조건을 평가합니다. 명문의 권한을 부여하기 전에 모든 조건을 충족해야 합니다.
조건을 지정할 때 자리 표시자 변수를 사용할 수도 있습니다. 예컨대, IAM 사용자에게 IAM 사용자 이름으로 태그가 지정된 경우에만 리소스에 액세스할 수 있는 권한을 부여할 수 있습니다. 자세한 내용은 IAM 사용 설명서의 IAM 정책 요소: 변수 및 태그를 참조하십시오.
AWS는 전역 조건 키와 서비스별 조건 키를 지원합니다. 모든 AWS 전역 조건 키를 보려면 IAM 사용 설명서의 AWS 전역 조건 컨텍스트 키를 참조하세요.
Systems Manager 조건 키 목록을 보려면 Service Authorization Reference의 Condition Keys for AWS Systems Manager를 참조하세요. 조건 키를 사용할 수 있는 작업과 리소스를 알아보려면 AWS Systems Manager가 정의한 작업 섹션을 참조하세요.
ssm:resourceTag/*
조건 키 사용에 대한 자세한 내용은 다음 주제를 참조하십시오.
ssm:Recursive
및
ssm:Overwrite
조건 키 사용에 관한 자세한 내용은 파라미터 계층 구조 작업 섹션을 참조하세요.
예
Systems Manager 자격 증명 기반 정책의 예를 보려면 AWS Systems Manager 자격 증명 기반 정책 예시을 참조하세요.
Systems Manager 리소스 기반 정책
Amazon Simple Storage Service(Amazon S3)와 같은 다른 AWS 서비스도 리소스 기반 권한 정책을 지원합니다. 예를 들어, 권한 정책을 S3 버킷에 연결하여 해당 버킷에 대한 액세스 권한을 관리할 수 있습니다.
Systems Manager에서는 리소스 기반 정책을 지원하지 않습니다.
Systems Manager 태그 기반 인증
태그를 Systems Manager 리소스에 연결하거나 요청을 통해 태그를 Systems Manager에 전달할 수 있습니다. 태그를 기반으로 액세스를 제어하려면 ssm:resourceTag/
, key-name
aws:ResourceTag/
, key-name
aws:RequestTag/
또는 key-name
aws:TagKeys
조건 키를 사용하여 정책의 조건 요소에 태그 정보를 제공합니다. 다음 리소스 유형을 생성하거나 업데이트할 때 태그를 추가할 수 있습니다.
-
문서
-
관리형 노드
-
유지보수 윈도우
-
파라미터
-
패치 기준
-
OpsItem
Systems Manager 리소스 태그 지정에 대한 자세한 내용은 Systems Manager 리소스에 태그 지정 섹션을 참조하세요.
리소스의 태그를 기반으로 리소스에 대한 액세스를 제한하는 자격 증명 기반 정책의 예제는 태그 기준으로 Systems Manager 문서 보기 섹션에서 확인할 수 있습니다.
Systems Manager IAM 역할
IAM 역할은 특정 권한을 가지고 있는 AWS 계정 계정 내 엔터티입니다.
Systems Manager에서 임시 보안 인증 사용
임시 보안 인증을 사용하여 페더레이션을 통해 로그인하거나, IAM 역할을 맡거나, 교차 계정 역할을 맡을 수 있습니다. AssumeRole 또는 GetFederationToken 같은 AWS Security Token Service(AWS STS) API 작업을 호출하여 임시 보안 자격 증명을 가져옵니다.
Systems Manager는 임시 보안 인증 사용을 지원합니다.
서비스 연결 역할
서비스 연결 역할을 사용하면 AWS 서비스이(가) 다른 서비스의 리소스에 액세스하여 사용자 대신 태스크를 완료할 수 있습니다. 서비스 연결 역할은 IAM 계정에 나열되고, 서비스가 소유합니다. 관리자는 서비스 연결 역할의 권한을 볼 수 있지만 편집할 수는 없습니다.
Systems Manager에서는 서비스 연결 역할을 지원합니다. Systems Manager 서비스 연결 역할을 생성 또는 관리하는 방법에 대한 자세한 내용은 Systems Manager에 서비스 연결 역할 사용을 참조하세요.
서비스 역할
이 기능을 사용하면 서비스가 사용자를 대신하여 서비스 역할을 수임할 수 있습니다. 이 역할을 사용하면 서비스가 다른 서비스의 리소스에 액세스해 사용자를 대신해 작업을 완료할 수 있습니다. 서비스 역할은 IAM 계정에 표시되고, 해당 계정이 소유합니다. 즉, 관리자가 이 역할에 대한 권한을 변경할 수 있습니다. 그러나 권한을 변경하면 서비스의 기능이 손상될 수 있습니다.
Systems Manager는 서비스 역할을 지원합니다.
Systems Manager에서 IAM 역할 선택
Systems Manager에서 관리형 노드와 상호 작용하려면 Systems Manager에서 사용자를 대신하여 노드에 액세스할 수 있는 역할을 선택해야 합니다. 이전에 서비스 역할 또는 서비스 연결 역할을 생성한 경우 Systems Manager는 선택할 수 있는 역할 목록을 제공합니다. 관리형 노드 시작 및 중지에 대한 액세스를 허용하는 역할을 선택하는 것이 중요합니다.
EC2 인스턴스에 액세스하려면 인스턴스 권한을 구성해야 합니다. 자세한 내용은 Systems Manager에 필요한 인스턴스 권한 구성을 참조하세요.
하이브리드 및 멀티클라우드에서 비 EC2 노드에 액세스하려는 AWS 계정에 필요한 역할은 IAM 서비스 역할입니다. 자세한 내용은 하이브리드 및 멀티클라우드 환경에서 Systems Manager에 필요한 IAM 서비스 역할 생성을 참조세요.
자동화 워크플로는 서비스 역할(또는 수임 역할) 컨텍스트에 따라 시작할 수 있습니다. 그러면 서비스가 사용자 대신 작업을 수행할 수 있습니다. 수임 역할이 지정되어 있지 않으면 Automation은 실행을 호출한 사용자 컨텍스트를 사용합니다. 그러나 특정 상황에서는 자동화를 위한 서비스 역할을 지정해야 합니다. 자세한 내용은 자동화에 대한 서비스 역할(수임 역할) 액세스 구성 단원을 참조하십시오.
AWS Systems Manager 관리형 정책
AWS는 AWS에서 생성하고 관리하는 독립형 IAM 정책을 제공하여 많은 일반 사용 사례를 처리합니다. 이러한 AWS 관리형 정책은 사용자가 필요한 권한을 조사할 필요가 없도록 일반 사용 사례에 필요한 권한을 부여합니다. Systems Manager 작업 및 리소스에 대한 권한을 허용하는 고유의 사용자 정의 IAM 정책을 생성할 수도 있습니다.
Systems Manager의 관리형 정책에 대한 자세한 내용은 AWS Systems Manager의 AWS 관리형 정책을 참조하세요.
관리형 정책에 대한 일반 정보는 IAM 사용자 설명서의 AWS 관리형 정책을 참조하세요.