예정된 승인 변경사항 준비
Application Integration에서 통합 승인 방식을 업데이트합니다. 이러한 변경사항은 곧 적용됩니다. 대부분의 통합은 변경사항 없이 계속 실행되지만 일부 통합은 계속 실행하려면 구성 변경이 필요합니다. 이 페이지에 설명된 모든 항목은 이미 제어하고 있는 구성을 사용하므로 지금 이러한 변경사항을 적용할 수 있습니다.
예정된 승인 변경사항
Application Integration에서 통합 실행의 ID를 처리하는 방식을 업데이트합니다. 이제 모든 실행 에 다음 중 하나로 작동하는 명시적 ID가 있어야 합니다.
- 실행을 트리거한 사용자입니다. 호출된 시스템은 해당 사용자의 액세스 권한을 적용합니다.
- 실행 서비스 계정입니다. Google Cloud 프로젝트의 다른 서비스 계정과 마찬가지로 이 계정을 제어, 범위 지정, 감사합니다.
이 업데이트로 인해 다음이 적용됩니다.
- 통합을 실행하려면 실행 서비스 계정으로 작동할 권한이 필요합니다.
- 두 ID 모두 사용할 수 없으면 통합 실행이 실패합니다.
시작하기 전에
다음 작업을 순서대로 완료합니다. 다른 두 작업은 모두 게시로 끝나고 게시 자체는 권한이 확인되므로 첫 번째 작업을 먼저 실행합니다.
- 서비스 계정 사용자 부여를 자동화에서 사용하는 서비스 계정을 포함하여 통합을 실행, 승인, 수정 또는 게시하는 모든 사용자에게 이미 사용 중인 모든 실행 서비스 계정에 실행합니다.
- 사용자 없이 실행되고 사용자가 없는 통합에 **실행 서비스 계정 설정** 을 실행합니다.
- 서비스 계정 사용자 부여를 **서비스 계정** 또는 **OIDC 토큰** 유형의 모든 인증 프로필에 지정된 서비스 계정에 실행합니다. 이러한 계정은 일반적으로 실행 서비스 계정과 다른 계정입니다.
실행 서비스 계정이 필요한 통합
통합에 실행 서비스 계정이 필요한지 확인
전체 실행에 사용할 수 있는 사용자 인증 정보가 없는 경우에만 실행 서비스 계정이 필요합니다. 이러한 상황은 두 가지 경우에만 발생합니다.
| 통합 실행 방법 | 사용자 인증 정보를 사용할 수 있나요? | 실행 서비스 계정이 필요한가요? |
|---|---|---|
| 동기식 : 사용자가 시작하고 결과를 기다립니다. | 예, 전체 실행에 | 아니요 |
| 비동기식 : 대기열에 추가되고 나중에 완료됩니다. | 트리거되는 순간에만 | 예 |
| 무인 : 일정 또는 이벤트가 시작합니다. | 아니요, 사용자가 없습니다. | 예 |
영향을 받는 통합 식별
먼저 사용자가 없는 상태로 실행되나요? 다음 중 하나라도 해당하는 경우 실행됩니다.
- Cloud Scheduler, Cloud Pub/Sub, Salesforce, 또는 Integration Connectors event 트리거가 있습니다.
- API를 통해 일정을 예약합니다.
scheduleIntegrations. - 다른 통합이 통합 호출 태스크를 사용하여 비동기식 하위 통합으로 호출합니다.
- 실행이 대기 상태로 있다가 자동으로 만료될 수 있는 일시중지 또는 승인 태스크를 사용합니다.
둘째, 실행 서비스 계정이 비어 있나요? 리전의 모든 게시된 버전을 실행 서비스 계정과 함께 나열하려면 다음 명령어를 실행합니다.
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: 서비스 계정을 소유하는 프로젝트의 IDPRINCIPAL: 사용자의 이메일 주소
다른 주 구성원 유형의 경우 해당하는 --member 접두어를 사용합니다.
- 그룹:
group:을 사용합니다. 팀 구성원이 변경될 때 액세스 관리를 간소화하려면 개별 사용자 계정 대신 Google 그룹스를 사용하는 것이 좋습니다. - 서비스 계정: 자동화된 프로세스
및 애플리케이션에
serviceAccount:를 사용합니다.
Google Cloud 콘솔에서 동일한 작업을 실행하려면 다음 단계를 따르세요.
- IAM 및 관리자 > 서비스 계정 으로 이동합니다.
- 서비스 계정을 선택합니다.
- 권한 > 액세스 권한 부여 를 클릭합니다.
자세한 내용은 서비스 계정에 대한 액세스 관리를 참조하세요.
실행 서비스 계정 설정
- 서비스 계정을 선택하거나 만들고 통합 태스크에 필요한 역할을 터치하는 리소스에 부여합니다. 부여할 항목을 확인하려면 프로젝트의 Application Integration 서비스 에이전트
service-PROJECT_NUMBER@gcp-sa-integrations.가 현재 보유하고 있는 역할을 확인하고 이 통합에서 사용하는 부분만 새 계정에 부여합니다. - 자동화를 포함하여 통합을 실행, 승인, 수정 또는 게시하는 모든 사용자에게 서비스 계정 사용자를 부여합니다.
- 통합을 열고 통합 툴바의 통합 요약 정보 창에서 서비스 계정을 설정합니다.
- 통합을 게시합니다. 자세한 내용은 통합 테스트 및 게시 를 참조하세요.
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 역할: 역할의 전체 목록과 각 역할에 포함된 권한을 확인합니다.
- 액세스 제어: Application Integration에서 IAM을 사용하는 방법을 확인합니다.
일반적인 질문
역할을 부여했는데도 계속 실패합니다. 무엇이 누락되었나요?
- 지원금이 잘못된 프로젝트로 이동했습니다. 통합을 소유하는 프로젝트가 아닌 서비스 계정을 소유하는 프로젝트에서 부여해야 합니다.
- 아직 적용되지 않았습니다. 몇 분 정도 기다립니다. 승인 결정은 일반적인 IAM 전파 지연 외에도 잠시 캐시됩니다.
- 두 번째 서비스 계정이 관련되어 있습니다. 실행 서비스 계정과 각 인증 프로필의 서비스 계정은 별개이며 둘 다 부여가 필요합니다.
- 블록은 서비스 계정이 아닌 자체 역할입니다. 서비스 계정 사용자 는 실행 서비스 계정 으로 작동할 수 있는지 여부에 관한 것입니다. 별도의 IAM 역할은 작업을 수행할 수 있는지 여부를 제어합니다. IAM 역할 오류를 참조하세요.
통합 호출자 역할이 더 이상 충분하지 않은 이유는 무엇인가요?
통합을 계속 실행할 수 있습니다. 통합이 실행되는 서비스 계정으로 작동할 수 있도록 허용한 적은 없으며, 이는 실행이 가져오는 액세스 권한의 양을 결정합니다. 다음 역할 중 어느 것도
iam.serviceAccounts.actAs를 부여하지 않으므로 항상 별도의 부여입니다.
roles/integrations.integrationAdminroles/integrations.integrationEditorroles/integrations.integrationInvoker
통합은 동기식으로만 실행됩니다. 실행 서비스 계정이 필요한가요?
아니요. 동기식 실행에는 이미 ID(트리거한 사용자)가 있습니다. 통합에 실행 서비스 계정이 필요한지 확인을 참조하세요.
콘솔에 신고된 항목이 없습니다. 문제가 없나요?
꼭 그런 것은 아닙니다. 경고는 관찰된 실행에 따라 달라지므로 일정이 드물거나 최근에 트리거한 사용자가 없는 통합은 경고를 표시하지 않고도 조치가 필요할 수 있습니다. 조용한 콘솔을 모든 것이 정상인 것으로 읽는 대신 실행 서비스 계정이 필요한 통합을 살펴보세요.
다음 단계
- Application Integration 보안 가이드라인을 읽어보세요.
- Application Integration의 사전 정의된 IAM 역할을 검토하세요.
- 인증 프로필을 구성 하는 방법을 알아보세요.
- 서비스 계정 작업 권장사항을 읽어보세요.