공개(인증되지 않은) 액세스 허용

공개 API 또는 웹사이트에 해당하는 Cloud Run 서비스를 위한 옵션입니다.

allUsers 구성원 유형에 IAM Cloud Run 호출자 역할을 할당하여 서비스에 인증되지 않은 호출을 허용할 수 있습니다.

Cloud Run 서비스에서 인증을 구성하려면 run.services.setIamPolicy 권한이 있어야 합니다. 이 권한에는 소유자Cloud Run 관리자 역할이 모두 있습니다. 역할과 해당 연결된 권한의 전체 목록은 Cloud Run IAM 역할을 참조하세요.

Console UI

기존 Cloud Run 서비스의 경우 다음 안내를 따르세요.

  1. Google Cloud 콘솔로 이동합니다.

    Google Cloud 콘솔로 이동

  2. 공개하려는 서비스의 왼쪽에 있는 체크박스를 클릭합니다. 서비스 자체를 클릭하지 마세요.

  3. 오른쪽 상단에 있는 정보 창에서 권한 탭을 클릭합니다. 정보 창이 표시되지 않으면 정보 패널 표시를 클릭한 후 권한을 클릭해야 할 수 있습니다.

  4. 주 구성원 추가를 클릭합니다.

새 주 구성원 텍스트 상자에 allUsers 값을 입력합니다.

  1. 역할 드롭다운 메뉴에서 Cloud Run 호출자 역할을 선택합니다.

  2. 저장을 클릭합니다.

  3. 이 리소스를 공개할지 확인하라는 메시지가 표시됩니다. 공개 액세스 허용을 클릭하여 서비스 IAM 설정에 변경사항을 적용합니다.

만들려는 새 서비스의 경우 서비스를 만들되 인증 탭에서 인증되지 않은 호출 허용을 선택하여 서비스를 공개적으로 사용할 수 있게 해야 합니다. 인증 필요를 선택하면 서비스가 비공개로 설정됩니다.

gcloud

서비스에 공개적으로 액세스할 수 있도록 하려면 gcloud run services 명령어를 사용하여 서비스에 특수한 allUsers 구성원 유형을 추가하고 roles/run.invoker 역할을 부여합니다.

  gcloud run services add-iam-policy-binding [SERVICE_NAME] \
    --member="allUsers" \
    --role="roles/run.invoker"

또는 서비스를 배포할 때 gcloud run deploy 명령어를 실행하여 서비스에 공개적으로 액세스할 수 있도록 합니다.

gcloud run deploy [SERVICE_NAME] ... --allow-unauthenticated

YAML

다음 콘텐츠로 policy.yaml이라는 파일을 만듭니다.

bindings:
- members:
  - allUsers
  role: roles/run.invoker

다음을 사용하여 기존 SERVICE에 인증되지 않은 호출을 허용합니다.

gcloud run services set-iam-policy SERVICE policy.yaml

Terraform

Cloud Run 서비스를 만들려면 다음을 기존 main.tf 파일에 추가합니다.

resource "google_cloud_run_v2_service" "default" {
  name     = "cloud-run-srv"
  location = "us-central1"

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
  }
}

roles/run.invoker의 서비스 IAM 바인딩을 업데이트하려면 Cloud Run 서비스를 참조하는 다음 리소스를 추가합니다.

resource "google_cloud_run_service_iam_binding" "default" {
  location = google_cloud_run_v2_service.default.location
  service  = google_cloud_run_v2_service.default.name
  role     = "roles/run.invoker"
  members = [
    "allUsers"
  ]
}

이 바인딩은 지정된 역할에 대해서만 권한이 있습니다. 서비스 IAM 정책 내 다른 IAM 바인딩은 유지됩니다.

도메인 제한 공유

조직 정책에서 도메인 제한 공유 제약조건이 적용되는 프로젝트에서는 기본적으로 공개 서비스를 만들 수 없습니다. 태그 및 조건부 정책을 사용하여 이 제약조건에서 특정 서비스를 제외할 수 있습니다. 자세한 내용은 도메인 제한 공유가 적용될 때 공개 Cloud Run 서비스 만들기에 대한 블로그 게시물을 참조하세요.