AWS의 모든 리소스는 API를 통해서 생성할 수 있다. API란, 응용프로그램에서 사용할 수 있도록 만들어놓은 하나의 인터페이스를 의미한다.
즉, 정해진 인터페이스에 맞게 요청을 보내면 요청 받는 쪽에서 해당 요청대로 명령을 수행해준다고 생각하면 된다.
AWS는 명령줄 인터페이스(CLI), SDK(소프트웨어 개발 킷), CDK(클라우드 개발 킷) 등 다양한 방식으로 API를 제공한다.
이중에서 테라폼은 사실 SDK를 사용한다고 할 수 있는데, Terraform에서 내부적으로 요청하기 때문이다. AWS는 누구나 사용할 수 있는 클라우드 서비스 제공사이기 때문에, AWS 입장에서는 사용자를 구분해야할 필요가 있다.
이 때 사용하는 것이 바로 AWS_ACCESS_KEY_ID와 AWS_SECRET_ACCESS이다.
Terraform은 사용자가 지정해준 AWS_ACCESS_KEY_ID와 AWS_SECRET_ACCESS_KEY를 그대로 가져와서 사용하기 때문에, 테라폼을 사용하기전에 반드시 세팅해주어야 한다.
IAM 사용자 생성
1. AWS 계정에서 Root ID로 접속한 후 새로운 사용자를 생성한다.
- API 접근만 허용할 경우 프로그래밍 방식 액세스를 선택하고 사용자를 생성한다.
2. 사용자 그룹이 없을 경우 그룹 이름을 작성하고, 모든 AWS 리소스에 접근할 수 있는 관리자 접근을 허용해준다.
3. 태그, 검토를 건너뛰면 ACCESS_KEY_ID와 SECRET_ACCESS_KEY를 확인할 수 있다.
AWS Configure 세팅
[ec2-user@ip-172-31-41-41]$ aws configure
AWS Access Key ID [None]: AKIA6RNJODGLRAV3QVER
AWS Secret Access Key [None]: N5LZs32~
Default region name [None]: ap-northeast-2
Default output format [None]:
세팅이 완료된 경우 cat ~/.aws/credentials의 Default 쪽에 설정되어 있는지 확인한다.
[ec2-user@ip-172-31-41-41]$ cat ~/.aws/credentials
[default]
aws_access_key_id = AKIA6RNJODGLRAV3QVER
aws_secret_access_key = N5LZs32~
현재 설정된 사용자가 누구인지 확인하려면 아래의 명령어를 통해 확인할 수 있다.
[ec2-user@ip-172-31-41-41]$ aws sts get-caller-identity
{
"UserId": "AIDA6RNJODGL4ORGEOAWK",
"Account": "999472109975",
"Arn": "arn:aws:iam::999472109975:user/terraform"
}
'Cloud > IaC' 카테고리의 다른 글
[Terraform] Terraform 기본 개념 (0) | 2022.03.14 |
---|---|
[Terraform] Terraform 사용을 위한 사전준비 (0) | 2022.03.07 |