Skip to content

eteg/ssm-connect

Repository files navigation

ssm-connect

Github Action for connect to a remote host through aws ssm session.

Usage

- uses: eteg/ssm-connect@v1 
  with:
    # EC2 instance id of your SSM managed instance. For example, i-a1b2c3d4e5f6g7h8i.
    target-instance-id: ''

    # AWS Region which instance is located. For example, us-east-2.
    aws-region: ''

    # Remote server host. For example, app.host.amazonaws.com.
    remote-host: ''

    # Remote server port. For example, 3000.
    remote-port: ''

    # Local port on the client where traffic should be redirected to. For example, using 3000, the remote server traffic will be redirected to localhost:3000.
    local-port: ''

Example of use

name: Example ssm connection

on:
  push:
    branches:
      - main

jobs:
  access-ssm:
    runs-on: ubuntu-latest

    env:
     LOCAL_PORT: 5432
     NODE_VERSION: 16.x

    environment: prod

    permissions:
      id-token: write
      contents: read

    steps:
      - name: Setup AWS Credentials
        uses: aws-actions/configure-aws-credentials@v2
        with:
          role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/${{ secrets.AWS_ROLE_NAME }}
          aws-region: ${{ secrets.AWS_REGION }}

      - name: Start Session
        uses: eteg/ssm-connect@v1
        with:
          target-instance-id: ${{ secrets.BASTION_HOST_INSTANCE_ID }}
          remote-host: ${{ secrets.REMOTE_SERVER_HOST }}
          remote-port: ${{ secrets.REMOTE_SERVER_PORT }}
          local-port: ${{ env.LOCAL_PORT }}
          region: ${{ secrets.AWS_REGION }}

      - name: Check out repository code
        uses: actions/checkout@v3

      - name: Setup Node
        uses: actions/setup-node@v3
        with:
          node-version: ${{ env.NODE_VERSION }}

      - name: Install Dependencies
        run: yarn install

      - name: Run migrations
        env:
          DATABASE_URL: postgresql://${{ secrets.DB_USER }}:${{ secrets.DB_PASSWORD }}@localhost:${{ env.LOCAL_PORT }}/${{ secrets.DB_NAME }}
        run: yarn prisma migrate deploy

License

The scripts and documentation in this project are released under the MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •