시작하기 전에
- 실습에서는 정해진 기간 동안 Google Cloud 프로젝트와 리소스를 만듭니다.
- 실습에는 시간 제한이 있으며 일시중지 기능이 없습니다. 실습을 종료하면 처음부터 다시 시작해야 합니다.
- 화면 왼쪽 상단에서 실습 시작을 클릭하여 시작합니다.
Enable APIs and set up Artifact Registries
/ 20
Set up a Cloud Build pipeline and push your Docker image to Artifact Registry
/ 20
Create an Attestor, KMS pair, and update the policy
/ 20
Integrate vulnerability scanning into your CI/CD pipeline
/ 20
Fix the vulnerability and redeploy the CI/CD pipeline
/ 20
챌린지 실습에서는 특정 시나리오와 일련의 작업이 주어집니다. 단계별 안내를 따르는 대신, 과정의 실습에서 배운 기술을 사용하여 스스로 작업을 완료하는 방법을 알아내 보세요. 이 페이지에 표시되어 있는 자동 채점 시스템에서 작업을 올바르게 완료했는지 피드백을 제공합니다.
챌린지 실습을 진행할 때는 새로운 Google Cloud 개념에 대한 정보가 제공되지 않습니다. 학습한 기술을 응용하여 기본값을 변경하거나 오류 메시지를 읽고 조사하여 실수를 바로잡아야 합니다.
100점을 받으려면 시간 내에 모든 작업을 성공적으로 완료해야 합니다.
이 실습은 안전한 소프트웨어 배포 과정에 등록한 수강생에게 권장됩니다. 챌린지에 도전할 준비가 되셨나요?
Cymbal Bank의 소프트웨어 엔지니어인 여러분은 새로운 웹 애플리케이션을 클라우드에 안전하게 배포하는 업무를 맡고 있습니다. 이 애플리케이션은 민감한 고객 데이터를 다루기 때문에 보안이 무엇보다 중요합니다. 여러분의 목표는 엄격한 보안 표준을 준수하는 동시에 컨테이너화된 애플리케이션을 빌드, 스캔, 서명, 배포하는 강력하고 자동화된 파이프라인을 구현하는 것입니다. 이 챌린지에서 여러분은 샘플 애플리케이션에서 Artifact Registry, Binary Authorization, Cloud Build와 같은 Google Cloud 서비스를 사용하여 이 목표를 달성합니다.
다음 안내를 확인하세요. 실습에는 시간 제한이 있으며 일시중지할 수 없습니다. 실습 시작을 클릭하면 타이머가 시작됩니다. 이 타이머는 Google Cloud 리소스를 사용할 수 있는 시간이 얼마나 남았는지를 표시합니다.
실무형 실습을 통해 시뮬레이션이나 데모 환경이 아닌 실제 클라우드 환경에서 실습 활동을 진행할 수 있습니다. 실습 시간 동안 Google Cloud에 로그인하고 액세스하는 데 사용할 수 있는 새로운 임시 사용자 인증 정보가 제공됩니다.
이 실습을 완료하려면 다음을 준비해야 합니다.
안전한 CI/CD 파이프라인을 빌드하기 전에 필요한 Google Cloud API를 사용 설정하고 개발 환경을 설정해야 합니다. 이렇게 해야 필요한 모든 서비스와 도구에 액세스할 수 있습니다.
artifact-scanning-repo와 artifact-prod-repo로 지정합니다.스캔 저장소는 취약점 스캔 전에 Docker 이미지를 저장하는 데 사용되며, 프로덕션 저장소는 이미지가 서명되고 배포 준비가 완료된 후에 이미지를 저장합니다.
목표를 확인하려면 내 진행 상황 확인하기를 클릭합니다.
이 작업에서는 Docker 이미지를 빌드하고 Artifact Registry에 푸시하는 기본 Cloud Build 구성을 만들어 CI/CD 파이프라인의 기반을 마련합니다. 이 초기 단계를 거치면 실습 후반부에 이미지의 취약점을 스캔할 수 있습니다.
먼저 Cloud Build 서비스 계정에 다음 역할을 추가합니다.
roles/iam.serviceAccountUserroles/ondemandscanning.adminCloud Shell 편집기에서 sample-app/cloudbuild.yaml 파일을 엽니다.
TODO 완료: 이미지 이름 자리표시자(<image-name>)를 작성합니다. 이를 위해 artifact-scanning-repo 저장소를 참조해야 하며, 이미지 이름은 sample-image여야 합니다.
빌드를 제출합니다.
artifact-scanning-repo 저장소에 푸시한 이미지를 확인하고 스캔 결과에 여러 개의 심각 취약점이 표시되는지 확인합니다.
목표를 확인하려면 내 진행 상황 확인하기를 클릭합니다.
컨테이너 배포에 대한 엄격한 보안 정책을 적용하기 위해 Binary Authorization을 활용합니다. 이 서비스를 사용하면 누가 어떤 이미지를 어떤 조건으로 배포할 수 있는지 정의할 수 있습니다. 이 작업에서는 증명자, 메모, KMS 키 등 Binary Authorization의 필수 구성요소를 만들고 구성합니다. 이렇게 하면 CI/CD 파이프라인에 Binary Authorization을 통합할 준비가 됩니다.
Cloud Shell에서 JSON 파일을 만듭니다. 이 파일은 증명 힌트가 포함된 증명자 메모를 정의합니다. 증명 힌트의 human_readable_name은 'Container Vulnerabilities attestation authority'로 설정되어야 합니다.
Container Analysis API를 사용하여 ID가 vulnerability_note인 새 메모를 만듭니다. 메모의 세부정보는 이전 단계에서 만든 메모 파일에 정의되어 있어야 합니다. API 요청에 적절한 인증을 포함하고 적절한 Content-Type 헤더를 설정해야 합니다.
Container Analysis API를 사용하여 방금 만든 증명자 메모의 세부정보를 가져옵니다. API 요청에 적절한 인증이 포함되어야 합니다.
gcloud 명령줄 도구를 사용하여 새로운 Binary Authorization 증명자를 만듭니다. 증명자 ID는 vulnerability-attestor여야 하며, 이전에 만든 증명자 메모와 연결되어야 합니다.
gcloud 명령줄 도구를 사용하여 기존의 모든 Binary Authorization 증명자를 나열합니다. 방금 만든 증명자가 목록에 포함되어 있는지 확인합니다.
만들어진 증명자 메모에서 Binary Authorization 서비스 계정에 roles/containeranalysis.notes.occurrences.viewer 역할을 부여하는 IAM 정책을 구성합니다. 그런 다음 Container Analysis API를 사용하여 메모에 이 IAM 정책을 설정합니다.
이 섹션에서는 증명에 서명하기 위한 KMS 키 쌍을 생성합니다.
다음 단계에 따라 키 관리를 설정합니다.
global 위치에 binauthz-keys라는 이름의 KMS 키링을 만듭니다.lab-key로 지정하고 버전 1인지 확인합니다.다음 단계에 따라 키를 증명자에 연결합니다.
gcloud 명령줄 도구를 사용하여 lab-key(버전 1)를 Binary Authorization 증명자와 연결합니다. 키를 참조할 때 global 위치와 binauthz-keys 키링을 지정해야 합니다.정책 수정: 기본 규칙에 대한 증명 요구사항을 적용하도록 Binary Authorization 정책을 조정합니다.
증명자 통합: 이전에 만든 vulnerability-attestor를 정책 구성의 일부로 포함합니다.
목표를 확인하려면 내 진행 상황 확인하기를 클릭합니다.
이제 작업 2에서 만든 기본 파이프라인에 중요한 보안 기능을 추가하여 파이프라인을 개선합니다. 여기에는 컨테이너 이미지의 잠재적인 약점을 식별하는 취약점 스캔과 이미지 무결성을 보장하는 이미지 서명이 포함됩니다. 이 작업에서는 취약점 스캔과 이미지 서명을 CI/CD 파이프라인에 통합하여 더욱 강력하고 안전하게 만듭니다.
프로젝트에서 Cloud Build 서비스 계정에 다음 IAM 역할을 부여합니다.
roles/binaryauthorization.attestorsViewerroles/cloudkms.signerVerifierroles/containeranalysis.notes.attacherroles/iam.serviceAccountUserroles/ondemandscanning.admin또한 Compute Engine 기본 서비스 계정에도 cloudkms.signerVerifier 역할이 있는지 확인합니다.
이 섹션에서는 취약점 스캔, 심각도 검사, 이미지 서명, Cloud Run에 대한 배포를 포함하도록 Cloud Build 파이프라인을 완성합니다. 아래 제공된 코드는 파이프라인의 부분적인 구현입니다. 파이프라인을 완성하려면 누락된 부분을 채워야 합니다.
artifact-scanning-repo 저장소에서 이미지를 스캔합니다.CRITICAL 취약점이 발견되면 파이프라인은 실패할 것입니다.vulnerability-attestor이고 키 버전은 lab-key 버전 1의 전체 경로입니다.artifact-prod-repo 저장소를 사용해야 합니다.artifact-prod-repo 저장소의 프로덕션 이미지를 사용합니다.cloudbuild.yaml 파일의 첫 몇 가지 TODO를 이미 작성했습니다. 나머지 자리표시자는 나머지 TODO의 올바른 값으로 바꾸어야 합니다.
빌드 트리거:
빌드 실패 관찰:
CRITICAL 심각도 취약점이 있어서 빌드가 실패하는지 확인합니다.CRITICAL 심각도 취약점으로 인해 실패해야 합니다. 다음 작업에서 이 문제를 해결할 것입니다.
목표를 확인하려면 내 진행 상황 확인하기를 클릭합니다.
실제 시나리오에서는 취약점 스캔을 통해 해결해야 하는 문제가 드러나는 경우가 많습니다. 이 작업에서는 중요한 취약점으로 인해 빌드가 실패하는 시나리오를 시뮬레이션합니다. 이 작업에서는 빌드 실패를 분석하고, 취약점을 식별하며, 애플리케이션의 종속 항목을 업데이트하여 취약점을 수정합니다. 그런 다음 Cloud Build 파이프라인을 다시 트리거하여 빌드가 심각한 취약점 없이 성공적으로 완료되는지 확인합니다.
Dockerfile 업데이트: python:3.8-alpine 기본 이미지를 사용하도록 Dockerfile을 수정합니다. Flask, Gunicorn, Werkzeug 종속 항목을 다음 버전으로 업데이트합니다.
3.0.3
23.0.0
3.0.4
빌드 다시 트리거: 업데이트된 Cloud Build 구성을 제출하여 새 빌드를 시작합니다.
빌드 성공 여부 확인: Cloud Build 기록 페이지에서 빌드가 CRITICAL 취약점 이슈 없이 성공적으로 완료되는지 확인합니다.
테스트를 위해 Cloud Run 서비스에 대한 인증되지 않은 액세스를 허용하여 배포를 검증할 수 있도록 다음 명령어를 실행합니다. <your-region>을 서비스를 배포한 리전으로 바꿉니다.
목표를 확인하려면 내 진행 상황 확인하기를 클릭합니다.
수고하셨습니다. 이 실습에서 웹 애플리케이션을 빌드, 스캔, 서명하고 클라우드에 배포하는 보안 CI/CD 파이프라인을 성공적으로 구현했습니다. 이 실습 경험을 통해 클라우드에서 안전한 애플리케이션을 빌드하고 배포하는 데 필요한 필수 기술을 갖추고, 개발 워크플로에 보안 권장사항을 통합하며, 소프트웨어 배포 프로세스의 무결성을 보장할 수 있게 되었습니다.
이 실습에서 다룬 주제에 관해 자세히 알아보려면 다음 리소스를 확인하세요.
Google Cloud 기술을 최대한 활용하는 데 도움이 됩니다. Google 강의에는 빠른 습득과 지속적인 학습을 지원하는 기술적인 지식과 권장사항이 포함되어 있습니다. 기초에서 고급까지 수준별 학습을 제공하며 바쁜 일정에 알맞은 주문형, 실시간, 가상 옵션이 포함되어 있습니다. 인증은 Google Cloud 기술에 대한 역량과 전문성을 검증하고 입증하는 데 도움이 됩니다.
설명서 최종 업데이트: 2025년 12월 10일
실습 최종 테스트: 2024년 9월 4일
Copyright 2026 Google LLC. All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.
현재 이 콘텐츠를 이용할 수 없습니다
이용할 수 있게 되면 이메일로 알려드리겠습니다.
감사합니다
이용할 수 있게 되면 이메일로 알려드리겠습니다.
한 번에 실습 1개만 가능
모든 기존 실습을 종료하고 이 실습을 시작할지 확인하세요.