1. Terraform, AWS CLI 설치
Terraform 설치
Install | Terraform | HashiCorp Developer
Explore Terraform product documentation, tutorials, and examples.
developer.hashicorp.com
Terraform 공식 사이트에서 AMD64 다운로드
압축해제 후 시스템 속성-환경 변수-시스템 변수의 Path에 Terraform 폴더 추가
powershell에서 `terraform`입력 시 위와 같이 나오면 설치 성공
vscode에서 테라폼 코드를 쉽게 작성할 수 있도록 extentions를 추가한다
AWS CLI 설치
Install or update to the latest version of the AWS CLI - AWS Command Line Interface
When updating from a previous version, the unzip command prompts to overwrite existing files. To skip these prompts, such as with script automation, use the -u update flag for unzip. This flag automatically updates existing files and creates new ones as ne
docs.aws.amazon.com
AWS와의 연동을 위해 AWS CLI를 설치해주자.
AWS CLI install and update instructions 부분을 참고하면 된다.
https://awscli.amazonaws.com/AWSCLIV2.msi 링크를 클릭해서 다운로드 한 후, 아래의 코드들을 순차적으로 실행해준다.
# Windows용 AWS CLI MSI 설치 프로그램 다운 후 실행
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
# 버전 확인
aws --version
AWS CLI와 계정 연동
액세스 키 만들기
AWS 콘솔에서 IAM 대시보드-액세스 관리의 사용자 탭으로 이동하여 유저를 생성해주자.
(계정 산하의 이름을 부여하는 것이기 때문에 중복되어도 상관 없다)
권한은 일단 Administrator Access를 부여해줬다.
사용자 생성이 완료되었으면 계정명을 클릭한 뒤 보안 자격 증명-액세스 키 만들기를 클릭한다.
사용 사례로는 Command Line Interface(CLI)를 선택해주고 설명 태그는 자유롭게 지정해주자.
액세스 키를 꼭! 백업해둬야 한다 . . . 다 밀고 다시 해야 할 수 도 있음 ㅜ.ㅜ
잃어버릴까 두려운 사람은 `.csv 파일 다운로드`를 클릭해서 로컬디바이스나 티스토리 비공개글 같은걸로 보관해두자.
아까 Administrater Access 권한을 부여해줬으니까 호오옥시 모르니 MFA device도 할당해주자
추가적으로 인증 안 한 유저의 요청을 거부하도록 설정해주자.
사용자-계정명 선택-권한-인라인 정책 생성을 클릭, 정책 편집기는 JSON을 선택하자.
기본 권한 구문을 수정해주자. Effect는 원래 Allow인데 Deny로 변경해주자.
Deny로 설정하면 조건이 충족될 경우 모든 액세스를 거부한다.
Action에서는 모든 AWS 서비스 및 액션에 대한 액세스를 의미한다.
Resource는 모든 AWS 리소스를 의미한다.
요약하자면 MFA가 활성화되지 않은 사용자의 모든 AWS 서비스와 리소스에 대한 액세스를 거부하고,
MFA가 활성화 된 사용자에게는 아무런 영향을 미치지 않는다.
AWS CLI를 이용하여 접속하기
먼저 `aws configure`를 입력해서 Access Key와 Secret Access Key를 입력해주자.
`aws sts get-session-token --serial-number (식별자) --token-code (MFA 번호)`
보안 자격 증명 탭으로 이동한 뒤 식별자를 복사하고, 위의 코드를 입력해주면 Credential 정보가 출력된다.
(사실 MFA가 뭐의 약자인지는 잘 모르겟다.. 걍 OTF 개념으로 알고 있음)
## Credential 정보 출력
aws sts get-session-token --serial-number (식별자) --token-code (OTP번호)
{
"Credentials": {
"AccessKeyId": "액세스 키 값",
"SecretAccessKey": "시크릿값",
"SessionToken": "세션토큰값",
"Expiration": "2024-07-04T03:07:09+00:00"
}
}
## 환경변수 형식으로 넣기 - Windwos OS
$env:AWS_ACCESS_KEY_ID="키값"
$env:AWS_SECRET_ACCESS_KEY="시크릿값"
$env:AWS_SESSION_TOKEN="토큰값"
## Linux or Mac
export AWS_ACCESS_KEY_ID="your_access_key_id"
export AWS_SECRET_ACCESS_KEY="your_secret_access_key"
export AWS_SESSION_TOKEN="your_session_token"
aws s3 ls
Credential 정보를 환경변수 형식으로 넣고 명령어를 수행하면 성공적으로 terraform을 사용할 수 있다.
+ Shell을 껐다 켜면 토큰 발급부터 환경변수 입력(본 글의 'AWS CLI를 이용하여 접속하기' 부분)을 다시 해줘야 한다.
'🌥️Cloud Study🌥️ > AWS' 카테고리의 다른 글
[ AWS ] 파이프라인을 이용한 무중단 배포 (0) | 2024.07.23 |
---|---|
[ AWS ] 아틸러리를 이용한 부하 테스트 및 부하 분산 확인(I/O bound) (1) | 2024.07.23 |
[ AWS Terraform ] Terraform 코드 실행 후 할 일 (0) | 2024.07.22 |
[ AWS ] 배포 파이프라인 만들기 (0) | 2024.07.17 |
[ AWS ] 보안그룹-인바운드 규칙 편집, 개별 인스턴스 설정 (0) | 2024.07.16 |