[AWS] Github OIDC Provider 설정

아홉번째태양·2023년 9월 19일
1

configure-aws-credentials

GithubAction으로 AWS에 배포할 때 GithubAction 인스턴스 상에서 AWS 설정을 해야한다. 이때, 필요한 권한을 받은 유저의 access keysecret access key를 필요로하는데, 최소한의 권한 설정을 했어도Github 같은 서드파티 서비스에 이런 보안정보를 보관하는 것은 미심쩍인 일일 수 밖에 없다.

AWS의 공식 GithubAction 패키지인 @aws-actions/configure-aws-credentials에서는 OpenID Connect이라는 시스템을 이용해 보다 안전하게 AWS 계정에 로그인하도록 지원하고 있다.

jobs:
  deploy-ecs:
    runs-on: ubuntu-latest
    permissions:
      id-token: write
      contents: read

    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v4
        with:
          role-to-assume: arn:aws:iam::123456789012:role/my-role
          aws-region: ap-northeast-2

이렇게, IAM Role의 arn주소만을 가지고서 aws 로그인이 가능해지기 때문에 불필요하게 보안 정보를 서드파티에 노출할 필요가 없어진다.

@aws-actions/configure-aws-credentials

OpenID Connect 설정 방법

configure-aws-credentials 패키지를 사용하기 위해서는 OpenID Connect를 먼저 설정해야하는데, 설정하는 방법은 다음의 순서를 따르면 된다.

더 자세한 것은 Github Docs를 참고 바란다.

1. IAM Identity Provider 추가

IAM > Add provider

provider URLAudience는 가이드 문서에서 제공해주는데 다음의 값을 사용하면 된다.

provider URL = https://token.actions.githubusercontent.com
Audience = sts.amazonaws.com

2. 권한/역할 부여

Assign Role을 누르고, 새 역할 추가를 선택하게 되면 다음과 같은 화면이 나온다.

해당 역할을 사용하려는 깃헙 조직과 레포, 그리고 브랜치까지도 정해둘 수가 있는데, 세밀하게 정할수록 보안이 올라가기 때문에 사용하는 상황에 맞게 적절히 설정한다.

3. 생성한 역할 arn 확인

앞 단계에서 만든 역할의 arn을 확인하고, GithubAction 스크립트에 추가하면 끝.

0개의 댓글