Cloud Code를 사용하여 보안 비밀 만들기 및 관리

Cloud Code의 Secret Manager 통합을 사용하여 보안 비밀을 만들고 관리하는 방법을 알아봅니다.


Cloud Shell 편집기에서 이 태스크의 단계별 안내를 직접 수행하려면 둘러보기를 클릭합니다.

둘러보기


시작하기 전에

  1. In the Google Cloud console, go to the project selector page.

    Go to project selector

  2. Select or create a Google Cloud project.

  3. Cloud Run 서비스 만들기

    Cloud Shell 편집기를 Cloud Run 서비스 및 보안 비밀 제작 환경으로 사용합니다. 편집기에는 Cloud 개발에 필요한 도구가 미리 로드되어 있습니다.

    서비스를 만드는 방법은 다음과 같습니다.

    1. Cloud Code 상태 표시줄에서 활성 프로젝트 이름을 클릭합니다.

      상태 표시줄의 활성 프로젝트 이름

    2. 표시되는 빠른 선택 메뉴에서 새 애플리케이션을 클릭한 다음 Cloud Run 애플리케이션을 클릭합니다.

    3. Cloud Run 샘플 목록에서 Python(Flask): Cloud Run을 선택합니다.

    4. 샘플 폴더를 선택한 다음 새 애플리케이션 만들기를 클릭합니다.

    Cloud Shell 편집기에서 서비스가 새로운 작업공간에 로드되면 탐색기 뷰에서 파일을 봅니다.

    보안 비밀 만들기

    Secret Manager를 사용하면 보안 비밀을 바이너리 blob이나 텍스트 문자열로 저장, 관리, 액세스할 수 있습니다. 또한 보안 비밀을 관리하므로 가상 머신이나 운영 서비스를 처리할 필요가 없습니다.

    Cloud Code의 Secret Manager 통합을 사용하여 보안 비밀을 만들려면 다음 안내를 따르세요.

    1. Secret Manager를 클릭하고 로드될 때까지 잠깐 기다립니다.
    2. Cloud Shell에서 Google Cloud API를 호출할 수 있도록 승인하라는 메시지가 표시되면 승인을 클릭합니다.
    3. add 보안 비밀 만들기를 클릭합니다.
    4. 메시지가 표시되면 드롭다운 선택기에서 Google Cloud 프로젝트를 선택합니다.
    5. 메시지가 표시되면 Secret Manager API를 사용 설정합니다.
    6. Secret Manager - 보안 비밀 만들기 탭이 표시되면 이름 필드에 다음을 입력합니다.

      my-secret
      
    7. 보안 비밀 값 필드에 다음을 입력합니다.

      Hello secret!
      
    8. 보안 비밀 만들기를 클릭하면 보안 비밀을 성공적으로 생성했다는 메시지가 표시됩니다.

    코드에 보안 비밀 추가

    보안 비밀은 애플리케이션 런타임에 필요한 데이터베이스 비밀번호, API 키, TLS 인증서 등의 구성 정보를 저장하는 데 유용합니다.

    코드에 보안 비밀을 추가하려면 다음 안내를 따르세요.

    1. Cloud API 뷰를 열고 Secret Manager API를 선택합니다.

      그러면 제목이 Secret Manager API인 Google Cloud API 세부정보 탭이 열립니다.

    2. 클라이언트 라이브러리 설치 섹션에서 Python 탭을 클릭하고 play_arrow 터미널에서 실행을 클릭합니다. 이렇게 하면 google-cloud-secret-manager 클라이언트 라이브러리가 설치됩니다.

    3. requirements.txt를 열고 파일 하단에 다음 행을 추가합니다.

      google-cloud-secret-manager==2.1.0
      

      변경사항이 자동으로 저장됩니다.

    4. 보안 비밀의 최신 값을 가져오려면 app.py를 열고 hello 함수 뒤에 다음 함수를 복사하여 붙여넣습니다.

      def access_secret_version(secret_version_id):
          """Return the value of a secret's version"""
          from google.cloud import secretmanager
      
          # Create the Secret Manager client.
          client = secretmanager.SecretManagerServiceClient()
      
          # Access the secret version.
          response = client.access_secret_version(name=secret_version_id)
      
          # Return the decoded payload.
          return response.payload.data.decode('UTF-8')
      
      
    5. access_secret_version 함수를 호출하려면 메시지 변수를 다음으로 변경합니다.

      message = access_secret_version("<SECRET_VERSION_ID>")
      
    6. Secret Manager - 보안 비밀 만들기 탭이 아직 열려 있으면 ID를 file_copy file_copy합니다.

      언제든지 보안 비밀 버전 ID를 가져오려면 Secret Manager > [SECRET_NAME] > 버전으로 이동하고 버전 위로 마우스 포인터를 가져간 후 리소스 ID 복사를 클릭합니다.

    7. 버전 ID를 추가하려면 자리표시자 <SECRET_VERSION_ID>를 복사한 버전 ID로 바꿉니다.

    Cloud Run 에뮬레이터에서 실행

    새 보안 비밀을 테스트하려면 Cloud Run 에뮬레이터에서 로컬로 Cloud Run 서비스를 실행합니다.

    1. 상태 표시줄에서 Cloud Code 메뉴를 실행합니다.
    2. 에뮬레이터에 서비스를 빌드하고 배포하려면 Cloud Run 에뮬레이터에서 실행을 선택합니다.
    3. Cloud Run 에뮬레이터에서 실행/디버그 탭이 표시되면 실행을 클릭합니다.
    4. 구성을 처음 실행하면 이 프로세스는 최대 5분이 걸릴 수 있습니다. 앱이 빌드되고 배포되는 동안 출력 패널에 진행 상황이 표시됩니다.

    5. 앱이 빌드된 후 출력 패널에 표시되는 localhost 링크를 클릭하여 앱을 실행합니다. 성공 그래픽 아래에 보안 비밀 값이 표시됩니다.

    새 보안 비밀 버전 보기 및 만들기

    Cloud Code의 Secret Manager 뷰에서 프로젝트 보안 비밀과 관리 작업을 간단히 살펴볼 수 있습니다.

    보안 비밀 버전 값 보기

    1. Secret Manager 뷰를 클릭합니다.
    2. 보안 비밀을 클릭하여 펼칩니다.
    3. 버전 폴더에서 값을 보려는 번호가 지정된 버전을 마우스 오른쪽 버튼으로 클릭하고 버전 값 표시를 선택합니다.

    보안 비밀 버전은 수정할 수 없습니다. 보안 비밀 값을 업데이트하려면 새 버전을 만들어야 합니다.

    새 보안 비밀 버전 만들기

    보안 비밀 값은 보안 비밀 버전에 저장됩니다. 보안 비밀에는 여러 버전이 있을 수 있습니다. 이는 보안 비밀이 변경되는 상황에 유용합니다. 보안 비밀을 새 버전으로 업데이트하면 코드를 업데이트할 필요가 없습니다.

    1. Secret Manager 뷰를 클릭합니다.
    2. 보안 비밀 이름을 마우스 오른쪽 버튼으로 클릭하고 보안 비밀 버전 만들기를 선택합니다.
    3. Secret Manager - 버전 만들기 탭이 표시되면 새 값을 입력하고 버전 만들기를 클릭합니다.
    4. Secret Manager - 보안 비밀 만들기 탭이 열리면 file_copy 복사를 클릭하여 ID를 복사합니다.
    5. 최신 버전 ID를 추가하려면 app.py의 메시지 변수에 표시된 현재 버전을 복사한 최신 버전 ID로 바꿉니다.

    항상 코드에서 최신 버전을 사용하려면 버전 ID 끝에 있는 버전 번호를 latest로 바꾸세요.

    보안 비밀 보기 및 관리

    보안 비밀 버전 사용 중지

    보안 비밀 버전은 생성 후에 기본적으로 사용 설정되므로 액세스할 수 있습니다. 사용 중지된 보안 비밀에는 액세스할 수 없지만 언제든 액세스 권한을 복원할 수 있습니다.

    보안 비밀 버전을 사용 중지하려면 다음 안내를 따르세요.

    1. Cloud Code를 클릭한 다음 Secret Manager 섹션을 펼칩니다.
    2. 보안 비밀을 클릭하여 펼칩니다.
    3. 버전 폴더에서 사용 중지하려는 번호가 지정된 버전을 마우스 오른쪽 버튼으로 클릭합니다.
    4. 버전 사용 중지를 선택합니다.

    보안 비밀 버전 폐기

    보안 비밀 버전을 폐기하면 액세스할 수 없습니다. 보안 비밀 버전 폐기는 영구적입니다.

    1. Cloud Code를 클릭한 다음 Secret Manager 섹션을 펼칩니다.
    2. 보안 비밀을 클릭하여 펼칩니다.
    3. 버전 폴더에서 폐기하려는 버전을 마우스 오른쪽 버튼으로 클릭합니다.
    4. 버전 폐기를 선택합니다.

    삭제

    이 빠른 시작에서 만든 클러스터만 삭제하려면 다음 안내를 따르세요.

    1. Cloud Code를 클릭한 다음 Kubernetes 섹션을 펼칩니다.
    2. 클러스터 이름 위에 마우스 포인터를 올려놓고 open_in_new Google Cloud 콘솔에서 열기를 클릭합니다.
    3. 삭제를 클릭한 다음 삭제를 클릭합니다.

    프로젝트 및 클러스터를 포함한 관련 리소스를 삭제하려면 다음 안내를 따르세요.

    1. Google Cloud 콘솔의 프로젝트 페이지로 이동합니다.

      프로젝트 페이지로 이동

    2. 이 빠른 시작에서 만든 프로젝트를 선택한 후 삭제를 클릭합니다.

    3. 확인할 프로젝트 ID를 입력한 후 종료를 클릭합니다.

      그러면 프로젝트가 종료되고 삭제 일정이 예약됩니다.