Workflows 인증

이 항목에서는 Workflows에 대한 인증 정보를 설명합니다. 이 페이지에서는 두 가지 유형의 인증에 대해 설명합니다.

액세스 제어

두 유형의 인증 모두 액세스 제어 및 Workflows에 사용 가능한 역할을 이해하는 것이 중요합니다. 역할에는 Google Cloud의 리소스에 대해 액세스 권한을 부여하는 권한이 포함되어 있습니다. 프로덕션 애플리케이션을 빌드할 때 ID에는 해당 Google Cloud APIs, 기능 또는 리소스와 상호작용하는 데 필요한 역할만 부여됩니다.

사용 가능한 Workflows 역할에 대한 자세한 내용은 Workflows 액세스 제어를 참조하세요.

Workflows에 대한 인증

Workflows는 Workflows 리소스에 액세스하기 위해 다음과 같은 인증 방법을 지원합니다.

서비스 계정

서비스 계정은 로컬에서 개발 중이든 프로덕션 애플리케이션에서 개발 중이든 거의 모든 사용 사례에 권장됩니다. 프로덕션 애플리케이션에서의 인증 설정에 대한 자세한 내용은 서비스 계정으로 인증을 참조하세요. Workflows 리소스를 포함하여 Google Cloud의 리소스에 액세스할 수 있는 하나 이상의 역할을 서비스 계정에 부여할 수 있습니다.

워크플로 내에서 인증된 요청 수행

인증된 요청을 전송하려면 필요한 권한을 포함하는 하나 이상의 Identity and Access Management 역할이 부여된 서비스 계정에 워크플로를 연결해야 합니다. 또한 워크플로 정의에 인증 정보를 명시적으로 추가해야 합니다. 기본적으로 HTTP 요청은 보안상의 이유로 ID 또는 액세스 토큰을 포함하지 않습니다.

생성된 각 워크플로는 워크플로 생성 시 IAM 서비스 계정과 연결됩니다. 워크플로 생성 중 서비스 계정을 지정하지 않으면 해당 ID에 대해 기본 Compute Engine 서비스 계정이 워크플로에 사용됩니다.

다른 Google Cloud 서비스에 요청을 수행할 때는 요청된 리소스에 액세스하기 위해 필요한 올바른 권한이 있는 서비스 계정에 워크플로를 연결해야 합니다.

워크플로 내에서 인증된 요청을 수행하기 위해서는 호출 중인 서비스에 따라 OAuth 2.0 또는 OpenID Connect(OIDC)를 사용할 수 있습니다.

Compute Engine API 또는 Firestore API와 같은 모든 Google Cloud API에 연결하려면 OAuth 2.0을 사용합니다. 호스트 이름이 .googleapis.com으로 끝나는 API에는 이 인증 방법이 사용됩니다.

Cloud Functions 또는 Cloud Run에 연결하려면 OIDC를 사용합니다.

워크플로의 연결된 서비스 계정 확인

특정 워크플로에 연결된 서비스 계정을 확인하려면 다음 안내를 따르세요.

Console

  1. Google Cloud Console에서 Workflows 페이지로 이동합니다.
    Workflows 페이지로 이동

  2. Console의 Workflows 페이지에서 워크플로를 선택하여 세부정보 페이지로 이동합니다.

  3. 워크플로 세부정보 페이지에서 정의 탭을 선택하여 워크플로 세부정보를 가져옵니다.

  4. 정의 탭에 워크플로의 연결된 서비스 계정이 표시됩니다.

gcloud

  1. 터미널을 엽니다.

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

    gcloud workflows describe MY_WORKFLOW
    

    MY_WORKFLOW를 워크플로의 이름으로 바꿉니다.

  3. 이 명령어는 전체 워크플로 설명과 함께 연결된 서비스 계정을 반환합니다.

    createTime: '2020-06-05T23:45:34.154213774Z'
    name: projects/myProject/locations/us-central1/workflows/myWorkflow
    serviceAccount: projects/my-project/serviceAccounts/012345678901-compute@developer.gserviceaccount.com
    sourceContents: ...
    

Google API에 인증된 요청 수행

워크플로의 서비스 계정은 워크플로가 Google API 인증에 사용할 수 있는 OAuth 2.0 토큰을 생성할 수 있습니다. 이 인증 방법을 사용할 때 워크플로는 연결된 서비스 계정으로 인증됩니다. OAuth 2.0 프로토콜을 사용하여 HTTP 요청을 수행하려면 URL을 지정한 후, 워크플로 정의의 args 섹션에 auth 섹션을 추가합니다. 이 예시에서는 VM을 중지하기 위해 Compute Engine API에 요청이 전송됩니다.

- step_A:
    call: http.post
    args:
        url: https://compute.googleapis.com/compute/v1/projects/myproject1234/zones/us-central1-b/instances/myvm001/stop
        auth:
            type: OAuth2
            [scope:]

scope 매개변수는 선택사항이지만 토큰의 OAuth 2.0 범위를 지정하는 데 사용할 수 있습니다. 기본적으로 https://www.googleapis.com/auth/cloud-platform으로 설정됩니다.

Cloud Run 또는 Cloud Functions 요청 수행

Cloud Run 또는 Cloud Functions에 요청을 수행할 때 OIDC를 사용하여 인증합니다.

OIDC를 사용하여 HTTP 요청을 수행하려면 URL을 지정한 후 워크플로 정의의 args 섹션에 auth 섹션을 추가합니다. 이 예시에서는 Cloud Functions 호출을 위해 요청이 전송됩니다.

- step_A:
    call: http.get
    args:
        url: https://us-central1-project.cloudfunctions.net/functionA
        query:
            firstNumber: 4
            secondNumber: 6
            operation: sum
        auth:
            type: OIDC
            [audience:]

audience 매개변수는 선택사항이지만 토큰의 OIDC 대상을 지정하는 데 사용할 수 있습니다. 기본적으로 url과 동일한 값으로 설정됩니다.

다음 단계