github action을 활용해서 EC2와의 CI/CD 파이프라인을 구축할 때,
workflow의 .yml 파일에 secrets.AWS_ACCESS_KEY_ID, secrets.AWS_SECRET_ACCESS_KEY를 입력해야한다.
이를 활용하기 위해서는 aws에서 키를 발급 받아서 secret 변수에 저장을 해줘야하는데, 처음하면 어려운 작업이니 기록해두려고 한다.
그리고 내 설정에서는 AWS 액세스 유형 선택창이 없어서 매뉴얼하게 권한을 추가하였다.
일단 IAM 서비스로 들어간다.
대시보드에서 사용자 탭을 선택하고 사용자 추가를 클릭한다.
다음과 같이 선택하고, 이름을 정해주고 다음으로 넘어간다.
추후 관리가 용이하도록 그룹을 생성하고 권한을 부여해줄 것이다.
그룹을 생성하자.
이름을 정해주고, 권한은 AmazonEC2FullAccess, AWSCodeDeployFullAccess를 추가해준 후 사용자 그룹을 생성한다.
생성된 그룹을 선택해주고 다음으로 넘어간다.
태그는 옵션으로 생성해주고, 다음으로 넘어가면 아래와 같은 화면이 나온다.
비밀번호는 웬만하면 저장해두자.
여기까지만 진행하면 IAM 사용자로 로그인했을 때 AccessKey를 발급할 권한이 없다고 뜬다.
이 때문에 추가적인 설정이 필요하다.
사용자 탭으로 돌아간 후 권한을 더 추가해줘야한다.
인라인 정책 생성을 클릭한 후,
다음과 같이 액세스 키 생성에 대한 권한을 부여해주고 정책을 생성한다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CreateOwnAccessKeys",
"Effect": "Allow",
"Action": [
"iam:CreateAccessKey",
"iam:GetUser",
"iam:ListAccessKeys",
"iam:TagUser"
],
"Resource": "arn:aws:iam::*:user/${aws:username}"
}
]
}
우측 상단의 아이디를 클릭하면 계정ID가 나오는데,
이를 복사하고 로그아웃을 해준다.
IAM 사용자를 선택하고, 복사해둔 계정 ID를 입력해준다.
그 후 나오는 창에서는 이전에 만들었던 계정의 사용자 이름과 암호를 입력해준다.
우측 상단 계정을 클릭한 후 보안 자격 증명 탭을 보면
다음과 같은 창이 활성화가 된 것을 볼 수 있다.
액세스 키 만들기를 클릭하고,
사용 용도에 맞게 선택한 후 다음으로 간다.
이름을 지정해주고 액세스키가 발급된 창에서 .csv 파일을 다운로드하여 저장해두자.
등록하려는 레포지토리의 Settings탭에서
Secrets and variables -> Actions에서 New repository sercet를 클릭한다.
CSV 파일로 받은 key의 ID과 key를 등록해주자.
이렇게 잘 등록이 된 것을 확인할 수 있고,
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
위와 같이 사용할 수 있다.