8단계: (선택 사항) Session Manager를 통한 SSH 연결에 대한 권한 허용 및 제어 - AWS Systems Manager

8단계: (선택 사항) Session Manager를 통한 SSH 연결에 대한 권한 허용 및 제어

AWS Command Line Interface(AWS CLI)를 사용하여 AWS Systems Manager Session Manager를 통해 관리형 노드에 SSH(Secure Shell) 연결을 설정하도록 AWS 계정의 사용자를 허용할 수 있습니다. SSH로 연결하는 사용자는 로컬 시스템과 관리형 노드 사이에서 SCP(Secure Copy Protocol)를 사용하여 파일을 복사하는 것도 가능합니다. 이 기능을 사용하면 인바운드 포트를 개방하거나 Bastion 호스트를 유지하지 않고도 관리형 노드에 연결할 수 있습니다.

SSH 연결을 허용한 후 AWS Identity and Access Management(IAM) 정책을 사용하여 사용자, 그룹 또는 역할이 Session Manager를 사용한 SSH 연결을 명시적으로 허용하거나 거부하도록 할 수 있습니다.

참고

포트 전달 또는 SSH를 통해 연결하는 Session Manager 세션에는 로깅을 사용할 수 없습니다. SSH는 모든 세션 데이터를 암호화하고 Session Manager는 SSH 연결을 위한 터널 역할만 하기 때문입니다.

Session Manager의 SSH 연결 허용

다음 단계를 사용하여 관리형 노드에서 Session Manager를 통해 SSH 연결을 허용합니다.

Session Manager의 SSH 연결 허용
  1. SSH 연결을 허용할 관리형 노드에서 다음과 같이 실행합니다.

  2. SSH로 관리형 노드에 연결할 로컬 시스템에서 다음과 같이 실행합니다.

    • Session Manager 플러그인 버전 1.1.23.0 이상이 설치되어 있는지 확인합니다.

      Session Manager 플러그인 설치에 대한 자세한 내용은 AWS CLI의 Session Manager 플러그인 설치 섹션을 참조하세요.

    • 프록시 명령 실행을 허용하여 Session Manager 세션을 시작할 수 있도록 SSH 구성 파일을 업데이트한 후 SSH 연결을 통해 모든 데이터를 전송합니다.

      Linux 및 macOS

      작은 정보

      SSH 구성 파일은 일반적으로 ~/.ssh/config에 있습니다.

      로컬 시스템에서 다음과 같이 구성 파일에 추가합니다.

      # SSH over Session Manager host i-* mi-* ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"

      Windows

      작은 정보

      SSH 구성 파일은 일반적으로 C:\Users\<username>\.ssh\config에 있습니다.

      로컬 시스템에서 다음과 같이 구성 파일에 추가합니다.

      # SSH over Session Manager host i-* mi-* ProxyCommand C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters portNumber=%p"
    • 관리형 노드에 연결 설정 시 사용할 Privacy Enhanced Mail 인증서(PEM 파일) 또는 최소 퍼블릭 키를 생성하거나 갖추고 있는지 확인합니다. 이 키는 관리형 노드와 이미 연결된 키여야 합니다. 사용자만 읽을 수 있도록 프라이빗 키 파일의 권한을 설정해야 합니다. 다음 명령을 사용하여 사용자만 읽을 수 있도록 프라이빗 키 파일의 권한을 설정할 수 있습니다.

      chmod 400 <my-key-pair>.pem

      예를 들어 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스의 경우 인스턴스를 생성할 때 선택 또는 생성한 키 페어 파일입니다. (세션을 시작하는 명령의 일부로 인증서 또는 키에 대한 경로를 지정합니다. SSH를 사용하여 세션 시작에 대한 자세한 내용은 세션 시작(SSH) 섹션을 참조하세요.)

Session Manager를 통해 SSH 연결에 대한 사용자 권한 제어

Session Manager를 통해 관리형 노드에서 SSH 연결을 활성화한 후 IAM 정책을 사용하여 사용자, 그룹 또는 역할이 Session Manager를 통해 SSH 연결을 수립할 수 있는 기능을 허용하거나 거부할 수 있습니다.

Session Manager를 통한 SSH 연결을 허용하는 IAM 정책을 사용하려면
  • 다음 옵션 중 하나를 사용하십시오.

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

      탐색 창에서 정책을 선택한 다음 Session Manager을 통해 SSH 연결을 시작할 수 있도록 허용할 사용자 또는 역할에 대한 권한 정책을 업데이트합니다.

      예를 들어 Session Manager에 대한 빠른 시작 최종 사용자 정책에서 생성한 빠른 시작 정책에 다음 요소를 추가합니다. 각 리소스 자리 표시자 예를 자신의 정보로 바꿉니다.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ssm:StartSession", "Resource": [ "arn:aws:ec2:region:account-id:instance/instance-id", "arn:aws:ssm:*:*:document/AWS-StartSSHSession" ], "Condition": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" } } } ] }
    • 옵션 2: AWS Management Console, AWS CLI 또는 AWS API를 사용하여 인라인 정책을 사용자 정책에 연결합니다.

      선택한 방법을 사용하여 옵션 1의 정책 문을 AWS 사용자, 그룹 또는 역할에 대한 정책에 연결합니다.

      자세한 내용은 IAM User GuideAdding and Removing IAM Identity Permissions를 참조하세요.

Session Manager를 통한 SSH 연결을 거부하는 IAM 정책을 사용하려면
  • 다음 옵션 중 하나를 사용하십시오.

    • 옵션 1: https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다. 탐색 창에서 정책을 선택한 다음, Session Manager 세션의 시작을 차단하도록 사용자 또는 역할에 대한 권한 정책을 업데이트합니다.

      예를 들어 Session Manager에 대한 빠른 시작 최종 사용자 정책에서 생성한 빠른 시작 정책에 다음 요소를 추가합니다.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor1", "Effect": "Deny", "Action": "ssm:StartSession", "Resource": "arn:aws:ssm:*:*:document/AWS-StartSSHSession" } ], "Condition": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" } } }
    • 옵션 2: AWS Management Console, AWS CLI 또는 AWS API를 사용하여 인라인 정책을 사용자 정책에 연결합니다.

      선택한 방법을 사용하여 옵션 1의 정책 문을 AWS 사용자, 그룹 또는 역할에 대한 정책에 연결합니다.

      자세한 내용은 IAM User GuideAdding and Removing IAM Identity Permissions를 참조하세요.