IAM을 사용하여 액세스 제어

Workflows는 Identity and Access Management(IAM)를 사용하여 어떤 인증된 사용자 및 서비스 계정이 어떤 작업을 수행할 수 있는지 제어합니다.

Workflows 리소스에 대한 액세스를 인증 및 승인하기 전에 IAM의 기본 개념을 이해해야 합니다.

이 페이지에서는 워크플로 실행 호출 기능을 포함하여 Workflows 리소스에 액세스하는 데 필요한 권한에 대해 자세히 설명합니다.

워크플로에 다른 서비스에 액세스하기 위한 권한 부여에 대한 자세한 내용은 워크플로에 Google Cloud 리소스에 대한 액세스 권한 부여를 참조하세요.

액세스 제어

인증 구현 방법에 관계없이 액세스 제어 및 사용 가능한 워크플로 역할을 이해하는 것이 중요합니다. 역할은 Google Cloud에서 리소스에 대해 액세스 권한을 부여하는 권한 모음입니다. 프로덕션 애플리케이션을 빌드할 때 서비스 계정에는 해당 Google Cloud API, 기능 또는 리소스와 상호작용하는 데 필요한 역할만 부여됩니다.

사용 가능한 Workflows 역할에 대한 자세한 내용은 Workflows 역할 및 권한을 참조하세요.

Workflows 호출

서비스 계정은 ID인 동시에 IAM 정책을 허용하는 리소스입니다. 따라서 서비스 계정에 역할을 부여한 다음 다른 주 구성원이 서비스 계정 또는 서비스 계정의 상위 리소스 중 하나에 대한 역할을 부여하여 서비스 계정을 가장하도록 할 수 있습니다.

예를 들어 계정에 워크플로 실행을 트리거하는 권한이 포함되도록 서비스 계정에 workflows.invoker 역할을 부여할 수 있습니다. 그런 다음 주 구성원이 서비스 계정으로 작동하거나 이를 가장하도록 허용할 수 있습니다. 워크플로가 자체적으로 호출하거나 다른 워크플로를 호출하지 않는 한 워크플로 서비스 계정에 workflows.invoker 역할이 필요하지 않습니다.

서비스 계정 가장에 대한 자세한 내용은 서비스 계정 가장을 참조하세요.

서비스에 워크플로를 실행하고 실행을 관리할 수 있는 권한이 있도록 Workflows를 호출하는 서비스의 서비스 계정에 호출자 역할(roles/workflows.invoker)을 부여하려면 다음을 수행합니다.

콘솔

  1. Google Cloud Console에서 서비스 계정 페이지로 이동합니다.
    서비스 계정으로 이동

  2. 프로젝트를 선택한 후 서비스 계정 만들기를 클릭합니다.

  3. 서비스 계정 이름 필드에 이름(예: sa-name)을 입력합니다.

  4. 만들고 계속하기를 클릭합니다.

  5. 역할 선택 목록에서 Workflows > 워크플로 호출자를 선택합니다.

  6. 완료를 클릭합니다.

gcloud

  1. 터미널을 엽니다.

  2. 다음 명령어를 입력합니다.

    gcloud projects add-iam-policy-binding PROJECT_ID \
       --member serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
       --role roles/workflows.invoker

    다음을 바꿉니다.

    • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
    • SERVICE_ACCOUNT_NAME: 서비스 계정의 이름입니다.