단순 서명 증명 검사 사용

이 페이지에서는 Binary Authorization 지속적 검증(CV) 단순 서명 증명 검사를 사용하는 방법을 보여줍니다. 검사는 CV가 사용 설정된 Google Kubernetes Engine(GKE) 클러스터에서 실행 중인 포드와 연결된 컨테이너 이미지의 증명을 확인합니다.

비용

이 가이드에서는 다음 Google Cloud 서비스를 사용합니다.

  • Binary Authorization. 하지만 미리보기 단계 중에 CV를 무료로 사용할 수 있습니다.
  • GKE
  • Cloud Key Management Service

프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용하세요.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud CLI를 설치합니다.

  3. 외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

  4. gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.

    gcloud init
  5. Google Cloud 프로젝트를 만들거나 선택합니다.

    프로젝트를 선택하거나 만드는 데 필요한 역할

    • 프로젝트 선택: 프로젝트를 선택하는 데는 특정 IAM 역할이 필요하지 않습니다. 역할이 부여된 프로젝트를 선택하면 됩니다.
    • 프로젝트 만들기: 프로젝트를 만들려면 resourcemanager.projects.create 권한이 포함된 프로젝트 생성자 역할(roles/resourcemanager.projectCreator)이 필요합니다. 역할 부여 방법 알아보기
    • Google Cloud 프로젝트를 만듭니다.

      gcloud projects create PROJECT_ID

      PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다.

    • 만든 Google Cloud 프로젝트를 선택합니다.

      gcloud config set project PROJECT_ID

      PROJECT_ID을 Google Cloud 프로젝트 이름으로 바꿉니다.

  6. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  7. Binary Authorization, Cloud Key Management Service, Google Kubernetes Engine API를 사용 설정합니다.

    API 사용 설정에 필요한 역할

    API를 사용 설정하려면 serviceusage.services.enable 권한이 필요합니다. 프로젝트를 만든 경우 소유자 역할 (roles/owner)을 통해 이 권한이 이미 있을 수 있습니다. 그렇지 않으면 서비스 사용량 관리자 역할 (roles/serviceusage.serviceUsageAdmin)을 통해 이 권한을 얻을 수 있습니다. 역할을 부여하는 방법 알아보기

    gcloud services enable binaryauthorization.googleapis.com cloudkms.googleapis.com container.googleapis.com
  8. Google Cloud CLI를 설치합니다.

  9. 외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

  10. gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.

    gcloud init
  11. Google Cloud 프로젝트를 만들거나 선택합니다.

    프로젝트를 선택하거나 만드는 데 필요한 역할

    • 프로젝트 선택: 프로젝트를 선택하는 데는 특정 IAM 역할이 필요하지 않습니다. 역할이 부여된 프로젝트를 선택하면 됩니다.
    • 프로젝트 만들기: 프로젝트를 만들려면 resourcemanager.projects.create 권한이 포함된 프로젝트 생성자 역할(roles/resourcemanager.projectCreator)이 필요합니다. 역할 부여 방법 알아보기
    • Google Cloud 프로젝트를 만듭니다.

      gcloud projects create PROJECT_ID

      PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다.

    • 만든 Google Cloud 프로젝트를 선택합니다.

      gcloud config set project PROJECT_ID

      PROJECT_ID을 Google Cloud 프로젝트 이름으로 바꿉니다.

  12. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  13. Binary Authorization, Cloud Key Management Service, Google Kubernetes Engine API를 사용 설정합니다.

    API 사용 설정에 필요한 역할

    API를 사용 설정하려면 serviceusage.services.enable 권한이 필요합니다. 프로젝트를 만든 경우 소유자 역할 (roles/owner)을 통해 이 권한이 이미 있을 수 있습니다. 그렇지 않으면 서비스 사용량 관리자 역할 (roles/serviceusage.serviceUsageAdmin)을 통해 이 권한을 얻을 수 있습니다. 역할을 부여하는 방법 알아보기

    gcloud services enable binaryauthorization.googleapis.com cloudkms.googleapis.com container.googleapis.com
  14. gcloud CLI가 최신 버전으로 업데이트되었는지 확인합니다.
  15. kubectl 명령줄 도구 설치
  16. Binary Authorization 정책과 GKE 클러스터가 서로 다른 프로젝트에 있으면 Binary Authorization이 두 프로젝트 모두에 사용 설정되었는지 확인합니다.

필요한 역할

이 섹션에서는 이 검사에 대해 역할을 설정하는 방법을 보여줍니다.

개요

이 가이드에 언급된 모든 제품을 동일한 프로젝트에서 실행할 경우에는 권한을 설정할 필요가 없습니다. 역할을 사용 설정하면 Binary Authorization에서 역할이 올바르게 구성됩니다. 서로 다른 프로젝트에서 제품을 실행할 때는 이 섹션의 설명에 따라 역할을 설정해야 합니다.

각 프로젝트의 Binary Authorization 서비스 에이전트에 CV 단순 서명 증명 검사를 평가하는 데 필요한 권한이 있는지 확인하기 위해 각 프로젝트의 Binary Authorization 서비스 에이전트에 다음 IAM 역할을 부여하도록 관리자에게 요청하세요.

  • 클러스터 프로젝트가 정책 프로젝트와 다른 경우: 정책 프로젝트에 액세스하기 위한 클러스터 프로젝트 Binary Authorization 서비스 에이전트의 Binary Authorization 정책 평가자 (roles/binaryauthorization.policyEvaluator)
  • 증명 프로젝트가 정책 프로젝트와 다른 경우: 증명 프로젝트에 액세스하기 위한 정책 프로젝트 Binary Authorization 서비스 에이전트의 컨테이너 분석 어커런스 뷰어 (roles/containeranalysis.occurrences.viewer)

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

관리자는 맞춤 역할 또는 다른 사전 정의된 역할을 통해 각 프로젝트의 Binary Authorization 서비스 에이전트에 필요한 권한을 부여할 수도 있습니다.

gcloud CLI를 사용하여 역할 부여

각 프로젝트의 Binary Authorization 서비스 에이전트에 CV 단순 서명 증명 검사를 평가하는 데 필요한 권한이 있는지 확인하기 위해 각 프로젝트의 Binary Authorization 서비스 에이전트에 다음 IAM 역할을 부여하도록 관리자에게 요청하세요.

  1. 클러스터 프로젝트의 Binary Authorization 서비스 에이전트에 정책 프로젝트의 정책에 액세스할 수 있는 권한을 부여합니다.

    1. 클러스터 프로젝트의 Binary Authorization 서비스 에이전트를 가져옵니다.

      PROJECT_NUMBER=$(gcloud projects list --filter="projectId:CLUSTER_PROJECT_ID" \
        --format="value(PROJECT_NUMBER)")
      CLUSTER_SERVICE_ACCOUNT="service-$PROJECT_NUMBER@gcp-sa-binaryauthorization.iam.gserviceaccount.com"
      

      CLUSTER_PROJECT_ID를 클러스터의 프로젝트 ID로 바꿉니다.

    2. CV가 클러스터의 정책을 평가하도록 허용합니다.

      gcloud projects add-iam-policy-binding POLICY_PROJECT_ID \
          --member="serviceAccount:$CLUSTER_SERVICE_ACCOUNT" \
          --role='roles/binaryauthorization.policyEvaluator'
      

      POLICY_PROJECT_ID를 정책이 포함된 프로젝트의 ID로 바꿉니다.

  2. 정책 프로젝트 Binary Authorization 서비스 에이전트가 증명 프로젝트의 증명에 액세스하도록 허용합니다.

    1. 정책 프로젝트의 Binary Authorization 서비스 에이전트를 가져옵니다.

      PROJECT_NUMBER=$(gcloud projects list \
        --filter="projectId:POLICY_PROJECT_ID" \
        --format="value(PROJECT_NUMBER)")
      SERVICE_ACCOUNT="service-$PROJECT_NUMBER@gcp-sa-binaryauthorization.iam.gserviceaccount.com"
      

      POLICY_PROJECT_ID를 정책이 포함된 프로젝트의 ID로 바꿉니다.

    2. 다음 역할을 부여합니다.

      gcloud projects add-iam-policy-binding ATTESTATION_PROJECT_ID \
          --member="serviceAccount:$SERVICE_ACCOUNT"