예정된 승인 변경사항 준비

Application Integration에서 통합 승인 방식을 업데이트합니다. 이러한 변경사항은 곧 적용됩니다. 대부분의 통합은 변경사항 없이 계속 실행되지만 일부 통합은 계속 실행하려면 구성 변경이 필요합니다. 이 페이지에 설명된 모든 항목은 이미 제어하고 있는 구성을 사용하므로 지금 이러한 변경사항을 적용할 수 있습니다.

예정된 승인 변경사항

Application Integration에서 통합 실행의 ID를 처리하는 방식을 업데이트합니다. 이제 모든 실행 에 다음 중 하나로 작동하는 명시적 ID가 있어야 합니다.

  • 실행을 트리거한 사용자입니다. 호출된 시스템은 해당 사용자의 액세스 권한을 적용합니다.
  • 실행 서비스 계정입니다. Google Cloud 프로젝트의 다른 서비스 계정과 마찬가지로 이 계정을 제어, 범위 지정, 감사합니다.

이 업데이트로 인해 다음이 적용됩니다.

  • 통합을 실행하려면 실행 서비스 계정으로 작동할 권한이 필요합니다.
  • 두 ID 모두 사용할 수 없으면 통합 실행이 실패합니다.

시작하기 전에

다음 작업을 순서대로 완료합니다. 다른 두 작업은 모두 게시로 끝나고 게시 자체는 권한이 확인되므로 첫 번째 작업을 먼저 실행합니다.

  1. 서비스 계정 사용자 부여를 자동화에서 사용하는 서비스 계정을 포함하여 통합을 실행, 승인, 수정 또는 게시하는 모든 사용자에게 이미 사용 중인 모든 실행 서비스 계정에 실행합니다.
  2. 사용자 없이 실행되고 사용자가 없는 통합에 **실행 서비스 계정 설정** 을 실행합니다.
  3. 서비스 계정 사용자 부여를 **서비스 계정** 또는 **OIDC 토큰** 유형의 모든 인증 프로필에 지정된 서비스 계정에 실행합니다. 이러한 계정은 일반적으로 실행 서비스 계정과 다른 계정입니다.

실행 서비스 계정이 필요한 통합

통합에 실행 서비스 계정이 필요한지 확인

전체 실행에 사용할 수 있는 사용자 인증 정보가 없는 경우에만 실행 서비스 계정이 필요합니다. 이러한 상황은 두 가지 경우에만 발생합니다.

통합 실행 방법 사용자 인증 정보를 사용할 수 있나요? 실행 서비스 계정이 필요한가요?
동기식 : 사용자가 시작하고 결과를 기다립니다. 예, 전체 실행에 아니요
비동기식 : 대기열에 추가되고 나중에 완료됩니다. 트리거되는 순간에만
무인 : 일정 또는 이벤트가 시작합니다. 아니요, 사용자가 없습니다.

영향을 받는 통합 식별

먼저 사용자가 없는 상태로 실행되나요? 다음 중 하나라도 해당하는 경우 실행됩니다.

둘째, 실행 서비스 계정이 비어 있나요? 리전의 모든 게시된 버전을 실행 서비스 계정과 함께 나열하려면 다음 명령어를 실행합니다.

curl -s -G -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  --data-urlencode "filter=state=ACTIVE" \
  --data-urlencode "pageSize=1000" \
  "https://REGION-integrations.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/integrations/-/versions" \
| jq -r '.integrationVersions[]
         | [ .name, (.runAsServiceAccount // "NONE") ]
         | @tsv'

다음을 바꿉니다.

  • REGION: 통합의 리전입니다. 지원되는 리전 목록은 위치를 참조하세요.
  • PROJECT_ID: Google Cloud 프로젝트의 ID
  • NONE을 표시하는 행은 전반부가 적용되는 경우에만 조치가 필요합니다.
  • 대신 단일 통합을 확인하려면 Google Cloud 콘솔에서 통합을 열고 통합 툴바의 통합 요약 정보 창을 확인합니다.

통합 업데이트

서비스 계정 사용자 부여

사용자에게 역할을 부여하려면 다음 명령어를 실행합니다.

gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT \
    --project=SERVICE_ACCOUNT_PROJECT_ID \
    --member='user:PRINCIPAL' \
    --role='roles/iam.serviceAccountUser'

다음을 바꿉니다.

  • SERVICE_ACCOUNT: 실행 서비스 계정 또는 인증 프로필에 지정된 계정의 이메일 주소
  • SERVICE_ACCOUNT_PROJECT_ID: 서비스 계정을 소유하는 프로젝트의 ID
  • PRINCIPAL: 사용자의 이메일 주소

다른 주 구성원 유형의 경우 해당하는 --member 접두어를 사용합니다.

  • 그룹: group:을 사용합니다. 팀 구성원이 변경될 때 액세스 관리를 간소화하려면 개별 사용자 계정 대신 Google 그룹스를 사용하는 것이 좋습니다.
  • 서비스 계정: 자동화된 프로세스 및 애플리케이션에 serviceAccount:를 사용합니다.

Google Cloud 콘솔에서 동일한 작업을 실행하려면 다음 단계를 따르세요.

  1. IAM 및 관리자 > 서비스 계정 으로 이동합니다.
  2. 서비스 계정을 선택합니다.
  3. 권한 > 액세스 권한 부여 를 클릭합니다.

자세한 내용은 서비스 계정에 대한 액세스 관리를 참조하세요.

실행 서비스 계정 설정

  1. 서비스 계정을 선택하거나 만들고 통합 태스크에 필요한 역할을 터치하는 리소스에 부여합니다. 부여할 항목을 확인하려면 프로젝트의 Application Integration 서비스 에이전트 service-PROJECT_NUMBER@gcp-sa-integrations.가 현재 보유하고 있는 역할을 확인하고 이 통합에서 사용하는 부분만 새 계정에 부여합니다.
  2. 자동화를 포함하여 통합을 실행, 승인, 수정 또는 게시하는 모든 사용자에게 서비스 계정 사용자를 부여합니다.
  3. 통합을 열고 통합 툴바의 통합 요약 정보 창에서 서비스 계정을 설정합니다.
  4. 통합을 게시합니다. 자세한 내용은 통합 테스트 및 게시 를 참조하세요.

Google Cloud에서는 모든 통합에서 공유되는 광범위한 권한이 있는 계정 하나를 사용하는 대신 각 통합에 전용의 최소 범위 서비스 계정을 사용하는 것이 좋습니다. 이는 다음과 같은 작업을 수행하기 때문입니다.

  • 하나의 통합 효과를 포함합니다.
  • 감사 로그에 이름으로 표시됩니다.

자세한 내용은 서비스 계정 작업 권장사항을 참조하세요.

누락된 권한 문제 해결

거부된 작업에는 두 가지 원인이 있으며 이를 구분하는 것이 좋습니다.

  • 실행 서비스 계정 : 실행 서비스 계정으로 작동할 수 없거나 태스크에 필요한 항목에 도달할 수 없습니다.
  • 자체 IAM 역할 : 작업을 전혀 수행할 수 없습니다.

두 검사가 모두 적용되므로 하나를 수정해도 다른 하나가 수정되지는 않습니다.

실행 서비스 계정 오류

상황 표시 내용 필요한 조치
사용자가 통합을 트리거하지만 실행 서비스 계정으로 작동할 수 없습니다. 트리거가 PERMISSION_DENIED로 거부됩니다. 실행이 대기열에 추가되기 전에 검사가 실행되므로 실행 로그에 아무것도 표시되지 않습니다. 태스크가 실패한 것이 아니라 아무것도 발생하지 않은 것처럼 보입니다. 트리거하는 사용자에게 서비스 계정 사용자를 부여합니다.
사용자 인증 정보가 없는 실행에는 실행 서비스 계정이 없습니다. 커넥터, REST 엔드포인트 호출, Cloud Run 함수 태스크가 도달하려는 대상에 대해 실패합니다. 게시 시: The integration is missing run-as service account since governance is enabled for your project. 실행 서비스 계정 설정
태스크에서 호출자가 서비스 계정으로 작동할 수 없는 인증 프로필을 사용합니다. 실행의 나머지 부분이 계속되는 동안 해당 태스크가 거부됩니다. You do not have permission to use Auth Config ID because you cannot act as its service account: SERVICE_ACCOUNT. 서비스 계정 사용자 부여 프로필에 지정된 계정에
승인자가 실행 서비스 계정으로 작동할 수 없습니다. 승인 프로세스가 눈에 띄는 오류를 생성하지 않고 자동으로 실패합니다. 실행이 만료될 때까지 일시중지 상태로 유지되므로 승인이 작동을 중지한 것처럼 보입니다. 서비스 계정 사용자 부여 승인할 수 있는 모든 사용자에게
사용자가 권한 없이 통합을 수정하거나 게시합니다. Publisher does not have required permission to publish integration with service account: SERVICE_ACCOUNT. 이미 게시된 항목은 계속 실행됩니다. 자동화에서 게시하는 경우 콘솔이 아닌 배포 파이프라인에 표시됩니다. 서비스 계정 사용자를 편집자, 게시자, 자동화에 부여합니다.
태스크가 트리거한 사용자로 실행되고 해당 사용자가 리소스에 도달할 수 없습니다. 통합에 변경사항이 없더라도 실행이 정상적으로 시작된 후 하나의 태스크가 리소스 이름을 지정하지 못하고 실패합니다. 해당 사용자에게 리소스에 대한 액세스 권한을 부여하거나 통합을 이미 액세스 권한이 있는 실행 서비스 계정으로 이동합니다. 일반적으로 통합의 액세스가 실행하는 사용자에 따라 달라지는 것을 방지하므로 더 나은 방법입니다.

Application Integration 오류 코드의 전체 목록은 오류 코드를 참조하세요.

IAM 역할 오류

Application Integration은 실행 서비스 계정 외에도 각 작업에 대한 사용자 IAM 권한을 확인합니다. 통합과 상호작용할 때 PERMISSION_DENIED 오류가 발생하거나 실행 로그가 로드되지 않으면 필요한 권한을 부여하는 역할이 있는지 확인합니다.

이렇게 하려면 다음 역할 중 하나가 필요합니다.
통합 보기 및 열기 roles/integrations.integrationViewer
실행 로그 및 세부정보 보기 roles/integrations.integrationViewer 또는 roles/integrations.integrationInvoker
통합 실행 roles/integrations.integrationInvoker 또는 roles/integrations.integrationEditor
통합 만들기 및 수정 roles/integrations.integrationEditor
통합 게시 roles/integrations.integrationDeployer 또는 roles/integrations.integrationEditor
일시중지된 실행 승인 또는 재개 roles/integrations.suspensionResolver 또는 roles/integrations.integrationAdmin
모든 통합에 대한 전체 액세스 권한 roles/integrations.integrationAdmin

역할을 부여하려면 다음 명령어를 실행합니다.

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='user:PRINCIPAL' \
    --role='ROLE'

자세한 내용은 다음을 참조하세요.

일반적인 질문

역할을 부여했는데도 계속 실패합니다. 무엇이 누락되었나요?

  • 지원금이 잘못된 프로젝트로 이동했습니다. 통합을 소유하는 프로젝트가 아닌 서비스 계정을 소유하는 프로젝트에서 부여해야 합니다.
  • 아직 적용되지 않았습니다. 몇 분 정도 기다립니다. 승인 결정은 일반적인 IAM 전파 지연 외에도 잠시 캐시됩니다.
  • 두 번째 서비스 계정이 관련되어 있습니다. 실행 서비스 계정과 각 인증 프로필의 서비스 계정은 별개이며 둘 다 부여가 필요합니다.
  • 블록은 서비스 계정이 아닌 자체 역할입니다. 서비스 계정 사용자 는 실행 서비스 계정 으로 작동할 수 있는지 여부에 관한 것입니다. 별도의 IAM 역할은 작업을 수행할 수 있는지 여부를 제어합니다. IAM 역할 오류를 참조하세요.

통합 호출자 역할이 더 이상 충분하지 않은 이유는 무엇인가요?

통합을 계속 실행할 수 있습니다. 통합이 실행되는 서비스 계정으로 작동할 수 있도록 허용한 적은 없으며, 이는 실행이 가져오는 액세스 권한의 양을 결정합니다. 다음 역할 중 어느 것도 iam.serviceAccounts.actAs를 부여하지 않으므로 항상 별도의 부여입니다.

  • roles/integrations.integrationAdmin
  • roles/integrations.integrationEditor
  • roles/integrations.integrationInvoker

통합은 동기식으로만 실행됩니다. 실행 서비스 계정이 필요한가요?

아니요. 동기식 실행에는 이미 ID(트리거한 사용자)가 있습니다. 통합에 실행 서비스 계정이 필요한지 확인을 참조하세요.

콘솔에 신고된 항목이 없습니다. 문제가 없나요?

꼭 그런 것은 아닙니다. 경고는 관찰된 실행에 따라 달라지므로 일정이 드물거나 최근에 트리거한 사용자가 없는 통합은 경고를 표시하지 않고도 조치가 필요할 수 있습니다. 조용한 콘솔을 모든 것이 정상인 것으로 읽는 대신 실행 서비스 계정이 필요한 통합을 살펴보세요.

다음 단계