InfoGrab DocsInfoGrab Docs

플로우 실행 보안 고려 사항

요약

플로우가 GitLab CI/CD에서 실행될 때: 복합 ID를 사용하여 액세스를 제한합니다. 임시 워크로드 파이프라인을 생성하며, 이 파이프라인은 플로우가 완료되면 제거됩니다. 사용할 수 있는 도구는 해당 플로우의 목적에 맞게 한정됩니다.

플로우가 GitLab CI/CD에서 실행될 때:

  • 복합 ID를 사용하여 액세스를 제한합니다.

  • 임시 워크로드 파이프라인을 생성하며, 이 파이프라인은 플로우가 완료되면 제거됩니다.

  • 사용할 수 있는 도구는 해당 플로우의 목적에 맞게 한정됩니다. 이러한 도구에는 머지 리퀘스트 생성이나 실행 환경에서의 로컬 셸 명령어 실행이 포함될 수 있습니다.

기본적으로 플로우는 GitLab 인스턴스에 대한 네트워크 액세스만 갖습니다. 네트워크 액세스 규칙에 대한 자세한 내용은 네트워크 정책 구성 방법을 참조하세요. 이렇게 분리된 환경은 셸 명령어 실행으로 인한 의도치 않은 결과로부터 보호합니다.

GitLab UI에서 플로우가 자율적으로 실행되지 않도록 하려면, 플로우 실행을 끌 수 있습니다.

agent-config.yml의 보안상 영향#

.gitlab/duo/agent-config.yml 파일은 setup_script에서 실행되는 명령어를 포함하여 플로우가 CI/CD에서 실행되는 방식을 제어합니다. 플로우가 실행되는 방식 때문에, 이 파일의 변경은 파일을 커밋한 사용자 이상의 범위에 영향을 미칩니다.

사용자 간 실행#

플로우는 복합 ID를 통해 플로우를 트리거한 사용자의 ID로 실행됩니다. setup_script의 명령어는 구성을 커밋한 사용자의 자격 증명이 아니라, 트리거한 사용자의 복합 ID 자격 증명으로 실행됩니다.

.gitlab/duo/agent-config.yml에 대한 쓰기 액세스 권한이 있는 사용자는 다른 사용자의 러너 환경에서 무엇이 실행되는지에 영향을 줄 수 있습니다. 이 파일을 수정하면 이후 프로젝트에서 플로우를 트리거하는 모든 사용자의 실행 컨텍스트에 영향을 미칩니다.

노출되는 환경 변수#

Anthropic Sandbox Runtime(SRT) 외부에서 실행되는 setup_script 실행 중에는 다음과 같은 민감한 변수가 환경에 존재합니다:

  • GITLAB_OAUTH_TOKENGITLAB_TOKEN: 복합 ID를 통한 트리거 사용자의 OAuth 토큰.

  • DUO_WORKFLOW_GIT_HTTP_PASSWORD: Git HTTP 비밀번호.

  • DUO_WORKFLOW_SERVICE_TOKEN: 서비스 토큰.

  • DUO_WORKFLOW_GIT_USER_EMAILDUO_WORKFLOW_GIT_USER_NAME: 트리거 사용자의 이메일과 이름.

노출되는 변수의 전체 목록은 플로우 실행 변수를 참조하세요.

권장 보호 조치#

.gitlab/duo/agent-config.yml 파일에 대한 무단 변경 위험을 줄이려면:

  1. 직접 푸시를 방지하도록 기본 브랜치를 보호합니다.

  2. 코드 소유자를 사용하여 .gitlab/duo/agent-config.yml에 대한 변경이 머지되기 전에 특정 소유자의 승인을 받도록 요구합니다. 예를 들어 CODEOWNERS 파일에 다음을 추가합니다:

    .gitlab/duo/agent-config.yml @your-group/security-reviewers
    
  3. 이 파일을 수정하는 머지 리퀘스트에 대해 신뢰할 수 있는 메인테이너의 검토를 요구하도록 승인 규칙을 구성합니다.

플로우 실행 보안 고려 사항

GitLab v19.3
Tier: [Free](/19.3/subscriptions/gitlab_credits/#for-the-free-tier), Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기

요약

플로우가 GitLab CI/CD에서 실행될 때: 복합 ID를 사용하여 액세스를 제한합니다. 임시 워크로드 파이프라인을 생성하며, 이 파이프라인은 플로우가 완료되면 제거됩니다. 사용할 수 있는 도구는 해당 플로우의 목적에 맞게 한정됩니다.

플로우가 GitLab CI/CD에서 실행될 때:

  • 복합 ID를 사용하여 액세스를 제한합니다.

  • 임시 워크로드 파이프라인을 생성하며, 이 파이프라인은 플로우가 완료되면 제거됩니다.

  • 사용할 수 있는 도구는 해당 플로우의 목적에 맞게 한정됩니다. 이러한 도구에는 머지 리퀘스트 생성이나 실행 환경에서의 로컬 셸 명령어 실행이 포함될 수 있습니다.

기본적으로 플로우는 GitLab 인스턴스에 대한 네트워크 액세스만 갖습니다. 네트워크 액세스 규칙에 대한 자세한 내용은 네트워크 정책 구성 방법을 참조하세요. 이렇게 분리된 환경은 셸 명령어 실행으로 인한 의도치 않은 결과로부터 보호합니다.

GitLab UI에서 플로우가 자율적으로 실행되지 않도록 하려면, 플로우 실행을 끌 수 있습니다.

agent-config.yml의 보안상 영향#

.gitlab/duo/agent-config.yml 파일은 setup_script에서 실행되는 명령어를 포함하여 플로우가 CI/CD에서 실행되는 방식을 제어합니다. 플로우가 실행되는 방식 때문에, 이 파일의 변경은 파일을 커밋한 사용자 이상의 범위에 영향을 미칩니다.

사용자 간 실행#

플로우는 복합 ID를 통해 플로우를 트리거한 사용자의 ID로 실행됩니다. setup_script의 명령어는 구성을 커밋한 사용자의 자격 증명이 아니라, 트리거한 사용자의 복합 ID 자격 증명으로 실행됩니다.

.gitlab/duo/agent-config.yml에 대한 쓰기 액세스 권한이 있는 사용자는 다른 사용자의 러너 환경에서 무엇이 실행되는지에 영향을 줄 수 있습니다. 이 파일을 수정하면 이후 프로젝트에서 플로우를 트리거하는 모든 사용자의 실행 컨텍스트에 영향을 미칩니다.

노출되는 환경 변수#

Anthropic Sandbox Runtime(SRT) 외부에서 실행되는 setup_script 실행 중에는 다음과 같은 민감한 변수가 환경에 존재합니다:

  • GITLAB_OAUTH_TOKENGITLAB_TOKEN: 복합 ID를 통한 트리거 사용자의 OAuth 토큰.

  • DUO_WORKFLOW_GIT_HTTP_PASSWORD: Git HTTP 비밀번호.

  • DUO_WORKFLOW_SERVICE_TOKEN: 서비스 토큰.

  • DUO_WORKFLOW_GIT_USER_EMAILDUO_WORKFLOW_GIT_USER_NAME: 트리거 사용자의 이메일과 이름.

노출되는 변수의 전체 목록은 플로우 실행 변수를 참조하세요.

권장 보호 조치#

.gitlab/duo/agent-config.yml 파일에 대한 무단 변경 위험을 줄이려면:

  1. 직접 푸시를 방지하도록 기본 브랜치를 보호합니다.

  2. 코드 소유자를 사용하여 .gitlab/duo/agent-config.yml에 대한 변경이 머지되기 전에 특정 소유자의 승인을 받도록 요구합니다. 예를 들어 CODEOWNERS 파일에 다음을 추가합니다:

    .gitlab/duo/agent-config.yml @your-group/security-reviewers
    
  3. 이 파일을 수정하는 머지 리퀘스트에 대해 신뢰할 수 있는 메인테이너의 검토를 요구하도록 승인 규칙을 구성합니다.