클라우드/AWS-Terraform

iam 모듈 구현

Hoony.Song 2023. 10. 23. 20:51
반응형

 

IAM 모듈 기능

AWS 의 iam 을 구성하기 위해 만든 기능입니다
policy oidc role 을 생성 하고 role과 policy를 attach 하고
인스턴스에서 사용이 가능하도록 arn을 제공하는 역할을 합니다.
iam 같은 경우는 role 생성 policy 생성 role 과 policy 의 attach 기능이 전부 따로 동작 해야 할
필요성이 있어서 각각의 기능들을 분리 시켰습니다

IAM 모듈

iam policy 모듈

  • iam Policy AWS에서 객체에 대한 액세스 권한을 정의합니다. JSON 형식으로 작성되어 특정 AWS 서비스나 리소스에 대해 어떤 작업을 수행할 수 있는지, 그리고 이러한 작업이 언제 수행될 수 있는지를 지정합니다.
resource "aws_iam_policy" "route" {
  name = var.name  
  policy = file("${var.jsonPath}") 
}
  • .json 파일을 사용하여 policy를 생성 합니다

 

iam role 모듈

  • role 이란 aws의 기능을 사용하기 위한 권한 부여가능 입니다
resource "aws_iam_role" "role_json" {
  name = "${var.name}"
  assume_role_policy = file("${var.jsonPath}")
}
  • policy.json 파일을 사용하여 role을 생성함과 동시에 policy의 정책을 연결합니다

 

iam attach 모듈

  • role 과 policy를 연결 합니다
resource "aws_iam_role_policy_attachment" "role_policy_attach" {
  policy_arn = var.policy_arn
  role       = "${var.role_name}"
}
  • 생성되어 있는 role 과 policy를 연결 합니다

 

iam oidc role 모듈

  • oidc role은 외부 신원 공급자와의 연동이 필요한 경우 사용되는 IAM 역할입니다.
resource "aws_iam_openid_connect_provider" "example" {  
  url              = var.oidc_url
  client_id_list   = ["${var.client_id}"]
  thumbprint_list = [data.tls_certificate.example.certificates[0].sha1_fingerprint]
}
  • oidc 롤은 ssl인증서의 지문을 가지고 만드는 role 입니다
    • ssl 의 지문을 얻어오기 위한 data resource 입니다
    • data "tls_certificate" "example" {
        url = var.oidc_url
      }

 

thumbprint_list 에서 사용하는 ssl의 지문은 여러 가지 방법으로 구할 수 있습니다
ssl 인증서를 파일로 가지고 있다면 local 에서 openssl 을 사용하여 생성 할 수 있으며
파일로 가지고 있지 않은 경우는
aws에 등록 되어 있는 인증서의 지문을 얻어 오는 방식을 사용 할 수 있습니다
반응형

'클라우드 > AWS-Terraform' 카테고리의 다른 글

ETC 모듈 구현  (0) 2023.10.23
network 모듈 구현  (0) 2023.10.23
compute 모듈 구현  (0) 2023.10.23
terraform 설치  (0) 2023.10.23
terraform 배포 전략  (0) 2023.10.23