ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • github actions에서 aws secrets manager 사용하기
    기타 2024. 11. 18. 06:59

    서론

    • 어느 날 github action에서 ci를 만들고 있었습니다.
    • 이때 build를 하는 과정이 필요했는데요, 환경 변수를 aws secrets manager로 관리함에 따라 github actions에서 aws secrets manager로의 접근이 필요했습니다.
    • 검색을 해보니 github actions에서 aws secrets manager를 사용하는 것을 도와주는 configure-aws-credentials라는것이 있었습니다.
    • 사용 방법은 아래와 같이 region과 role-to-assume 즉 주입할 IAM 롤을 입력하면 되는데요, 그럼 어떤 IAM role을 넣어주어야할까요?
    uses: aws-actions/configure-aws-credentials@v4
    with:
      aws-region: us-east-2
      role-to-assume: my-github-actions-role
    

     

     

     

    IAM role에 연결할 정책 만들기

    • IAM role을 만들 때는 최소한의 정책과 권한만을 가질 수 있도록 하는것이 좋다고 생각합니다.
    • 예상하지 못한곳에서 보안 구멍이 생길 수 있기 때문에 정말 필요한 정책만을 가지는것이 좋다고 생각합니다.
    • 이제 github actions에서 특정 org만 접근할 수 있는 정책을 만들어봅시다!

    1. IAM 대시보드에 들어가 정책 생성을 누릅니다.

     

    서비스에서 secrets manager를 선택합니다.

     

    2. IAM role의 권한 선택하기

    적절한 access권한들을 선택해줍니다.

    github actions에서 secrets manager를 읽기를 원하기 때문에 모든 읽기 작업을 선택해줍니다.

    또한 arn추가를 통해 github actions에서 접근할 aws secrets manager arn을 입력해줍니다.

    이제 정책을 다 만들었습니다!

    해당 정책을 사용한다면 github action에서는 aws secrets manager에서 읽기작업만 수행할 수 있고, 특정 secrets manager에만 접근 가능합니다.

     

     

    IAM Role만들기

    1. 역할 만들기

     

    웹 자격 증명을 선택하고 자격증명공급자로 token.githubusercontent.com을 선택합니다.

    다음으로 audience로 sts.amazonaws.com을 선택합니다.

    그리고 IAM role을 사용할 github 조직을 선택합니다.

    그리고 다음을 선택합니다. 그러면 이전에 만들어두었던 권한을 선택하면 IAM role과 정책이 연결되게 됩니다!

     

     

     

    마무리

    자 이제 github actions에서 role과 region을 입력해줍니다.

    이제 githhub actions에서 aws secrets manager에 있는 값을 읽어 올 수 있게 되었습니다.

    ...
    jobs:
    	...
    	ci:
    		steps:
    			...
    			...
          - name: AWS IAM ROLE 주입
            uses: aws-actions/configure-aws-credentials@v4
            with:
              aws-region: ap-northeast-2
              role-to-assume: 방금 만들었던 IAM role
          - name: secrets manager를 읽어 .env 생성
          ...

     

    '기타' 카테고리의 다른 글

    js date 객체를 사용하다 겪은 삽질 경험기  (0) 2024.10.10
    tsconfig의 moduleResolution option  (0) 2024.07.21
    tsc --noEmit과 build에 대하여  (0) 2024.06.16
    tsconfig types란?  (2) 2024.03.26
    github reviewers 자동으로 달아주기  (0) 2024.02.22

    댓글

Designed by Tistory.