[Terraform] IAM role
2023. 5. 6. 17:24ㆍTerraform
# hello_iam_role.tf
resource "aws_iam_role" "hello" {
name = "hello-iam-role"
path = "/"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
EOF
}
resource "aws_iam_role_policy" "hello_s3" {
name = "hello-s3-download"
role = aws_iam_role.hello.id
policy = <<EOF
{
"Statement": [
{
"Sid": "AllowAppArtifactsReadAccess",
"Action": [
"s3:*"
],
"Resource": [
"*"
],
"Effect": "Allow"
}
]
}
EOF
}
resource "aws_iam_instance_profile" "hello" {
name = "hello-profile"
role = aws_iam_role.hello.name
}
customer policy 를 정해서 하는게 타이트한 권한 정책을 정할 수있다.
코드에서 user 할당을 안하면 관리가 어렵다.
엑세스키나 시크릿키는 코드나, config 파일에 어느곳에서도 박히면 안된다.
iam role 을 할당하는게 best practices 다.
# s3 보이는지 확인
aws s3 ls
# 엑세스키, 시크릿키 확인
cat ~/.aws/credentials
# 엑세스키 , 시크릿키 삭제
rm -rf ~/.aws/credentials
엑세스키, 시크릿키 지우고 나서 확인하면, 아래처럼 권한이 없다고 뜬다.
그래서 s3에 접근가능한 iam role 을 ec2 에 부여해보고 테스트 해보자
아래는 ec2 > 인스턴스 > 해당 인스턴스 우측 클릭 >
보안 > iam 역할 수정
아래처럼 iam role 을 할당하고 "I AM 역할 업데이트"를 누른다.
그럼 이제 아래처럼 s3가 잘보인다!
'Terraform' 카테고리의 다른 글
[Terraform] variable (0) | 2023.05.06 |
---|---|
aws S3 (0) | 2023.05.06 |
Terraform 기본 (0) | 2023.05.03 |