Giithub Action의 OpenID Connect를 사용한 AWS 인증

여러 곳에서 해봤지만 끊긴 부분이 있어서 정리를 해봤어요.

ID 공급자 만들기(AWS)


IAM ID 공급업체에서 제작
다음과 같이 설정합니다.
공급자 유형: Open ID Connect
공급자:token.actions.githubusercontent.com
대상자:sts.amazonaws.com
이곳의 공급업체는 vstoken이다.actions.githubusercontent.컴이 아니라 토큰이야.actions.githubusercontent.최신 비디오
또한 대상자는sigstore에도 많지만 이하github의 issue에 따라sts.amazonaws.com이 정답인 것 같아요.

IAM 스크롤 막대 제작(AWS)


다음과 같이 설정합니다.
엔티티 유형:웹 ID
ID 공급자: token.actions.githubusercontent.com
Audience: sts.amazonaws.com
그런 다음 액세스 권한 및 이름을 결정하여 설정합니다.

github의access token 만들기


github의 icon부터 Setting→Developer setting→personal access tokens 이동
Generate new token으로 토큰 만들기 (임의의 이름)

github Action을 설명하는 yaml 파일(github)


다음과 같이 기술하다.
# 名前は適当に
name: test

on:
main branch
  #ルールも適当に
  push:
    branches: [ main ]
permissions:
  id-token: write
  contents: write
jobs:
  build:
    steps:
      
      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@master
        with:
          aws-region: ap-northeast-1
          role-to-assume: arn:aws:iam::010922940107:role/{role_name}
          role-session-name: MySessionName
      - run: aws sts get-caller-identity
       # 以下はS3にあげる処理。基本的に認証が通れば、aws cliで操作できるようになる
      - name: Deploy to S3
        run: |
          aws s3 cp {blahblahblah} ${{ secrets.AWS_BUCKET_NAME }} --recursive 
        working-directory: {hogehoge}
permissions 부분이 없으면 오류 발생
github 편집기에서 편집했지만 id-token이 대응하지 않은 것 같아서 오류가 발생하여 조사를 시작했습니다.결과적으로 편집기는 지원하지 않습니다.
만약 이렇게 액션을 진행한다면, 보통aws에 인증되고 방문할 것입니다.
AWS의 액세스 토큰이 필요하지 않으므로 쉽습니다!!
실패했지!!

참고 자료


결과적으로 github의 issue가 가장 유용하다.다음 issue가 최신 정보일 수도 있습니다. 오류가 발생하면 여기에서 검색하는 것이 좋습니다.
Could not load credentials from any providers #271
아래의 문장은 일본어로 이해하기 쉬우니 개요적인 작법 등을 참고할 수 있다
GiitHub Action ID 토큰을 사용하여 AWS 리소스에 액세스
[GiitHub Actions]aws/configure-aws-credentials를 사용하여 OIDC 공급업체를 통해SwitchRole

좋은 웹페이지 즐겨찾기