

• AWS Systems Manager CloudWatch 대시보드는 2026년 4월 30일 이후에는 더 이상 사용할 수 없습니다. 고객은 Amazon CloudWatch 콘솔을 계속 사용하여 현재와 마찬가지로 Amazon CloudWatch 대시보드를 보고, 생성하고, 관리할 수 있습니다. 자세한 내용은 [Amazon CloudWatch 대시보드 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)를 참조하세요.

# 4단계: 세션 기본 설정 구성
<a name="session-manager-getting-started-configure-preferences"></a>

AWS Identity and Access Management(IAM) 정책의 관리 권한이 부여된 사용자는 다음을 포함하여 세션 기본 설정을 구성할 수 있습니다.
+ Linux 관리형 노드에 대한 Run As 지원을 활성화합니다. 그러면 AWS Systems Manager Session Manager가 관리형 노드에서 생성할 수 있는 `ssm-user` 계정의 자격 증명이 아닌 특정 운영 체제 사용자의 자격 증명을 사용해 세션을 시작할 수 있습니다.
+ AWS KMS key 암호화를 사용해 클라이언트 시스템과 관리형 노드 사이에서 전송되는 데이터를 추가로 보호할 수 있도록 Session Manager를 구성합니다.
+ 세션 기록 로그를 생성하여 Amazon Simple Storage Service(Amazon S3) 버킷 또는 Amazon CloudWatch Logs 로그 그룹으로 보내도록 Session Manager를 구성합니다. 그런 다음 저장된 로그 데이터는 세션 중 인스턴스에 대한 세션 연결과 관리형 노드에 대한 명령 실행을 보고하는 데 사용할 수 있습니다.
+ 세션 시간 제한을 구성합니다. 이 설정을 사용하여 일정 기간 동안 활동이 없으면 세션을 종료할 시기를 지정할 수 있습니다.
+ 구성 가능한 셸 프로파일을 사용하도록 Session Manager를 구성합니다. 이러한 사용자 정의 가능한 프로파일을 사용하면 셸 기본 설정, 환경 변수, 작업 디렉터리 및 세션 시작 시 여러 명령 실행과 같은 세션 내 기본 설정을 정의할 수 있습니다.

Session Manager 기본 설정 구성에 필요한 권한에 대한 자세한 내용은 [Session Manager 기본 설정을 업데이트하도록 사용자 권한 부여 또는 거부](preference-setting-permissions.md) 섹션을 참조하세요.

**Topics**
+ [Session Manager 기본 설정을 업데이트하도록 사용자 권한 부여 또는 거부](preference-setting-permissions.md)
+ [유휴 세션 시간 제한 값 지정](session-preferences-timeout.md)
+ [최대 세션 기간 지정](session-preferences-max-timeout.md)
+ [구성 가능한 셸 프로파일 허용](session-preferences-shell-config.md)
+ [Linux 및 macOS 관리형 노드에 대한 Run As 지원 활성화](session-preferences-run-as.md)
+ [세션 데이터의 KMS 키 암호화를 설정하려면(콘솔)](session-preferences-enable-encryption.md)
+ [Session Manager 기본 설정 문서 생성(명령줄)](getting-started-create-preferences-cli.md)
+ [Session Manager 기본 설정 업데이트(명령줄)](getting-started-configure-preferences-cli.md)

Systems Manager 콘솔에서 세션 데이터 로깅 옵션을 구성하는 방법에 대한 자세한 내용은 다음 주제를 참조하세요.
+  [Amazon S3를 사용하여 세션 데이터 로깅(콘솔)](session-manager-logging-s3.md) 
+  [Amazon CloudWatch Logs를 사용하여 세션 데이터 스트리밍(콘솔)](session-manager-logging-cwl-streaming.md) 
+  [Amazon CloudWatch Logs를 사용하여 세션 데이터 로깅(콘솔)](session-manager-logging-cloudwatch-logs.md) 

# Session Manager 기본 설정을 업데이트하도록 사용자 권한 부여 또는 거부
<a name="preference-setting-permissions"></a>

계정 기본 설정은 각 AWS 리전에 대해 AWS Systems Manager(SSM) 문서로 저장됩니다. 사용자가 계정 내 세션에 대한 계정 기본 설정을 업데이트할 수 있으려면 기본 설정이 저장되는 SSM 문서 유형에 액세스할 수 있는 필수 권한을 부여 받은 상태여야 합니다. 이러한 권한은 AWS Identity and Access Management(IAM) 정책을 통해 부여됩니다.

**기본 설정이 생성 및 업데이트되도록 허용하는 관리자 정책**  
관리자는 언제든지 기본 설정을 생성 및 업데이트할 수 있도록 다음 정책을 가지고 있을 수 있습니다. 다음 정책은 us-east-2 계정 123456789012에서 `SSM-SessionManagerRunShell` 문서에 액세스하고 해당 문서를 업데이트하는 권한을 허용합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ssm:CreateDocument",
                "ssm:GetDocument",
                "ssm:UpdateDocument",
                "ssm:DeleteDocument"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
        }
    ]
}
```

------

**기본 설정 업데이트를 방지하는 사용자 정책**  
다음 정책을 사용하면 계정의 최종 사용자가 Session Manager 기본 설정을 업데이트 또는 재정의할 수 없습니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ssm:CreateDocument",
                "ssm:GetDocument",
                "ssm:UpdateDocument",
                "ssm:DeleteDocument"
            ],
            "Effect": "Deny",
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
        }
    ]
}
```

------

# 유휴 세션 시간 제한 값 지정
<a name="session-preferences-timeout"></a>

AWS Systems Manager의 도구인 Session Manager를 사용하여 시스템이 세션을 끝내기 전에 사용자의 비활성 상태를 허용하는 시간을 지정할 수 있습니다. 기본적으로 20분 동안 활동이 없으면 세션이 시간 초과됩니다. 이 설정을 수정하여 1\$160분 동안 비활성 상태이면 세션이 시간 초과되도록 지정할 수 있습니다. 일부 전문 컴퓨팅 보안 기관에서는 유휴 세션 시간 제한을 최대 15분으로 설정할 것을 권장합니다.

Session Manager가 클라이언트 측 입력을 수신하면 유휴 세션 제한 시간 타이머가 재설정됩니다. 이러한 입력에는 다음이 포함됩니다(이에 국한되지 않음).
+ 터미널의 키보드 입력
+ 터미널 또는 브라우저 창 크기 조정 이벤트
+ 세션 재연결(ResumeSession) - 네트워크 중단, 브라우저 탭 관리 또는 WebSocket 연결 해제로 인해 발생할 수 있음

이러한 이벤트는 유휴 타이머를 재설정하므로 직접 터미널 명령 없이도 세션이 구성된 제한 시간보다 오래 활성 상태로 유지될 수 있습니다.

보안 요구 사항에 따라 활동에 관계없이 엄격한 세션 기간 제한이 필요한 경우, 유휴 제한 시간 외에 *최대 세션 기간* 설정을 사용합니다. 자세한 내용은 [최대 세션 기간 지정](session-preferences-max-timeout.md) 섹션을 참조하세요.

**유휴 세션 시간 제한을 허용하려면(콘솔)**

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

1. 탐색 창에서 **Session Manager**를 선택합니다.

1. **기본 설정** 탭을 선택하고 **편집**을 선택합니다.

1. [**유휴 세션 시간 제한(Idle session timeout)**] 아래의 [**분(minutes)**] 필드에 세션이 종료되기 전 사용자가 비활성 상태일 수 있는 시간을 지정합니다.

1. **저장**을 선택합니다.

# 최대 세션 기간 지정
<a name="session-preferences-max-timeout"></a>

AWS Systems Manager의 도구인 Session Manager를 사용하면 세션이 종료되기 전의 최대 지속 시간을 지정할 수 있습니다. 기본적으로 세션에는 최대 기간이 없습니다. 최대 세션 기간에 대해 지정하는 값은 1\$11,440분 사이여야 합니다.

**최대 세션 기간 지정(콘솔)**

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

1. 탐색 창에서 **Session Manager**를 선택합니다.

1. **기본 설정** 탭을 선택하고 **편집**을 선택합니다.

1. **최대 세션 기간 활성화(Enable maximum session duration)** 옆의 체크박스를 선택합니다.

1. **최대 세션 기간(Maximum session duration)** 밑의 **분(minutes)** 필드에서 세션이 종료되기 전의 최대 지속 시간을 지정합니다.

1. **저장**을 선택합니다.

# 구성 가능한 셸 프로파일 허용
<a name="session-preferences-shell-config"></a>

기본적으로 Linux용 EC2 인스턴스의 세션은 Bourne 쉘(sh)을 사용하여 시작합니다. 그러나 bash 등의 다른 셸을 사용하고자 할 수 있습니다. 구성 가능한 셸 프로파일을 허용하여 세션 내에서 셸 기본 설정, 환경 변수, 작업 디렉터리 및 세션이 시작될 때 여러 명령 실행과 같은 기본 설정을 사용자 지정할 수 있습니다.

**중요**  
Systems Manager 는 셸 프로파일의 명령이나 스크립트를 검사하여 실행되기 전에 인스턴스에 어떤 변화가 있는지 확인하지 않습니다. 사용자가 셸 프로파일에 입력한 명령이나 스크립트를 수정할 수 있는 권한을 제한하려면 다음을 권장합니다.  
AWS Identity and Access Management(IAM) 사용자 및 역할에 대한 사용자 지정된 세션 유형 문서를 생성합니다. 그런 다음 이러한 사용자 및 역할에 대한 IAM 정책을 수정하여 `StartSession` API 작업이 해당 사용자에 대해 생성한 세션 유형 문서만 사용할 수 있도록 합니다. 자세한 내용은 [Session Manager 기본 설정 문서 생성(명령줄)](getting-started-create-preferences-cli.md) 및 [Session Manager에 대한 빠른 시작 최종 사용자 정책](getting-started-restrict-access-quickstart.md#restrict-access-quickstart-end-user) 섹션을 참조하세요.
IAM 사용자 및 역할에 대한 IAM 정책을 수정하여 생성한 세션 유형 문서 리소스에 대한 `UpdateDocument` API 작업 액세스를 거부합니다. 이렇게 하면 사용자와 역할이 설정을 수정하지 않고도 세션 기본 설정에 대해 생성한 문서를 사용할 수 있습니다.

**구성 가능한 셸 프로파일을 설정하려면**

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

1. 탐색 창에서 **Session Manager**를 선택합니다.

1. **기본 설정** 탭을 선택하고 **편집**을 선택합니다.

1. 해당 운영 체제의 필드에서 세션이 시작될 때 실행할 환경 변수, 셸 기본 설정 또는 명령을 지정합니다.

1. **저장**을 선택합니다.

다음은 셸 프로파일에 추가할 수 있는 몇 가지 예제 명령입니다.

bash 쉘로 변경하고 Linux 인스턴스의 /usr 디렉터리로 변경합니다.

```
exec /bin/bash
cd /usr
```

세션 시작 시 타임스탬프 및 시작 메시지를 출력합니다.

------
#### [ Linux & macOS ]

```
timestamp=$(date '+%Y-%m-%dT%H:%M:%SZ')
user=$(whoami)
echo $timestamp && echo "Welcome $user"'!'
echo "You have logged in to a production instance. Note that all session activity is being logged."
```

------
#### [  Windows  ]

```
$timestamp = (Get-Date).ToString("yyyy-MM-ddTH:mm:ssZ")
$splitName = (whoami).Split("\")
$user = $splitName[1]
Write-Host $timestamp
Write-Host "Welcome $user!"
Write-Host "You have logged in to a production instance. Note that all session activity is being logged."
```

------

세션 시작 시 동적 시스템 활동을 봅니다.

------
#### [ Linux & macOS ]

```
top
```

------
#### [  Windows  ]

```
while ($true) { Get-Process | Sort-Object -Descending CPU | Select-Object -First 30; `
Start-Sleep -Seconds 2; cls
Write-Host "Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName"; 
Write-Host "-------  ------    -----      ----- -----   ------     -- -----------"}
```

------

# Linux 및 macOS 관리형 노드에 대한 Run As 지원 활성화
<a name="session-preferences-run-as"></a>

기본적으로 Session Manager는 관리형 노드에 생성된 시스템 생성 `ssm-user` 계정의 보안 인증 정보를 사용하여 연결을 인증합니다. Linux 및 macOS 시스템에서는 이 계정이 `/etc/sudoers/`에 추가됩니다. 선택하는 경우, 대신 운영 체제(OS) 사용자 계정 또는 Active Directory에 가입한 인스턴스를 위한 도메인 사용자의 인증 정보를 사용하여 세션을 인증할 수 있습니다. 이 경우 Session Manager는 세션을 시작하기 전에 지정한 OS 계정이 노드 또는 도메인에 존재하는지 확인합니다. 노드 또는 도메인에 존재하지 않는 OS 계정을 사용하여 세션을 시작하려고 하면 연결이 실패합니다.

**참고**  
Session Manager는 운영 체제의 `root` 사용자 계정을 사용한 연결 인증을 지원하지 않습니다. OS 사용자 계정을 사용하여 인증된 세션의 경우 로그인 제한 또는 시스템 리소스 사용 제한과 같은 노드의 OS 수준 및 디렉터리 정책이 적용되지 않을 수 있습니다.

**작동 방식**  
세션에서 Run As 지원을 설정하면 시스템이 다음과 같이 액세스 권한 유무를 검사합니다.

1. 세션을 시작하는 사용자의 경우 IAM 엔터티(사용자 또는 역할)에 `SSMSessionRunAs = os user account name`으로 태그가 지정되어 있나요?

   그렇다면 관리형 노드에 OS 사용자 이름이 존재하나요? 그렇다면 세션을 시작합니다. 그렇지 않다면 세션 시작을 허용하지 않습니다.

   IAM 엔터티에 `SSMSessionRunAs = os user account name`으로 태그가 지정되지* *않은 경우 2단계로 계속 진행합니다.

1. IAM 엔터티에 `SSMSessionRunAs = os user account name`로 태그가 지정되어 있지 않은 경우 AWS 계정의 Session Manager 기본 설정에서 OS 사용자 이름이 지정되어 있나요?

   그렇다면 관리형 노드에 OS 사용자 이름이 존재하나요? 그렇다면 세션을 시작합니다. 그렇지 않다면 세션 시작을 허용하지 않습니다.

**참고**  
Run As 지원을 활성화하면 Session Manager가 관리형 노드에서 `ssm-user` 계정을 사용하여 세션을 시작할 수 없습니다. 즉, Session Manager가 지정된 OS 사용자 계정을 사용하여 연결하지 못하는 경우 기본 방법을 사용하는 연결로 되돌아가지 않습니다.  
OS 계정을 지정하거나 IAM 엔터티에 태그를 지정하지 않고 Run As를 활성화하고 Session Manager 기본 설정에서 OS 계정을 지정하지 않은 경우 세션 연결 시도가 실패합니다.

**Linux 및 macOS 관리형 노드에 대한 Run As 지원을 활성화하는 방법**

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

1. 탐색 창에서 **Session Manager**를 선택합니다.

1. **기본 설정** 탭을 선택하고 **편집**을 선택합니다.

1. **Linux 인스턴스에 대한 Run As 지원 활성화** 옆에 있는 확인란을 선택합니다.

1. 다음 중 하나를 수행하세요.
   + **옵션 1**: **운영 체제 사용자 이름** 필드에 세션을 시작할 때 사용할 OS 사용자 계정의 이름을 입력합니다. 이 옵션을 사용하면 Session Manager를 사용하여 연결하는 AWS 계정의 모든 사용자에 대해 동일한 OS 사용자가 모든 세션을 실행합니다.
   + **옵션 2**(권장): **IAM 콘솔 열기** 링크를 선택합니다. 탐색 창에서 **사용자** 또는 **역할**을 선택합니다. 태그를 추가할 개체(사용자 또는 역할)와 **태그** 탭을 차례대로 선택합니다. 키 이름으로 `SSMSessionRunAs`를 입력합니다. 키 값에 대한 OS 사용자 계정의 이름을 입력합니다. **변경 사항 저장**을 선택합니다.

     이 옵션을 사용하면 원하는 경우 서로 다른 IAM 엔터티에 대해 고유한 OS 사용자를 지정할 수 있습니다. IAM 개체(사용자 또는 역할) 태그 지정에 대한 자세한 내용은 *IAM 사용 설명서*의 [IAM 리소스 태그 지정](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)을 참조하세요.

     다음은 예입니다.  
![\[Session Manager Run As 권한을 위한 태그를 지정하는 스크린샷.\]](http://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/images/ssn-run-as-tags.png)

1. **저장**을 선택합니다.

# 세션 데이터의 KMS 키 암호화를 설정하려면(콘솔)
<a name="session-preferences-enable-encryption"></a>

키를 생성하고 관리하려면 AWS Key Management Service(AWS KMS)을 사용합니다. AWS KMS로 다양한 AWS 서비스 및 애플리케이션의 암호화 사용을 제어할 수 있습니다. KMS 키 암호화를 사용하여 관리형 노드와 AWS 계정의 사용자 로컬 머신 사이에 전송되는 세션 데이터가 암호화되도록 지정할 수 있습니다. (이는 AWS에서 기본적으로 제공하는 TLS 1.2/1.3 암호화에 대한 추가 사항입니다.) Session Manager 세션 데이터를 암호화하려면 AWS KMS를 사용하여 대칭 KMS 키를 생성합니다.

`Standard_Stream`, `InteractiveCommands`, `NonInteractiveCommands` 세션 유형에 AWS KMS 암호화를 사용할 수 있습니다. AWS KMS(AWS Systems Manager)에서 생성한 키를 사용하여 세션 데이터를 암호화하는 옵션을 사용하려면 버전 2.3.539.0 이상의 SSM Agent가 관리형 노드에 설치되어 있어야 합니다.

**참고**  
AWS Systems Manager 콘솔에서 관리형 노드의 암호를 재설정하려면 AWS KMS 암호화를 허용해야 합니다. 자세한 내용은 [관리형 노드의 암호 재설정](fleet-manager-reset-password.md#managed-instance-reset-a-password) 섹션을 참조하세요.

AWS 계정에서 생성한 키를 사용할 수 있습니다. 다른 AWS 계정에서 생성된 키를 사용할 수도 있습니다. 다른 AWS 계정에 있는 키 생성자는 키를 사용하는 데 필요한 권한을 제공해야 합니다.

세션 데이터에 대해 KMS 키 암호화를 설정하면 세션을 시작하는 사용자와 거기에 연결하는 관리형 노드 모두에 키를 사용할 권한이 있어야 합니다. Session Manager과 함께 AWS Identity and Access Management(IAM) 정책을 통해 KMS 키를 사용할 수 있는 권한을 제공합니다. 자세한 내용은 다음 주제를 참조하세요.
+ 계정의 사용자에 대한 AWS KMS 권한 추가: [Session Manager에 대한 샘플 IAM 정책](getting-started-restrict-access-quickstart.md).
+ 계정의 관리형 노드에 대한 AWS KMS 권한 추가: [2단계: Session Manager의 인스턴스 권한 확인 또는 추가](session-manager-getting-started-instance-profile.md).

KMS 키 생성 및 관리에 대한 자세한 내용은 [https://docs.aws.amazon.com/kms/latest/developerguide/](https://docs.aws.amazon.com/kms/latest/developerguide/)를 참조하세요.

계정에서 AWS CLI를 사용하여 세션 데이터의 KMS 키 암호화를 설정하는 방법에 대한 자세한 내용은 [Session Manager 기본 설정 문서 생성(명령줄)](getting-started-create-preferences-cli.md) 또는 [Session Manager 기본 설정 업데이트(명령줄)](getting-started-configure-preferences-cli.md) 섹션를 참조하세요.

**참고**  
KMS 키 사용에 요금이 부과됩니다. 자세한 내용은 [AWS Key Management Service 요금](https://aws.amazon.com/kms/pricing/)을 참조하십시오.

**세션 데이터의 KMS 키 암호화를 설정하려면(콘솔)**

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

1. 탐색 창에서 **Session Manager**를 선택합니다.

1. **기본 설정** 탭을 선택하고 **편집**을 선택합니다.

1. **KMS 암호화 활성화(Enable KMS encryption)** 옆의 체크박스를 선택합니다.

1. 다음 중 하나를 수행하세요.
   + [**내 현재 계정에서 KMS 키 선택(Select a KMS key in my current account)**] 옆에 있는 버튼을 선택한 다음 목록에서 키를 선택합니다.

     -또는-

     **Enter a KMS key alias or KMS key ARN(KMS 키 별칭 또는 KMS 키 ARN 입력)** 옆의 버튼을 선택하십시오. 현재 계정에서 생성한 키의 KMS 키 별칭을 수동으로 입력하거나 다른 계정의 키에 대한 키 Amazon 리소스 이름(ARN)을 입력합니다. 예를 들어, 다음과 같습니다.
     + 키 별칭: `alias/my-kms-key-alias`
     + 키 ARN: `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-12345EXAMPLE`

     -또는-

     [**새 키 생성(Create new key)**]을 선택하여 계정에서 새 KMS 키를 생성합니다. 새 키를 생성한 후 **기본 설정** 탭으로 돌아가서 계정의 세션 데이터를 암호화할 키를 선택하십시오.

   키 공유에 대한 자세한 내용은 *AWS Key Management Service Developer Guide*의 [Allowing External AWS 계정 to Access a key](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-external-accounts)를 참조하세요.

1. **저장**을 선택합니다.

# Session Manager 기본 설정 문서 생성(명령줄)
<a name="getting-started-create-preferences-cli"></a>

다음 절차를 사용하여 AWS Systems Manager Session Manager 세션의 기본 설정을 정의하는 SSM 문서를 생성합니다. 문서를 사용하여 데이터 암호화, 세션 기간 및 로깅을 포함한 세션 옵션을 구성할 수 있습니다. 예를 들면, 기본 설정을 사용하여 Amazon Simple Storage Service(S3) 버킷 또는 Amazon CloudWatch Logs 로그 그룹에 세션 로그 데이터를 저장할지를 지정할 수 있습니다. AWS 계정 및 AWS 리전의 모든 세션에 대한 일반 기본 설정을 정의하거나 개별 세션의 기본 설정을 정의하는 문서를 생성할 수 있습니다.

**참고**  
Session Manager 콘솔을 사용하여 일반 세션 기본 설정을 구성할 수도 있습니다.

Session Manager 기본 설정을 설정하는 데 사용하는 문서에는 `Standard_Stream`의 `sessionType`이 있어야 합니다. 세션 문서에 대한 자세한 내용은 [Session 문서 스키마](session-manager-schema.md) 섹션을 참조하세요.

명령줄을 사용하여 기존 Session Manager 기본 설정을 업데이트하는 방법에 대한 자세한 내용은 [Session Manager 기본 설정 업데이트(명령줄)](getting-started-configure-preferences-cli.md) 섹션을 참조하세요.

CloudFormation을 사용하여 세션 환경설정을 생성하는 방법의 예제는 *AWS CloudFormation 사용 설명서*의 [Session Manager 기본 설정에 대한 Systems Manager 문서 생성](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html#aws-resource-ssm-document--examples)을 참조하세요.

**참고**  
이 절차에서는 AWS 계정 수준에서 Session Manager 기본 설정을 설정하는 문서를 생성하는 방법을 설명합니다. 세션 수준 기본 설정을 설정하는 데 사용할 문서를 생성하려면 파일 이름 관련 명령 입력에 대한 `SSM-SessionManagerRunShell` 이외의 값을 지정합니다.  
문서를 사용하여 AWS Command Line Interface(AWS CLI)에서 시작하는 세션의 기본 설정을 설정하려면 문서 이름을 `--document-name` 파라미터 값으로 제공합니다. Session Manager 콘솔에서 시작하는 세션의 기본 설정을 설정하려면 문서 이름을 입력하거나 목록에서 선택할 수 있습니다.

**Session Manager 기본 설정을 생성하려면(명령줄)**

1. 로컬 시스템에서 `SessionManagerRunShell.json`이라는 JSON 파일을 생성한 다음 이 파일에 다음 내용을 붙여 넣습니다.

   ```
   {
       "schemaVersion": "1.0",
       "description": "Document to hold regional settings for Session Manager",
       "sessionType": "Standard_Stream",
       "inputs": {
           "s3BucketName": "",
           "s3KeyPrefix": "",
           "s3EncryptionEnabled": true,
           "cloudWatchLogGroupName": "",
           "cloudWatchEncryptionEnabled": true,
           "cloudWatchStreamingEnabled": false,
           "kmsKeyId": "",
           "runAsEnabled": false,
           "runAsDefaultUser": "",
           "idleSessionTimeout": "",
           "maxSessionDuration": "",
           "shellProfile": {
               "windows": "date",
               "linux": "pwd;ls"
           }
       }
   }
   ```

   다음 예와 같이 값을 하드코딩하는 대신 파라미터를 사용하여 세션 기본 설정에 값을 전달할 수도 있습니다.

   ```
   {
      "schemaVersion":"1.0",
      "description":"Session Document Parameter Example JSON Template",
      "sessionType":"Standard_Stream",
      "parameters":{
         "s3BucketName":{
            "type":"String",
            "default":""
         },
         "s3KeyPrefix":{
            "type":"String",
            "default":""
         },
         "s3EncryptionEnabled":{
            "type":"Boolean",
            "default":"false"
         },
         "cloudWatchLogGroupName":{
            "type":"String",
            "default":""
         },
         "cloudWatchEncryptionEnabled":{
            "type":"Boolean",
            "default":"false"
         }
      },
      "inputs":{
         "s3BucketName":"{{s3BucketName}}",
         "s3KeyPrefix":"{{s3KeyPrefix}}",
         "s3EncryptionEnabled":"{{s3EncryptionEnabled}}",
         "cloudWatchLogGroupName":"{{cloudWatchLogGroupName}}",
         "cloudWatchEncryptionEnabled":"{{cloudWatchEncryptionEnabled}}",
         "kmsKeyId":""
      }
   }
   ```

1. 세션 데이터를 보낼 위치를 지정하십시오. S3 버킷 이름(선택적 접두사 사용) 또는 CloudWatch Logs 로그 그룹 이름을 지정할 수 있습니다. 로컬 클라이언트와 관리형 노드 사이에 데이터를 추가로 암호화하려면 암호화에 사용할 KMS 키를 제공하세요. 다음은 예입니다.

   ```
   {
     "schemaVersion": "1.0",
     "description": "Document to hold regional settings for Session Manager",
     "sessionType": "Standard_Stream",
     "inputs": {
       "s3BucketName": "amzn-s3-demo-bucket",
       "s3KeyPrefix": "MyS3Prefix",
       "s3EncryptionEnabled": true,
       "cloudWatchLogGroupName": "MyLogGroupName",
       "cloudWatchEncryptionEnabled": true,
       "cloudWatchStreamingEnabled": false,
       "kmsKeyId": "MyKMSKeyID",
       "runAsEnabled": true,
       "runAsDefaultUser": "MyDefaultRunAsUser",
       "idleSessionTimeout": "20",
       "maxSessionDuration": "60",
       "shellProfile": {
           "windows": "MyCommands",
           "linux": "MyCommands"
       }
     }
   }
   ```
**참고**  
세션 로그 데이터를 암호화하지 않으려는 경우 `s3EncryptionEnabled`의 `true`를 `false`로 변경합니다.  
Amazon S3 버킷 또는 CloudWatch Logs 로그 그룹에 로그를 보내지 않거나, 활성 세션 데이터를 암호화하지 않거나, 계정 세션에서 Run As 지원을 설정하지 않으려면 해당 옵션에 대한 행을 삭제할 수 있습니다. `inputs` 섹션의 마지막 줄은 쉼표로 끝나면 안 됩니다.  
KMS 키 ID를 추가하여 세션 데이터를 암호화하면 세션을 시작하는 사용자와 거기에 연결하는 관리형 노드 모두에 키를 사용할 권한이 있어야 합니다. Session Manager와 함께 IAM 정책을 통해 KMS 키를 사용할 수 있는 권한을 제공합니다. 자세한 내용은 다음 주제를 참조하세요.  
계정의 사용자에 대한 AWS KMS 권한 추가: [Session Manager에 대한 샘플 IAM 정책](getting-started-restrict-access-quickstart.md)
계정의 관리형 노드에 대한 AWS KMS 권한 추가: [2단계: Session Manager의 인스턴스 권한 확인 또는 추가](session-manager-getting-started-instance-profile.md).

1. 파일을 저장합니다.

1. JSON 파일을 생성한 디렉터리에서 다음 명령을 실행합니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm create-document \
       --name SSM-SessionManagerRunShell \
       --content "file://SessionManagerRunShell.json" \
       --document-type "Session" \
       --document-format JSON
   ```

------
#### [  Windows  ]

   ```
   aws ssm create-document ^
       --name SSM-SessionManagerRunShell ^
       --content "file://SessionManagerRunShell.json" ^
       --document-type "Session" ^
       --document-format JSON
   ```

------
#### [   PowerShell   ]

   ```
   New-SSMDocument `
       -Name "SSM-SessionManagerRunShell" `
       -Content (Get-Content -Raw SessionManagerRunShell.json) `
       -DocumentType "Session" `
       -DocumentFormat JSON
   ```

------

   이 작업이 성공하면 다음과 비슷한 출력이 반환됩니다.

   ```
   {
       "DocumentDescription": {
           "Status": "Creating",
           "Hash": "ce4fd0a2ab9b0fae759004ba603174c3ec2231f21a81db8690a33eb66EXAMPLE",
           "Name": "SSM-SessionManagerRunShell",
           "Tags": [],
           "DocumentType": "Session",
           "PlatformTypes": [
               "Windows",
               "Linux"
           ],
           "DocumentVersion": "1",
           "HashType": "Sha256",
           "CreatedDate": 1547750660.918,
           "Owner": "111122223333",
           "SchemaVersion": "1.0",
           "DefaultVersion": "1",
           "DocumentFormat": "JSON",
           "LatestVersion": "1"
       }
   }
   ```

# Session Manager 기본 설정 업데이트(명령줄)
<a name="getting-started-configure-preferences-cli"></a>

다음 절차에서는 기본 설정된 명령줄 도구를 사용하여 선택한 AWS 리전에서 AWS 계정에 대한 AWS Systems Manager Session Manager 기본 설정을 변경하는 방법을 설명합니다. Session Manager 기본 설정을 사용하여 Amazon Simple Storage Service(Amazon S3) 버킷 또는 Amazon CloudWatch Logs 로그 그룹에서 세션 데이터를 로그하는 옵션을 지정합니다. Session Manager 기본 설정을 사용하여 세션 데이터를 암호화할 수도 있습니다.

**Session Manager 기본 설정을 업데이트하려면(명령줄)**

1. 로컬 시스템에서 `SessionManagerRunShell.json`이라는 JSON 파일을 생성한 다음 이 파일에 다음 내용을 붙여 넣습니다.

   ```
   {
       "schemaVersion": "1.0",
       "description": "Document to hold regional settings for Session Manager",
       "sessionType": "Standard_Stream",
       "inputs": {
           "s3BucketName": "",
           "s3KeyPrefix": "",
           "s3EncryptionEnabled": true,
           "cloudWatchLogGroupName": "",
           "cloudWatchEncryptionEnabled": true,
           "cloudWatchStreamingEnabled": false,
           "kmsKeyId": "",
           "runAsEnabled": true,
           "runAsDefaultUser": "",
           "idleSessionTimeout": "",
           "maxSessionDuration": "",
           "shellProfile": {
               "windows": "date",
               "linux": "pwd;ls"
           }
       }
   }
   ```

1. 세션 데이터를 보낼 위치를 지정하십시오. S3 버킷 이름(선택적 접두사 사용) 또는 CloudWatch Logs 로그 그룹 이름을 지정할 수 있습니다. 로컬 클라이언트와 관리형 노드 사이에 데이터를 추가로 암호화하려면 암호화에 사용할 AWS KMS key를 제공하세요. 다음은 예입니다.

   ```
   {
     "schemaVersion": "1.0",
     "description": "Document to hold regional settings for Session Manager",
     "sessionType": "Standard_Stream",
     "inputs": {
       "s3BucketName": "amzn-s3-demo-bucket",
       "s3KeyPrefix": "MyS3Prefix",
       "s3EncryptionEnabled": true,
       "cloudWatchLogGroupName": "MyLogGroupName",
       "cloudWatchEncryptionEnabled": true,
       "cloudWatchStreamingEnabled": false,
       "kmsKeyId": "MyKMSKeyID",
       "runAsEnabled": true,
       "runAsDefaultUser": "MyDefaultRunAsUser",
       "idleSessionTimeout": "20",
       "maxSessionDuration": "60",
       "shellProfile": {
           "windows": "MyCommands",
           "linux": "MyCommands"
       }
     }
   }
   ```
**참고**  
세션 로그 데이터를 암호화하지 않으려는 경우 `s3EncryptionEnabled`의 `true`를 `false`로 변경합니다.  
Amazon S3 버킷 또는 CloudWatch Logs 로그 그룹에 로그를 보내지 않거나, 활성 세션 데이터를 암호화하지 않거나, 계정 세션에서 Run As 지원을 설정하지 않으려면 해당 옵션에 대한 행을 삭제할 수 있습니다. `inputs` 섹션의 마지막 줄은 쉼표로 끝나면 안 됩니다.  
KMS 키 ID를 추가하여 세션 데이터를 암호화하면 세션을 시작하는 사용자와 거기에 연결하는 관리형 노드 모두에 키를 사용할 권한이 있어야 합니다. Session Manager과 함께 AWS Identity and Access Management(IAM) 정책을 통해 KMS 키를 사용할 수 있는 권한을 제공합니다. 자세한 내용은 다음 주제를 참조하세요.  
계정의 사용자에 대한 AWS KMS 권한 추가: [Session Manager에 대한 샘플 IAM 정책](getting-started-restrict-access-quickstart.md).
계정의 관리형 노드에 대한 AWS KMS 권한 추가: [2단계: Session Manager의 인스턴스 권한 확인 또는 추가](session-manager-getting-started-instance-profile.md).

1. 파일을 저장합니다.

1. JSON 파일을 생성한 디렉터리에서 다음 명령을 실행합니다.

------
#### [ Linux & macOS ]

   ```
   aws ssm update-document \
       --name "SSM-SessionManagerRunShell" \
       --content "file://SessionManagerRunShell.json" \
       --document-version "\$LATEST"
   ```

------
#### [  Windows  ]

   ```
   aws ssm update-document ^
       --name "SSM-SessionManagerRunShell" ^
       --content "file://SessionManagerRunShell.json" ^
       --document-version "$LATEST"
   ```

------
#### [   PowerShell   ]

   ```
   Update-SSMDocument `
       -Name "SSM-SessionManagerRunShell" `
       -Content (Get-Content -Raw SessionManagerRunShell.json) `
       -DocumentVersion '$LATEST'
   ```

------

   이 작업이 성공하면 다음과 비슷한 출력이 반환됩니다.

   ```
   {
       "DocumentDescription": {
           "Status": "Updating",
           "Hash": "ce4fd0a2ab9b0fae759004ba603174c3ec2231f21a81db8690a33eb66EXAMPLE",
           "Name": "SSM-SessionManagerRunShell",
           "Tags": [],
           "DocumentType": "Session",
           "PlatformTypes": [
               "Windows",
               "Linux"
           ],
           "DocumentVersion": "2",
           "HashType": "Sha256",
           "CreatedDate": 1537206341.565,
           "Owner": "111122223333",
           "SchemaVersion": "1.0",
           "DefaultVersion": "1",
           "DocumentFormat": "JSON",
           "LatestVersion": "2"
       }
   }
   ```