기본적으로 프로젝트 소유자와 편집자만 서비스와 작업을 생성, 업데이트, 삭제 또는 호출할 수 있으며, 프로젝트 소유자와 Cloud Run 관리자만 Identity and Access Management(IAM) 정책을 수정(예: 서비스를 공개하도록 설정)할 수 있습니다. 자세한 내용은 Cloud Run IAM 역할을 참조하세요.
다른 주 구성원 또는 그룹에 이러한 작업을 할 수 있는 권한을 부여하려면 IAM을 사용하여 역할을 다른 주 구성원에게 부여합니다.
사전 정의된 Cloud Run 역할
기본 역할(소유자, 편집자, 뷰어)과 비교할 때 다음과 같은 사전 정의된 역할은 Cloud Run 리소스 액세스를 보다 세밀하게 제어합니다.
역할 | 설명 |
---|---|
Cloud Run 관리자(roles/run.admin ) |
서비스 및 작업을 만들고, 업데이트, 삭제하고, 작업 실행을 가져오고, 나열, 삭제할 수 있습니다. 서비스 및 작업을 호출하고, 작업 실행을 취소할 수 있습니다. IAM 정책을 가져오고 설정할 수 있습니다. 권장사항을 보고, 적용, 해제할 수 있습니다. 서비스를 배포하려면 추가 구성이 필요합니다. |
Cloud Run 개발자(roles/run.developer ) |
서비스 및 작업을 만들고, 업데이트, 삭제하고, 작업 실행을 가져오고, 나열, 삭제할 수 있습니다. IAM 정책을 가져올 수 있지만 삭제할 수 없습니다. 권장사항을 보고, 적용, 해제할 수 있습니다. |
Cloud Run 뷰어(roles/run.viewer ) |
서비스, 작업, 작업 실행을 볼 수 있습니다. IAM 정책을 가져올 수 있습니다. 권장사항을 볼 수 있습니다. |
Cloud Run 호출자(roles/run.invoker ) |
서비스 및 작업을 호출하고 작업 실행을 취소할 수 있습니다. |
개별 서비스 또는 작업의 액세스 제어
IAM을 사용하여 서비스별 또는 작업별로 액세스를 제어할 수 있습니다.
서비스 공개
공개 API 또는 웹사이트에 해당하는 Cloud Run 서비스를 위한 옵션입니다.
allUsers
구성원 유형에 Cloud Run 호출자 IAM 역할을 할당하여 서비스에 인증되지 않은 호출을 허용할 수 있습니다.
Cloud Run 서비스에서 인증을 구성하려면 run.services.setIamPolicy
권한이 있어야 합니다. 이 권한에는 소유자 및 Cloud Run 관리자 역할이 모두 있습니다. 역할과 해당 연결된 권한의 전체 목록은 Cloud Run IAM 역할을 참조하세요.
Console UI
기존 Cloud Run 서비스의 경우 다음 안내를 따르세요.
Google Cloud 콘솔로 이동합니다.
공개하려는 서비스의 왼쪽에 있는 체크박스를 클릭합니다. 서비스 자체를 클릭하지 마세요.
오른쪽 상단에 있는 정보 창에서 권한 탭을 클릭합니다. 정보 창이 표시되지 않으면 정보 패널 표시를 클릭한 후 권한을 클릭해야 할 수 있습니다.
주 구성원 추가를 클릭합니다.
새 주 구성원 필드에 allUsers
값을 입력합니다.
역할 드롭다운 메뉴에서 Cloud Run 호출자 역할을 선택합니다.
저장을 클릭합니다.
이 리소스를 공개할지 확인하라는 메시지가 표시됩니다. 공개 액세스 허용을 클릭하여 서비스 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
파일에 추가합니다.
roles/run.invoker
의 서비스 IAM 바인딩을 업데이트하려면 Cloud Run 서비스를 참조하는 다음 리소스를 추가합니다.
이 바인딩은 지정된 역할에 대해서만 권한이 있습니다. 서비스 IAM 정책 내 다른 IAM 바인딩은 유지됩니다.
도메인 제한 공유
조직 정책에서 도메인 제한 공유 제약조건이 적용되는 프로젝트에서는 기본적으로 공개 서비스를 만들 수 없습니다. 태그 및 조건부 정책을 사용하여 이 제약조건에서 특정 서비스를 제외할 수 있습니다. 자세한 내용은 도메인 제한 공유가 적용될 때 공개 Cloud Run 서비스 만들기에 대한 블로그 게시물을 참조하세요.
주 구성원 추가
작업 또는 서비스에 주 구성원을 추가할 수 있습니다.
서비스에 주 구성원 추가
서비스에 주 구성원을 추가하려면 다음 안내를 따르세요.
Console UI
Google Cloud 콘솔로 이동합니다.
주 구성원을 추가할 서비스 옆에 있는 체크박스를 클릭합니다. 서비스 자체를 클릭하지 마세요.
오른쪽 상단에 있는 정보 창에서 권한 탭을 클릭합니다. 정보 창이 표시되지 않으면 정보 패널 표시를 클릭한 후 권한을 클릭해야 할 수 있습니다.
주 구성원 추가를 클릭합니다.
새 주 구성원 필드에 서비스에 액세스해야 하는 ID를 하나 이상 입력합니다.
역할 드롭다운 메뉴에서 하나 이상의 역할을 선택합니다. 창에 부여한 권한에 대한 간단한 설명과 함께 선택한 역할이 나타납니다.
저장을 클릭합니다.
gcloud
gcloud run services add-iam-policy-binding
명령어를 사용합니다.
gcloud run services add-iam-policy-binding SERVICE_NAME \ --member=MEMBER_TYPE \ --role=ROLE
여기서 SERVICE_NAME
은 서비스 이름이고 MEMBER_TYPE
은 주 구성원 유형(예: user:email@domain.com
)이고 ROLE
은 역할입니다.
MEMBER_TYPE
에 사용 가능한 값 목록은 IAM 개념 페이지를 참조하세요.
ROLE
에 사용 가능한 값 목록은 Cloud Run IAM 역할을 참조하세요.
작업에 주 구성원 추가
작업에 주 구성원을 추가하려면 다음 안내를 따르세요.
Console UI
Google Cloud 콘솔로 이동합니다.
주 구성원을 추가할 작업의 왼쪽에 있는 체크박스를 클릭합니다. 작업 자체를 클릭하지는 마세요.
오른쪽 상단에 있는 정보 창에서 권한 탭을 클릭합니다. 정보 창이 표시되지 않으면 정보 패널 표시를 클릭한 후 권한을 클릭해야 할 수 있습니다.
주 구성원 추가를 클릭합니다.
새 주 구성원 텍스트 상자에 작업에 액세스해야 하는 ID를 하나 이상 입력합니다.
역할 드롭다운 메뉴에서 하나 이상의 역할을 선택합니다. 창에 부여한 권한에 대한 간단한 설명과 함께 선택한 역할이 나타납니다.
저장을 클릭합니다.
gcloud
gcloud run jobs add-iam-policy-binding
명령어를 사용합니다.
gcloud run jobs add-iam-policy-binding JOB_NAME \ --member=MEMBER_TYPE \ --role=ROLE
여기서 JOB_NAME
은 작업 이름이고 MEMBER_TYPE
은 주 구성원 유형(예: user:email@domain.com
)이고 ROLE
은 역할입니다.
MEMBER_TYPE
에 사용 가능한 값 목록은 IAM 개념 페이지를 참조하세요.
ROLE
에 사용 가능한 값 목록은 Cloud Run IAM 역할을 참조하세요.
역할에서 주 구성원 삭제
서비스 또는 작업에서 주 구성원을 삭제할 수 있습니다.
서비스의 역할에서 주 구성원 삭제
서비스의 역할에서 주 구성원을 삭제하려면 다음 안내를 따르세요.
Console UI
Google Cloud 콘솔로 이동합니다.
주 구성원을 삭제할 서비스의 왼쪽에 있는 체크박스를 클릭합니다. 서비스 자체를 클릭하지 마세요.
오른쪽 상단에 있는 정보 창에서 권한 탭을 클릭합니다. 정보 창이 표시되지 않으면 정보 패널 표시를 클릭한 후 권한을 클릭해야 할 수 있습니다.
역할 목록 필터에 삭제할 주 구성원을 입력합니다. 그러면 해당 주 구성원에게 부여된 모든 역할이 표시됩니다.
원하는 역할 내의 주 구성원 옆에 있는 삭제 휴지통을 클릭하여 주 구성원에서 해당 역할을 삭제합니다.
확인 대화상자에 서비스의 모든 역할에서 해당 주 구성원을 삭제할 수 있는 옵션이 표시됩니다. 삭제를 클릭하여 역할에서 주 구성원을 삭제합니다.
gcloud
gcloud run services remove-iam-policy-binding
명령어를 사용합니다.
gcloud run services remove-iam-policy-binding SERVICE_NAME \ --member=MEMBER_TYPE \ --role=ROLE
여기서 SERVICE_NAME
은 서비스 이름이고 MEMBER_TYPE
은 주 구성원 유형(예: user:email@domain.com
)이고 ROLE
은 역할입니다.
MEMBER_TYPE
에 사용 가능한 값 목록은 IAM 개념 페이지를 참조하세요.
ROLE
에 사용 가능한 값 목록은 Cloud Run IAM 역할을 참조하세요.
작업의 역할에서 주 구성원 삭제
작업의 역할에서 주 구성원을 삭제하려면 다음 안내를 따르세요.
Console UI
Google Cloud 콘솔로 이동합니다.
주 구성원을 추가할 작업의 왼쪽에 있는 체크박스를 클릭합니다. 작업 자체를 클릭하지는 마세요.
오른쪽 상단에 있는 정보 창에서 권한 탭을 클릭합니다. 정보 창이 표시되지 않으면 정보 패널 표시를 클릭한 후 권한을 클릭해야 할 수 있습니다.
역할 목록 필터에 삭제할 주 구성원을 입력합니다. 그러면 해당 주 구성원에게 부여된 모든 역할이 표시됩니다.
원하는 역할 내의 주 구성원 옆에 있는 삭제 휴지통을 클릭하여 주 구성원에서 해당 역할을 삭제합니다.
확인 대화상자에 작업의 모든 역할에서 해당 주 구성원을 삭제할 수 있는 옵션이 표시됩니다. 삭제를 클릭하여 역할에서 주 구성원을 삭제합니다.
gcloud
gcloud run jobs remove-iam-policy-binding
명령어를 사용합니다.
gcloud run jobs remove-iam-policy-binding JOB_NAME \ --member=MEMBER_TYPE \ --role=ROLE
여기서 JOB_NAME
은 작업 이름이고 MEMBER_TYPE
은 주 구성원 유형(예: user:email@domain.com
)이고 ROLE
은 역할입니다.
MEMBER_TYPE
에 사용 가능한 값 목록은 IAM 개념 페이지를 참조하세요.
ROLE
에 사용 가능한 값 목록은 Cloud Run IAM 역할을 참조하세요.
주 구성원 일괄 추가 또는 삭제
서비스 및 작업을 일괄 추가 또는 삭제할 수 있습니다.
서비스의 주 구성원 일괄 추가 및 삭제
서비스에 대해 일괄 추가 또는 삭제하려면 다음 안내를 따르세요.
Console UI
Google Cloud 콘솔로 이동합니다.
주 구성원을 추가하거나 삭제할 서비스의 왼쪽에 있는 체크박스를 클릭합니다. 서비스 자체를 클릭하지 마세요.
주 구성원을 추가하거나 삭제할 서비스를 선택합니다.
오른쪽 상단에 있는 정보 창에서 권한 탭을 클릭합니다. 정보 창이 표시되지 않으면 정보 패널 표시를 클릭한 후 권한을 클릭해야 할 수 있습니다.
주 구성원을 추가하려면 다음을 수행하세요.
주 구성원 추가를 클릭합니다.
새 주 구성원 텍스트 상자에 서비스에 액세스해야 하는 ID를 하나 이상 입력합니다.
역할 드롭다운 메뉴에서 역할(또는 역할들)을 선택합니다. 창에 부여한 권한에 대한 간단한 설명과 함께 선택한 역할이 나타납니다.
저장을 클릭합니다.
주 구성원을 삭제하려면 다음을 수행하세요.
역할 목록 필터에 삭제할 주 구성원을 입력합니다. 그러면 해당 주 구성원에게 부여된 모든 역할이 표시됩니다.
원하는 역할 내의 주 구성원 옆에 있는 삭제 휴지통을 클릭하여 주 구성원에서 해당 역할을 삭제합니다.
확인 대화상자에 서비스의 모든 역할에서 해당 주 구성원을 삭제할 수 있는 옵션이 표시됩니다. 삭제를 클릭하여 역할에서 주 구성원을 삭제합니다.
gcloud
IAM 정책을 만듭니다.
cat <<EOF > policy.json { "bindings": [ { "role": ROLE, "members": [ MEMBER_TYPE ] } ] } EOF
gcloud run services set-iam-policy
명령어를 사용합니다.
gcloud run services set-iam-policy SERVICE_NAME policy.json
MEMBER_TYPE
에 사용 가능한 값 목록은 IAM 개념 페이지를 참조하세요.
ROLE
에 사용 가능한 값 목록은 Cloud Run IAM 역할을 참조하세요.
작업의 주 구성원 일괄 추가 및 삭제
작업에 대해 일괄 추가 또는 삭제하려면 다음 안내를 따르세요.
Console UI
Google Cloud 콘솔로 이동합니다.
주 구성원을 추가할 작업의 왼쪽에 있는 체크박스를 클릭합니다. 작업 자체를 클릭하지는 마세요.
주 구성원을 추가하거나 삭제할 작업을 선택합니다.
오른쪽 상단에 있는 정보 창에서 권한 탭을 클릭합니다. 정보 창이 표시되지 않으면 정보 패널 표시를 클릭한 후 권한을 클릭해야 할 수 있습니다.
주 구성원을 추가하려면 다음을 수행하세요.
주 구성원 추가를 클릭합니다.
새 주 구성원 텍스트 상자에 서비스에 액세스해야 하는 ID를 하나 이상 입력합니다.
역할 드롭다운 메뉴에서 역할(또는 역할들)을 선택합니다. 창에 부여한 권한에 대한 간단한 설명과 함께 선택한 역할이 나타납니다.
저장을 클릭합니다.
주 구성원을 삭제하려면 다음을 수행하세요.
역할 목록 필터에 삭제할 주 구성원을 입력합니다. 그러면 해당 주 구성원에게 부여된 모든 역할이 표시됩니다.
원하는 역할 내의 주 구성원 옆에 있는 삭제 휴지통을 클릭하여 주 구성원에서 해당 역할을 삭제합니다.
확인 대화상자에 작업의 모든 역할에서 해당 주 구성원을 삭제할 수 있는 옵션이 표시됩니다. 삭제를 클릭하여 역할에서 주 구성원을 삭제합니다.
gcloud
IAM 정책을 만듭니다.
cat <<EOF > policy.json { "bindings": [ { "role": ROLE, "members": [ MEMBER_TYPE ] } ] } EOF
gcloud run jobs set-iam-policy
명령어를 사용합니다.
gcloud run jobs set-iam-policy JOB_NAME policy.json
MEMBER_TYPE
에 사용 가능한 값 목록은 IAM 개념 페이지를 참조하세요.
ROLE
에 사용 가능한 값 목록은 Cloud Run IAM 역할을 참조하세요.
주 구성원 보기
서비스 및 작업의 주 구성원을 볼 수 있습니다.
서비스의 주 구성원 보기
서비스의 주 구성원을 보려면 다음 안내를 따르세요.
Console UI
Google Cloud 콘솔로 이동합니다.
주 구성원과 역할을 보려는 서비스의 왼쪽에 있는 체크박스를 클릭합니다. 서비스 자체를 클릭하지 마세요.
주 구성원과 역할을 보려는 서비스를 선택합니다.
오른쪽 상단에 있는 정보 창에서 권한 탭을 클릭합니다. 정보 창이 표시되지 않으면 정보 패널 표시를 클릭한 후 권한을 클릭해야 할 수 있습니다.
역할과 주 구성원의 목록이 부여된 역할을 기준으로 그룹화되어 표시됩니다.
gcloud
gcloud run services get-iam-policy
명령어를 사용합니다.
gcloud run services get-iam-policy SERVICE_NAME
작업의 주 구성원 보기
작업의 주 구성원을 보려면 다음 안내를 따르세요.
Console UI
Google Cloud 콘솔로 이동합니다.
주 구성원을 추가할 작업의 왼쪽에 있는 체크박스를 클릭합니다. 작업 자체를 클릭하지는 마세요.
주 구성원과 역할을 보려는 작업을 선택합니다.
오른쪽 상단에 있는 정보 창에서 권한 탭을 클릭합니다. 정보 창이 표시되지 않으면 정보 패널 표시를 클릭한 후 권한을 클릭해야 할 수 있습니다.
역할과 주 구성원의 목록이 부여된 역할을 기준으로 그룹화되어 표시됩니다.
gcloud
gcloud run jobs get-iam-policy
명령어를 사용합니다.
gcloud run jobs get-iam-policy JOB_NAME
프로젝트의 모든 서비스 및 작업에 대한 액세스 제어
프로젝트의 모든 서비스 및 작업에서 주 구성원에게 역할을 부여하려면 프로젝트 수준 IAM을 사용하면 됩니다.
Console UI
Google Cloud 콘솔로 이동합니다.
프로젝트 수준의 전체 역할을 부여할 주 구성원을 찾습니다.
주 구성원 행의 오른쪽에 있는 수정 연필을 클릭합니다.
다른 역할 추가를 클릭하고 원하는 역할을 선택합니다.
저장을 클릭합니다.
gcloud
gcloud projects add-iam-policy-binding
명령어를 사용합니다.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=MEMBER_TYPE \ --role=ROLE
여기서 MEMBER_TYPE
은 주 구성원 유형(예: user:email@domain.com
)이고 ROLE
은 역할(예: roles/run.admin
)입니다.
allUsers
및 allAuthenticatedUsers
주 구성원 유형을 프로젝트 수준으로 적용할 수 없으며 대신 각 서비스에 개별적으로 추가해야 합니다.
서비스의 Cloud Run 호출자 사용 중지
Cloud Run 서비스의 Cloud Run 호출자 IAM 확인을 사용 중지하거나 다시 사용 설정할 수 있습니다. 이 검사는 기본적으로 적용됩니다.
서비스에서 호출자 IAM 검사를 사용 중지하거나 다시 사용 설정하려면 다음 권한이 있어야 합니다.
run.services.create
run.services.update
run.services.setIamPolicy
이러한 권한은 소유자 및 Cloud Run 관리자 역할 모두에 포함됩니다. 역할과 관련 권한의 전체 목록은 Cloud Run IAM 역할을 참조하세요.
Cloud Run 호출자 IAM 검사 사용 중지
필요한 경우 조직 또는 프로젝트 수준에서 조직 정책 제약조건
constraints/run.requireInvokerIam
을 재정의합니다. 태그를 사용하여 특정 Cloud Run 서비스에 더 세분화된 규칙을 설정할 수 있습니다.Google Cloud 콘솔에서 정책 제약조건을 삭제하려면 다음 안내를 따르세요.
조직 정책 탭을 클릭합니다.
호출자 IAM 사용 중지 허용(Cloud Run) 정책을 찾아 작업 메뉴에서 정책 수정을 선택합니다.
정책이 미적용으로 구성되어 있는지 확인합니다.
정책 설정을 클릭합니다.
검사를 사용 중지합니다.
콘솔
새 서비스를 구성하는 경우 서비스 만들기를 클릭한 후 필요에 따라 초기 서비스 설정 페이지를 작성합니다. 기존 서비스를 구성하는 경우 서비스를 클릭한 후 보안을 클릭합니다.
Cloud IAM을 사용하여 수신 요청 인증을 선택 해제합니다.
만들기 또는 저장을 클릭합니다.
gcloud
--no-invoker-iam-check
플래그를 사용합니다.gcloud run deploy SERVICE_NAME --no-invoker-iam-check
여기서
SERVICE_NAME
은 서비스 이름입니다.
YAML
구성을 보고 다운로드하려면 다음을 실행합니다.
gcloud run services describe SERVICE --format export > service.yaml
run.googleapis.com/invoker-iam-disabled:
주석을 업데이트합니다.apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/invoker-iam-disabled: true name: SERVICE_NAME
여기서 SERVICE_NAME은 Cloud Run 서비스의 이름입니다.
다음 명령어를 사용하여 서비스를 새 구성으로 바꿉니다.
gcloud run services replace service.yaml
서비스의 HTTPS 엔드포인트로 이동하여 배포 후 검사가 사용 중지되었는지 확인합니다.
Cloud Run 호출자 IAM 검사 다시 사용 설정
검사를 다시 사용 설정하려면 다음 단계를 따르세요.
콘솔
서비스를 클릭한 다음 보안을 클릭합니다.
Cloud IAM을 사용하여 수신 요청 인증을 선택합니다.
저장을 클릭합니다.
gcloud
--invoker-iam-check
플래그를 전달하여 서비스를 업데이트합니다.gcloud beta run services SERVICE_NAME --invoker-iam-check
여기서
SERVICE_NAME
은 서비스 이름입니다.
YAML
구성을 보고 다운로드하려면 다음을 실행합니다.
gcloud run services describe SERVICE --format export > service.yaml
run.googleapis.com/invokerIamCheckDisabled:
주석을 업데이트합니다.apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/invokerIamCheckDisabled: false name: SERVICE_NAME
여기서 SERVICE_NAME은 Cloud Run 서비스의 이름입니다.
서비스의 HTTPS 엔드포인트로 이동하여 배포 후 검사가 다시 사용 설정되었는지 확인합니다.
다음 단계
보안을 설정한 서비스에 개발자, 서비스, 사용자를 안전하게 인증하는 방법 알아보기