Cloud Run에 대해 Binary Authorization 사용 설정

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

시작하기 전에

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

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

    프로젝트 선택기로 이동

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

  4. API Cloud Run, Artifact Registry, Binary Authorization 사용 설정

    API 사용 설정

  5. Google Cloud CLI를 설치합니다.
  6. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

    gcloud init
  7. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

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

  9. API Cloud Run, Artifact Registry, Binary Authorization 사용 설정

    API 사용 설정

  10. Google Cloud CLI를 설치합니다.
  11. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

    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

YAML 형식으로 정리된 결과를 생성하는 gcloud run services describe --format export 명령어를 사용하면 기존 서비스 구성을 다운로드해서 볼 수 있습니다. 그런 다음 아래 설명된 필드를 수정하고 gcloud run services replace 명령어를 사용하여 수정된 YAML을 업로드할 수 있습니다. 설명된 대로 필드만 수정해야 합니다.

  1. 구성을 보고 다운로드하려면 다음을 실행합니다.

    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

다음 단계