Cloud Run에 대해 Binary Authorization 사용 설정

이 가이드에서는 Cloud Run 서비스 및 작업의 정책 기반 배포를 시행하기 위해 Binary Authorization을 설정하는 방법을 보여줍니다.

시작하기 전에

다음을 수행하여 Cloud Run을 설정하고 API를 사용 설정합니다.

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init

기존 Cloud Run 서비스에서 Binary Authorization 사용 설정

기존 서비스에서 Binary Authorization 시행을 사용 설정할 수 있습니다. 사용 설정 후 시행을 활성화하려면 버전을 배포하거나 서비스 트래픽을 업데이트해야 할 수 있습니다.

Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 기존 서비스에서 Binary Authorization 시행을 사용 설정할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 Cloud Run 페이지로 이동합니다.

    Cloud Run으로 이동

  2. 서비스를 클릭합니다.

  3. Security(보안) 탭을 클릭합니다.

  4. 서비스에서 Binary Authorization 시행을 사용 설정하려면 사용 설정을 클릭합니다.

  5. 선택사항: Binary Authorization 정책을 구성하려면 정책 구성을 클릭합니다.

gcloud

서비스에서 Binary Authorization을 사용 설정하고 배포합니다.

gcloud run services update SERVICE_NAME --binary-authorization=default

SERVICE_NAME을 서비스의 이름으로 바꿉니다.

YAML

  1. 새 서비스를 만드는 경우에는 이 단계를 건너뜁니다. 기존 서비스를 업데이트하려면 해당 YAML 구성을 다운로드합니다.

    gcloud run services describe SERVICE --format export > service.yaml
  2. 다음과 같이 run.googleapis.com/binary-authorization: 주석을 업데이트합니다.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      annotations:
        run.googleapis.com/binary-authorization: POLICY
      name: SERVICE
    spec:
      template:

    다음을 바꿉니다.

    • SERVICE: Cloud Run 이름
    • POLICY: default로 설정
  3. 다음 명령어를 사용하여 서비스를 새 구성으로 바꿉니다.

gcloud run services replace service.yaml

기존 Cloud Run 작업에서 Binary Authorization 사용 설정

Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 기존 작업에서 Binary Authorization 시행을 사용 설정할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 Cloud Run 작업 페이지로 이동합니다.

    Cloud Run으로 이동

  2. 작업을 클릭하여 작업 세부정보를 엽니다.

  3. Configuration 탭을 클릭합니다.

  4. Binary Authorization의 정책 목록에서 정책을 선택합니다.

  5. 적용을 클릭하여 작업에서 Binary Authorization 시행을 사용 설정합니다.

  6. 선택사항: Binary Authorization 정책을 구성하려면 정책 구성을 클릭합니다.

gcloud

작업에서 Binary Authorization을 사용 설정합니다.

gcloud run jobs update JOB_NAME --binary-authorization=POLICY

다음을 바꿉니다.

  • JOB_NAME: 작업의 이름입니다.
  • POLICY: 적용할 정책입니다. 기본 정책을 사용하려면 default 값을 사용합니다.

이를 위해 조직 정책을 구성하여 Cloud Run에 대해 Binary Authorization을 요구하는 것이 좋습니다. 정책이 구성되지 않았으면 Cloud Run 개발자가 Binary Authorization을 사용 중지할 수 있습니다.

정책 보기

정책을 보려면 정책 보기를 클릭합니다.

자세한 내용은 Binary Authorization 정책 구성을 참조하세요.

서비스 또는 작업 배포 실패

서비스 또는 작업이 Binary Authorization 정책을 위반하여 배포되지 못하면 다음과 같은 오류가 표시될 수 있습니다.

Revision REVISION_NAME uses an unauthorized container image.
Container image IMAGE_NAME is not authorized by policy.

이 오류에는 또한 이미지가 정책을 위반한 이유에 대한 정보가 포함됩니다. 여기에서는 breakglass를 사용하여 정책 시행을 우회하고 이미지를 배포할 수 있습니다.

새 서비스에서 Binary Authorization 사용 설정

Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 새 서비스에서 Binary Authorization을 사용 설정할 수 있습니다.

콘솔

  1. Cloud Run 페이지로 이동합니다.

    Cloud Run으로 이동

  2. 서비스 만들기를 클릭합니다.

  3. 서비스 만들기 양식에서 다음을 수행합니다.

    1. 개발 플랫폼으로 Cloud Run을 선택합니다.
    2. 서비스를 배치할 리전을 선택합니다.
    3. 서비스 이름을 입력합니다.
    4. 다음을 클릭하여 서비스의 첫 번째 버전 구성 페이지로 이동합니다.
    5. 기존 컨테이너 이미지에서 버전 1개 배포를 선택합니다.
    6. 배포할 이미지를 입력하거나 선택합니다.
    7. 고급 설정 섹션을 확장합니다.
    8. 보안 탭을 클릭합니다.
    9. Binary Authorization으로 컨테이너 배포 확인 체크박스를 선택합니다.

    10. 선택사항: 정책 구성을 클릭하여 Binary Authorization 정책을 구성합니다. 정책 구성에 대해 자세히 알아보려면 정책 구성을 참조하세요.

    11. 서비스를 배포합니다.

gcloud

서비스에서 Binary Authorization을 사용 설정하고 배포합니다.

  gcloud run deploy SERVICE_NAME --image=IMAGE_URL --binary-authorization=default --region=REGION

다음을 바꿉니다.

  • SERVICE_NAME: 서비스의 이름입니다.
  • IMAGE_URL: 배포할 이미지입니다.
  • REGION: 서비스를 배포할 리전입니다.

새 작업에서 Binary Authorization 사용 설정

Google Cloud CLI를 사용하여 새 작업에서 Binary Authorization을 사용 설정할 수 있습니다.

gcloud

  1. Binary Authorization을 사용 설정하여 새 작업을 만듭니다.

    gcloud run jobs create JOB_NAME \
      --image IMAGE_URL OPTIONS \
      --binary-authorization=POLICY \
      --region=REGION

    다음을 바꿉니다.

    • JOB_NAME: 만들려는 작업의 이름입니다. 이 매개변수를 생략할 수 있지만 생략하면 작업 이름을 입력하라는 메시지가 표시됩니다.
    • POLICY: 적용할 정책입니다. 기본 정책을 사용하려면 default 값을 사용합니다.
    • IMAGE_URL을 컨테이너 이미지에 대한 참조(예: us-docker.pkg.dev/cloudrun/container/job:latest)로 바꿉니다.
    • REGION: 작업이 실행될 리전입니다.
    • OPTIONS: Cloud Run 작업 만들기 페이지에서 설명되는 사용 가능한 옵션입니다.
  2. 작업 생성이 완료될 때까지 기다립니다. 성공적으로 완료되면 콘솔에 성공 메시지가 표시됩니다.

  3. 작업을 실행하려면 작업 실행 또는 일정에 따라 작업 실행을 참조하세요.

새 작업을 만들 때 Cloud Run 서비스 에이전트는 기본적으로 컨테이너에 액세스할 수 있어야 합니다.

YAML

  1. 다음 내용으로 새 service.yaml 파일을 만듭니다.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
        run.googleapis.com/binary-authorization: POLICY
    spec:
      template:
        spec:
          containers:
          - image: IMAGE

    다음을 바꿉니다.

    • SERVICE: Cloud Run 이름
    • IMAGE: 컨테이너 이미지의 URL
    • POLICY: default로 설정
  2. 다음 명령어를 사용하여 새 서비스를 배포합니다.

gcloud run services replace service.yaml

다음 단계