반응형

terraform 6

.gitlab-ci.yml

참조: https://docs.gitlab.com/ee/ci/yaml/index.html#configuration-parameters `.gitlab-ci.yml` keyword reference | GitLab Documentation for GitLab Community Edition, GitLab Enterprise Edition, Omnibus GitLab, and GitLab Runner. docs.gitlab.com Global Keywords Keyword Description default 작업 키워드에 대한 사용자 정의 기본값. include 다른 YAML 파일에서 구성을 가져옵니다. stages 파이프라인 단계의 이름과 순서. variables 파이프라인의 모든 작업에 대해 CI/CD ..

Terraform이란

Terraform이란 : HCL 언어로 클라우드 리소스를 정의하고 이 내용을 테라폼 CLI 애플리케이션(terraform)으로 자신의 클라우드 계정에 실제로 반영할 수 있는 도구 HCL 언어란 - Hashicorp Configuration Language - 테라폼 코드를 작성하기 위한 언어 - Block: 테라폼 코드의 최소 단위 - Prefix: HCL 언어 블록을 나타냄 Provider "aws" { region = "ap-northeast-2" } --> 어떤 Provisioning을 할지를 나타냄 - Block 내용(Body)는 Argument로 구성됨- Argument는 Identifier(Argument이름), Expression(Argument 값)으로 나타냄 "" ""{ # block b..

Terraform - 중앙 집중식 비밀 저장소

중앙 집중식 비밀 저장소 : 테라폼 민강정보 위험을 최소화 - 중앙 집중식 비밀 저장소에 민감정보(ID/PW)를 저장 - 사용자는 필요할 때마다 민감정보를 조회 - --> 리소스에 접근 ID/PW 조회 data "aws_secretsmanager_secret_version" "creds" { secret_id = "t-study" } data block 참조 --> RDS 생성 resource "aws_db_instance" "myrds" { identifier_prefix = "t-sensitiveData" engine = "mysql" allocated_storage = 10 instance_class = "db.t2.micro" skip_final_snapshot = true db_name = "w..

Terraform - 민감정보 보안 / Provider Block / OIDC

Provider Block Provider Block에 인증정보를 하드코딩을 함. --> 테라폼 코드가 유출되면 admin 권한도 유출됨 provider "aws"{ region = "..." access_key = "access-key" secret_key = "secret-key" } 보완 방법 1. 환경변수 설정 $export AWS_ACCESS_KEY_ID="my-access-key" $export AWS_SECRET_ACCESS_KEY="my-secret-key" - 단점: 재부팅하거나 쉘을 바뀌면 환경변수를 재설정해야함. 2. 설정파일 $aws configure --> access key입력 Q. 태라폼이 다른 서비스(EC2 인스턴스 Github Action)에서 실행한다면? 위 방법으로 하면..

Terraform - for expression

Terraform - for expression : 반복을 이용해 일괄변환 작업 (expression 타입을 변환, 수정) - 대문자 변환 variable "fruits_set" { type = set(string) default = ["APPLE", "BANANA"] description = "fruit example" } ↓ variable "fruits_set" { type = set(string) default = ["apple", "banana"] description = "fruit example" } count for_each for expression 사용 목적 반복 조회 반복 조회 반복 변환 리턴 타입 [for item in 'expression': 변환작업] --> 리턴: tuple {..

Terraform - for_each 반복문

for_each : 반복을 할 때 인덱스가 아닌 each object로 접근하는 방법 - map, set만 for_each 사용 가능함 - for_each를 사용하려면 타입 변환이 필요함 list vs each object list variable "sample" { type = list(string) default = ["aaa", "bbb", "ccc"] } - IAM user 생성 resource "aws_iam_user" "count" { count = length(var.user_names) name = var.user_names[count.index] } - for_each를 이용해 IAM 생성할 경우 resource "aws_iam_user" "for_each_set" { for_each =..

반응형