AWS Systems Manager Session Manager를 이용한 연결
    • PDF

    AWS Systems Manager Session Manager를 이용한 연결

    • PDF

    기사 요약

    개요

    TROCCO와 고객이 준비한 서버 사이에 AWS Systems Manager Session Manager를 통해 SSH 터널을 구축하여, 고객의 데이터 소스에 대해 프라이빗 서브넷 내 스텝스텝 서버를 통해 연결할 수 있습니다.
    일반 SSH 터널을 통한 연결과 비교했을 때, TROCCO는 퍼블릭 서브넷에 스텝업 서버를 배치할 필요가 없기 때문에 보다 안전하게 TROCCO를 이용할 수 있습니다.

    다음은 AWS Systems Manager Session Manager(이하 세션 매니저)를 이용한 연결의 개략적인 모습입니다.

    image.png

    설정 방법은 Session Manager의 연결 정보를 생성한 후, 데이터 소스의 연결 정보 설정에서 사용할 Session Manager의 연결 정보를 선택합니다.
    2024년 2월 현재 MySQL과 PostgreSQL만 지원합니다.
    Session Manager에 대한 자세한 내용은 아래 AWS 문서에서 확인할 수 있다.
    AWS Systems ManagerSession Manager - AWS Systems Manager

    제약조건

    SSH 터널을 이용한 접속과 함께 사용할 수 없습니다.

    전제조건

    다음 항목은 고객의 AWS 계정에서 수행해야 합니다.
    참고로 이는 TROCCO에서 Session Manager를 이용하기 위한 최소한의 설정 항목입니다.
    소속 기관의 정책에 맞게 수정해 주시기 바랍니다.

    디딤돌 서버가 될 인스턴스 생성

    스텝스텝 서버에 대한 Session Manager 연결을 허용하기 위한 IAM 인스턴스 프로파일 설정

    스텝스텝 서버에 대한 Session Manager 접속을 허용하는 IAM 정책 설정

    • 아래 페이지의 '최종 사용자 정책 > 세션 관리자 and CLI'를 참고하여 IAM 정책을 작성하고 TROCCO에서 사용할 IAM 사용자에 첨부해 주세요.
    • 다음은 최소한의 권한을 부여하는 IAM 정책의 예시입니다. 참고용으로만 참고하시기 바랍니다.
      {
      "버전": "2012-10-17", 2012-10-17
      "성명서": "성명서". [
          {
              "Effect": "Allow",
              "Action": [
                  "ssm:StartSession"
              ], , , , , .
              "Resource": [
                  "arn:aws:ec2:<REGION>:<ACCOUNT-ID>:instance/<INSTANCE-ID>",
                  "arn:aws:ssm:*:*:document/AWS-StartSSHSession"
              ], , , , , .
              "조건": "Condition". {
                  "BoolIfExists" : "BoolIfExists {
                      "ssm:SessionDocumentAccessCheck": "true" 
                  }
              }
          }
      ]
      

    }

    
    ## 설정 방법
    
    아래 연결 정보 생성 및 편집 화면에서 **AWS Systems Manager Session Manager를 통해 연결하기를** 활성화합니다.
    
    - MySQL 접속 정보
    - PostgreSQL 접속 정보
    
    AWS Systems Manager Session Manager 연결 정보를 새로 생성하려면 **SSM 연결** 정보 **추가를** 클릭합니다.
    이미 생성한 AWS Systems Manager Session Manager 연결 정보를 확인하려면 **SSM 연결 정보 목록 보기를** 클릭합니다.
    
    ![image.png](https://cdn.document360.io/3a3bae1e-f157-487f-8798-01e9d820e760/Images/Documentation/connection-with-aws-systems-manager-session-manager-2024-08-29-15-31-1.png){height="" width=""}
    
    ## 입력 항목
    Session Manager의 연결 정보를 생성하기 위해 필요한 입력 항목에 대해 설명합니다.
    항목명 | 필수 | 기본값 | 내용 | 내용 | 필수
    | --- | --- | --- | --- | --- | --- | --- --- | --- --- | --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
    | 이름 | Yes | - | TROCCO 내부에서 사용할 연결정보의 이름을 입력해 주세요. | 이름
    | 메모 | No | - | TROCCO 내부에서 사용할 연결 정보 메모를 입력해 주세요. | |
    | AWS Access Key ID | Yes | - Session Manager를 이용하기 위한 AWS Access Key ID를 입력하세요. | - | | - | Session Manager를 이용하기 위해 AWS 액세스 키 ID를 입력합니다.
    | AWS 시크릿 액세스 키 | Yes | - Session Manager를 이용하기 위한 AWS 시크릿 액세스 키를 입력하세요. | - | | - | Session Manager를 이용하기 위해 AWS 시크릿 액세스 키를 입력하세요.
    | AWS 리전 | Yes | ap-northeast-1 | Session Manager를 사용할 리전을 입력하세요. | Yes | ap-northeast-1 | Session Manager를 이용하세요.
    | EC2 인스턴스 ID | Yes | - Session Manager를 이용할 때 발판이 되는 EC2 인스턴스의 인스턴스 ID를 입력합니다.<br>인스턴스 ID는 i- 또는 mi-로 시작하는 문자열입니다. | |.
    | SSH 포트 | Yes | 22 | Session Manager를 이용할 때, 발판이 되는 EC2 인스턴스에 SSH로 접속할 포트를 입력합니다. | Yes | 22 | SSH 포트
    | SSH 사용자 | Yes | ec2-user | Session Manager를 이용할 때, 발판이 되는 EC2 인스턴스에 SSH로 접속할 사용자 이름을 입력합니다. | ec2-user
    | SSH 개인키 | Yes | - Session Manager를 통해 접속할 때, 디딤돌이 되는 EC2 인스턴스에 접속하기 위한 개인키 파일을 입력해야 합니다.<br>일반적으로 EC2 인스턴스 생성 시 선택하거나 생성한 키 쌍의 개인 키가 됩니다. | | 키 쌍
    | SSH 비밀키 암호 | No | - | SSH 비밀키 암호가 있으면 입력해 주세요. |
    
    ## 보충자료
    #### Session Manager를 통한 SSH 터널은 전송 전에 설정되고, 전송이 완료된 후 닫힙니다.
    * Session Manager에서는 세션이 남아있지만, 기본적으로 20분 후에 세션이 종료됩니다.
    완료 후 세션이 종료될 때까지의 시간을 변경하려면 아래 문서를 참고하여 설정하십시오.
    [유휴 세션의 타임아웃 값을 지정합니다. - AWS Systems Manager](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-preferences-timeout.html)
    
    * Session Manager의 세션 자체의 최대 연결 시간도 설정할 수 있습니다.
    어떤 이유로든 세션이 계속 남아 있지 않도록 설정하는 것이 좋습니다.
    자세한 내용은 [최대 세션 시간 지정 - AWS Systems Manager를](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-preferences-max-timeout.html) 참고하세요.
    
    #### 전송 실행 환경이 분리되어 있기 때문에 고객 간 Session Manager 세션이나 SSH 터널이 공유되지 않습니다.
    
    #### 연결에 실패할 경우, 고객 환경에서 연결을 시도해 보시기 바랍니다.
    * 고객 환경에 AWS CLI와 Session Manager 플러그인을 설치합니다.
    [AWS CLI 버전 2 설치, 업데이트 및 제거 - AWS Command Line Interface - AWS CLI 버전 2 설치, 업데이트 및 제거](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2.html)
    [AWS CLI용 Session Manager 플러그인 설치 - AWS Systems Manager - AWS Systems Manager](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)
    
    * 확인하고자 하는 연결의 프로필을 생성하세요.
    [설정 파일 및 인증 정보 파일 설정 - AWS Command Line Interface](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-files.html)
    
    * 아래 명령어를 실행해 보세요.
    `aws ssm start-session --target <bastion 인스턴스 ID> --profile <당신의 프로필> --document-name AWS-StartSSHSession`
    **Starting session with SessionId로** 시작하는 메시지가 표시되면 연결이 완료된 것입니다.
    고객 환경에서 접속이 불가능한 경우, 출력되는 오류 메시지를 참고하여 AWS의 설정을 재검토해 주시기 바랍니다.
    고객 환경에서 접속이 가능한 경우, TROCCO에 입력 오류가 없는지 확인하시기 바랍니다.
     TROCCO에서 계속 연결이 실패하는 경우 지원팀에 문의하시기 바랍니다.
    
    

    이 문서가 도움이 되었습니까?