ec2 키 쌍이 필요 없는 상황에서 터널을 통해 RDS에 연결하는 방법

1840 단어 socatssmawsrds
목표
  • ec2 키 쌍 필요 없음(ec2 사용자)
  • 데스크탑 클라이언트
  • 를 사용하여 RDS 데이터베이스에 안전하게 연결
    솔루션
  • 응용 프로그램의 ec2 호스트
  • 에'socat'도구를 설치하고 실행
  • SSM을 사용하여 socat 포트를 로컬 시스템으로 전달
  • 데스크탑 클라이언트를 실행하고 RDS 데이터베이스에 연결
  • 디테일
    a,ec2에 socat 설정
  • SSH - appls ec2
  • AWS_PROFILE=<saml-profile> aws ssm start-session — target “i-015b2a998123dsdsa4”
    
  • 연결(SG 입구)이 당신의ec2 서버에 적용되는지 테스트
  • RDS 데이터베이스의 발표 DNS 기록을 사용합니다(당신의 구축을 발표합니다!)
  • curl -v telnet://<app-host>:1521
    
    # Use socat to open a port up on i-015b2a998123dsdsa4
    
    sudo yum install -y socat
    sudo nohup socat tcp-l:9521,fork,reuseaddr tcp:<app-host>:1521 &
    
    # Tunnel using socat + ssm port forward
    
    AWS_PROFILE=<saml-profile> aws ssm start-session — target i-015b2a998123dsdsa4 \
     — document-name AWS-StartPortForwardingSession \
     — parameters ‘{“portNumber”:[“9521”],”localPortNumber”:[“9521”]}’
    
    b. AWS Secrets Manager에서 자격 증명을 가져옵니다(응용 프로그램ec2 사용).
    aws secretsmanager get-secret-value --region ap-southeast-1 --secret-id <secret-name> | jq -r .SecretString | jq
    {
    "password": "samplepwd",
    "dbname": "demo-db",
    "engine": "oracle",
    "port": 1521,
    "host": <db-host>,
    "username": "root"
    }
    
    c. SQL Developer를 사용하여 테스트합니다.
    참고: 터미널에서 전송 포트를 열거나 연결할 때 다음과 같은 로그 줄을 볼 수 있습니다.
    Starting session with SessionId: botocore-session-1579056167-0c76865253a1232e
    Port 9521 opened for sessionId botocore-session-1579056167-0c76865253a1232e.
    Connection accepted for session botocore-session-1579056167-0c76865253a1232e.
    
    이렇게이제 SQL Developer에서 데이터를 볼 수 있습니다!

    좋은 웹페이지 즐겨찾기