맥북에서 영상이 안나옵니다
미해결
테라폼 입문자를 위한 실무용 기본 문법 입문 과정!
(사진)
- aws
- Terraform
- devops
- infrastructure
- aws-automation
173만명의 커뮤니티!! 함께 토론해봐요.
미해결
테라폼 입문자를 위한 실무용 기본 문법 입문 과정!
(사진)
해결됨
실리콘밸리 엔지니어와 함께하는 테라폼(Terraform)
안녕하세요! 다름이 아니구 강의 1번이랑 24번에 파일 다운로드를 누르면 사이트 연결할 수 없다고 뜨는데 강의자료가 삭제된걸까요? 확인 해주시면 감사하겠습니다~
미해결
실무에서 사용중인 AWS 클라우드 IAM 이해와 보안
강의 자료(zip) 에 파일이 보이지 않습니다,,, 어떤 문제 일까요?
미해결
중급, 활용편 #1 DevOps : Infrastructure as Code with AWS and 테라폼
질문은 부담없이 어떤거든 해주세요! 강의 사이트에 접속이 되지 않아서 문의 드립니다..! https://terraform201.devart.tv 사이트에 접속하려는데, 우선 gitbook 로그인 창으로 포워딩되고, 로그인 한 뒤에 접속해도 아래 "Error while accessing organization content"라는 에러가 뜹니다. 접속 권한을 확인해주실 수 있을까요?
해결됨
AWS Infrastructure as Code를 위한 실전 Terraform 활용!
Terraform을 활용한 Private DNS 배포실습 강의 앞부분이 잘린 것 같습니다. outputs.tf 설명부터 나옵니다 main.tf 부분이 앞 강의들에서 나온 내용과 비슷해서 생략된걸까요?
해결됨
AWS Infrastructure as Code를 위한 실전 Terraform 활용!
CloudFront 실습 aws 콘솔화면이 좀 달라요 업데이트가 필요해 보입니다
미해결
실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
안녕하세요. terraform 강의중에 3. 변수와 자료형 이후에서는 동작하는데 이상은 없지만 terraform init 시에 .terraform 폴더와 .terraform.lock.hcl 파일이 생성되지 않습니다. 이것이 정상적인 현상인지 궁굼합니다. Window 환경이고 plugin cache 설정은 terraform.rc 파일에 plugin_cache_dir = "$HOME/.terraform.d/plugin-cache" disable_checkpoint = true 이렇게 했습니다.
미해결
[DevOps] 빠르고 안전한 어플리케이션 배포 파이프라인(CI/CD) 만들기
1. 무엇을 하고 싶으신가요? cosign sign을 통한 이미지 스캔을 하고 싶은데 단순히 이미지 재빌드하고 푸시하면 해결될 것이라고 생각하는데 그러지 않고 해결할 수 있는 방법을 찾고 싶습니다. 2. 언제, 어떤 오류가 발생하시나요? cosign에서 맨처음에 태그 기반으로 사이닝을 진행(최초 --tlog-upload=false 옵션 없이 이때 따로 진행할거냐는 경고 없이 바로 사이닝 진행 , 이후 --tlog-upload=false 옵션과 함께 진행하였지만 이미 사인되어있다는 메시지 그리고 ECR을 확인해보니 레포지토리에 서명 결과가 푸시된 것을 확인) , 이후 서명 결과를 ECR에서 삭제하고 다이제스트 기반으로 sign 명령을 내려도 계속 409 에러가 발생합니다. 3. 어떤 시도를 해보셨나요? 4. 작성한 코드를 공유해주세요. cosign sign --tlog-upload=false \ --key awskms:///REDACTED-KMS-KEY-ID \ <AWS_ACCOUNT_ID>.dkr.ecr.<REGION>.amazonaws.com/<REPO>@$( docker buildx imagetools inspect \ <AWS_ACCOUNT_ID>.dkr.ecr.<REGION>.amazonaws.com/<REPO>:latest \ --format "{{json .Manifest}}" | jq -r ".digest" ) Error: signing [<AWS_ACCOUNT_ID>.dkr.ecr.<REGION>.amazonaws.com/<REPO>@sha256:<DIGEST>]: signing digest: signing bundle: [POST /api/v1/log/entries][409] createLogEntryConflict {"code":409,"message":"an equivalent entry already exists in the transparency log with UUID <REDACTED>"}
미해결
[DevOps] 빠르고 안전한 어플리케이션 배포 파이프라인(CI/CD) 만들기
1. 무엇을 하고 싶으신가요? gitleaks가 secret을 판별하는 기준에 대해서, 또 지금 현 상황에 대한 이유가 궁금합니다. 2. 언제, 어떤 오류가 발생하시나요? from flask import Flask app = Flask(__name__) @app.route("/") def hello_world(): return "AROAWU22AXDEPO3JX44FD" @app.route("/rextest") def rextest(): return "REXTEST_PATH" if __name__ == "__main__": app.run( host="0.0.0.0", port=8080, debug=True, ) app.py 코드를 위처럼 작성해서 MR을 날릴 경우, 파이프라인에서 gitleaks에 시크릿 값(AWS 예제)가 스캔되지 않습니다. 때문에 build job까지 문제 없이 실행이 됩니다. 3. 어떤 시도를 해보셨나요? 로컬 환경에서 강사님 코드를 pull 하고 tools 디렉토리의 gitleaks 디렉토리에서 gitleaks detect -v --no-git 명령을 수행해도 디스코드 예제와 깃랩 예제 2 종류만 스캔될 뿐 AWS 예제는 스캔되지 않습니다. 그래서 app.py 파일에 디스코드 예제를 넣어서 파이프라인을 실행할 경우, 정상적으로 gitleaks에서 시크릿이 스캔되어 job이 실패합니다. 이러한 경우, 코드 문제가 아니라 gitleaks에 대한 문제라고 생각이 드는데, 강의 영상에서는 AWS 예제가 스캔되어 job이 실패되고 저는 정상적으로 실행되는 이유가 궁금합니다. 4. 작성한 코드를 공유해주세요. stages: - gitleaks - build - deploy default: image: name: bentolor/docker-dind-awscli id_tokens: GITLAB_OIDC_TOKEN: aud: https://gitlab.com variables: AWS_DEFAULT_REGION: ap-northeast-2 IMAGE: ${CI_PROJECT_NAME}:latest REMOTE_LATEST_IMAGE: ${AWS_ECR_REPO_URL}:latest REMOTE_REGULAR_IMAGE: ${AWS_ECR_REPO_URL}:${CI_COMMIT_SHORT_SHA} .get_aws_role: &get_aws_role - > export $(printf "AWS_ACCESS_KEY_ID=%s AWS_SECRET_ACCESS_KEY=%s AWS_SESSION_TOKEN=%s" $(aws sts assume-role-with-web-identity --role-arn ${AWS_ROLE_ARN} --role-session-name "GitLabRunner-${CI_PROJECT_ID}-${CI_PIPELINE_ID}" --web-identity-token ${GITLAB_OIDC_TOKEN} --duration-seconds 3600 --query 'Credentials.[AccessKeyId,SecretAccessKey,SessionToken]' --output text)) .get_ecr_token: &get_ecr_token - *get_aws_role - aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin ${AWS_ECR_REPO_URL} gitleaks: stage: gitleaks image: name: zricethezav/gitleaks:latest entrypoint: [""] script: - gitleaks detect -v --no-git --redact --report-format json rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" changes: paths: - app.py - Dockerfile - requirements.txt build-container-image: stage: build services: - name: docker:dind before_script: - *get_ecr_token script: - docker build -t ${IMAGE} . - docker tag ${IMAGE} ${REMOTE_LATEST_IMAGE} - docker push ${REMOTE_LATEST_IMAGE} - docker tag ${IMAGE} ${REMOTE_REGULAR_IMAGE} - docker push ${REMOTE_REGULAR_IMAGE} rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" changes: paths: - app.py - Dockerfile - requirements.txt deploy: stage: deploy image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest before_script: *get_aws_role variables: AWS_DEFAULT_REGION: ap-northeast-1 script: - | export SERVICE_NAME="${CI_PROJECT_NAME}-service" export AR_SERVICE_NAME=$(aws apprunner list-services --query "ServiceSummaryList[?ServiceName=='${SERVICE_NAME}'].ServiceName | [0]" --output text) # AppRunner에 해당 레포의 매핑되는 서비스가 없는 경우 if [ ${AR_SERVICE_NAME} != ${SERVICE_NAME} ]; then export AR_SERVICE_ARN=$(aws apprunner create-service --service-name "${SERVICE_NAME}" --source-configuration "{\"AuthenticationConfiguration\": {\"AccessRoleArn\": \"${AWS_APP_RUNNER_SERVICE_ROLE_ARN}\"}, \"ImageRepository\": {\"ImageIdentifier\": \"${REMOTE_LATEST_IMAGE}\", \"ImageRepositoryType\": \"ECR\"}}" --instance-configuration 'Cpu="0.25 vCPU",Memory="0.5 GB"' --output text --query "Service.ServiceArn") echo "[+] Creating ${AR_SERVICE_ARN}" # AppRunner 서비스가 존재하는 경우 else export AR_SERVICE_ARN=$(aws apprunner list-services --query "ServiceSummaryList[?ServiceName=='${SERVICE_NAME}'].ServiceArn | [0]" --output text) aws apprunner start-deployment --service-arn ${AR_SERVICE_ARN} echo "[+] Deploying ${AR_SERVICE_ARN}" fi export AR_SERVICE_STATUS=$(aws apprunner describe-service --service-arn ${AR_SERVICE_ARN} --output text --query "Service.Status") while [ ${AR_SERVICE_STATUS} != "RUNNING" ]; do echo "[*] Waiting..." sleep 10 export AR_SERVICE_STATUS=$(aws apprunner describe-service --service-arn ${AR_SERVICE_ARN} --output text --query "Service.Status") if [ ${AR_SERVICE_STATUS} = "CREATE_FAILED" ]; then echo "[-] ${AR_SERVICE_ARN} ${AR_SERVICE_STATUS}" exit 1 fi done echo "[+] ${AR_SERVICE_ARN} deployed!" rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH changes: paths: - app.py - Dockerfile - requirements.txt
해결됨
실리콘밸리 엔지니어와 함께하는 테라폼(Terraform)
# set variable "example_set" { type = set(string) default = ["v1", "v2", "v3"] } output "set_example" { value = var.my_set } set 예제에 example_set으로 variable 을 정의했는데, 사용처에서는 var.my_set 으로 사용되고 있어서 예외가 발생하네요 output "set_example" { value = var.example_set } var.example_set 을 참조하도록 자료가 수정되면 좋을 것 같습니다~!
해결됨
실무에서 사용중인 AWS 클라우드 IAM 이해와 보안
1. 무엇을 하고 싶으신가요? 해당 실습을 조금 더 빠르고 간편하게 재현하고 싶어서 s3 bucket과 안에 오브젝트 파일을 생성하는 부분까지 테라폼 코드로 프로비저닝 하였습니다. 강의를 보며 결과까지 모두 확인을 하였고, 이제 위 리소스들을 전부 destroy 하고 싶습니다. 2. 언제, 어떤 오류가 발생하시나요? terraform apply를 할 경우, Role 3개와 버킷, 버킷 정책, 오브젝트 파일 총 6개의 리소스가 생성됩니다. terraform state list를 통해 관리 대상을 확인해보아도 6개의 리소스를 확인할 수 있습니다. 그런데 terraform destroy 명령을 수행할 경우 버킷을 제외한 5개의 리소스만 삭제 플랜에 출력되는 것을 확인하였고 이대로 진행할 경우 결국 empty한 s3 bucket만 남아 따로 cli 명령이나 콘솔에서 삭제를 해주어야합니다. 3. 어떤 시도를 해보셨나요? 내부 오브젝트 파일 때문이라는 가설을 세우고 force_destroy = true 속성을 true로 지정하였지만 버킷 내부 객체까지만 삭제되었고 버킷은 삭제되지 않습니다. 이후 권한 문제라는 가설을 세워보았지만 s3 액세스 정책을 deny 기반으로 ListBucket을 지정하였기 때문에 해당 가설도 기각하였습니다. 4. 작성한 코드를 공유해주세요. data "aws_caller_identity" "this" {} # IAM Role resource "aws_iam_role" "this" { count = 2 name = "thbins-${count.index}" path = "/dev/" assume_role_policy = jsonencode({ Version = "2012-10-17" Statement = [ { Action = "sts:AssumeRole" Effect = "Allow" Principal = { # AWS = "${data.aws_caller_identity.this.arn}" AWS = "arn:aws:iam::${data.aws_caller_identity.this.account_id}:root" } }, ] }) managed_policy_arns = ["arn:aws:iam::aws:policy/AdministratorAccess"] } resource "aws_iam_role" "this2" { name = "thbins-2" path = "/" assume_role_policy = jsonencode({ Version = "2012-10-17" Statement = [ { Action = "sts:AssumeRole" Effect = "Allow" Principal = { # AWS = "${data.aws_caller_identity.this.arn}" AWS = "arn:aws:iam::${data.aws_caller_identity.this.account_id}:root" } }, ] }) managed_policy_arns = ["arn:aws:iam::aws:policy/AdministratorAccess"] } # S3 variable "bucket_name" { description = "S3 bucket name (must be globally unique)" type = string } resource "aws_s3_bucket" "test" { bucket = var.bucket_name force_destroy = true # 버킷 안에 객체를 생성하기 때문에 해당 속성을 true로 지정한다. } data "aws_iam_policy_document" "test_bucket" { statement { sid = "Statement1" effect = "Deny" principals { type = "AWS" identifiers = ["*"] } actions = [ "s3:ListBucket", ] resources = [ aws_s3_bucket.test.arn, "${aws_s3_bucket.test.arn}/*", ] condition { test = "StringNotLike" variable = "aws:PrincipalArn" values = [ # 여기서 account_id를 하드코딩하지 않고 자동으로 맞춰줌 "arn:aws:iam::${data.aws_caller_identity.this.account_id}:role/dev/*", ] } } } resource "aws_s3_bucket_policy" "test" { bucket = aws_s3_bucket.test.id policy = data.aws_iam_policy_document.test_bucket.json } resource "aws_s3_object" "test_file" { bucket = aws_s3_bucket.test.id key = "test_success.txt" content = "This is a test file for IAM path-based S3 access demo.\n" # 선택: 텍스트 파일임을 명시 content_type = "text/plain" }
미해결
처음 시작하는 Infrastructure as Code: AWS & 테라폼
안녕하세요 그동안 AWS 콘솔에서 직접 VPC, EC2, S3, IAM 등 여러 서비스를 생성해서 사용해왔습니다. 최근 Terraform 강의를 들으면서 코드 기반으로 인프라를 관리하고 싶다는 생각이 들었습니다. 이미 콘솔에서 생성된 기존 리소스들을 Terraform으로 가져와서 관리하는 게 가능한지 궁금합니다. 가능하다면 어떤 방식으로 진행하는 게 좋을지도 알려주시면 감사하겠습니다.
해결됨
[DevOps] 빠르고 안전한 어플리케이션 배포 파이프라인(CI/CD) 만들기
1. 무엇을 하고 싶으신가요? 현재 ocp 로 구축된 서버가 있는데 , 이 서버에 gitlab을 컨테이너로 올려서 구축후에 테스트해보고 싶습니다. 2. 언제, 어떤 오류가 발생하시나요? 3. 어떤 시도를 해보셨나요? 4. 작성한 코드를 공유해주세요.
미해결
처음 시작하는 Infrastructure as Code: AWS & 테라폼
An argument named "vpc" is not expected here. 강의를 따라 만들 때 에러가 발생한다면 버전을 최신버전으로 사용해서 발생하는 문제라서 vpc = true 부분을 domain = "vpc" 로 변경해주셔야 합니다.
미해결
중급, 활용편 #1 DevOps : Infrastructure as Code with AWS and 테라폼
안녕하세요. 강의 잘 보고 있습니다! 2편이 기다려지네요!! module의 variable관련 문의 services/devartd_apnortheast2/service.tf를 보면, var.lb_variables, var.sg_variables 값들을 사용하고 있습니다. 강의에서는 var_global.tf가 있는데, 현재 기준으로는 해당 파일이 없습니다. 해당 변수들을 devartd_apnortheast2/terraform.tfvars에 정의해야 하는거죠? 그리고, module에 variables.tf가 정의되어 있어도 읽어올 수 없는 것 같은데.. devartd, devarts에서 variables.tf를 각 각 복사해서 넣어야 하는걸까요 ,,? -> 심볼릭 링크로 하시는 것 같은데, vairables/var_lb, ec2/art-id/variables.tf 등 많아서.. 헷갈립니다.. EC2 여러개 생성 EC2를 여러개 만들어야 하는 상황인데, module을 import 해서 forEach로 만들어야 하는지 궁금합니다.
해결됨
실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
1. 무엇을 하고 싶으신가요? 섹션 4 프로젝트 코드를 받아 볼 수 있을까요?
해결됨
아키텍처와 함께하는 Terraform (테라폼 모듈)
안녕하세요 올려주신 테라폼 강의 잘 듣고 있는 수강생입니다. 현재 jar파일을 ec2에 배포하여 애플리케이션 실행까지 완료한 상태입니다. 하지만 alb dns 이름을 주소창에 입력하면 아래와 같이 로그인 ui는 나오지만 Username과 Password를 입력하여도 유저 정보창이 나오지 않는 상황입니다. 질문 사항은 아래와 같습니다. 로그인 창에서 입력해야 할 Username과 Password는 user, password가 맞나요? user와 password를 입력하여도, 아래와 같이 Http error 500이 뜨는 상황입니다. 아무래도 서버쪽 설정이 잘못 된거 같습니다. 이런 경우 어떤 부분을 다시 확인해봐야 할까요? 감사합니다.
해결됨
실리콘밸리 엔지니어와 함께하는 테라폼(Terraform)
다른 강의에서 ppt 자료 공유해주셨는데, 이 강의에선 코드 자료밖에 없어서 ppt 자료도 공유해주시면 감사하겠습니다.
미해결
실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
1. 무엇을 하고 싶으신가요? 2. 언제, 어떤 오류가 발생하시나요? mysql 비밀번호 'apmsetup' 으로 입력해도 계속하여 같은 오류가 납니다ㅠㅠ 3. 어떤 시도를 해보셨나요? 구글링하여 나와있는 해결책 모두 안 통하는데 에러 해결 방법이 뭘까요? 4. 작성한 코드를 공유해주세요.
미해결
처음 시작하는 Infrastructure as Code: AWS & 테라폼
7강 이하로 다 그런거 같은데.. 어떻게 해야되나요..ㅠ