InfoGrab Docs

외부 제어 API

요약

외부 제어 API를 사용하여 외부 서비스를 사용하는 검사의 상태를 설정합니다. 주기적인 ping 기능으로 외부 제어를 구성할 수 있습니다. 지정된 외부 제어의 상태를 설정합니다. HMAC-SHA256 서명을 계산하려면: 성공하면 200 OK와 다음 응답 속성을 반환합니다:

외부 제어 API를 사용하여 외부 서비스를 사용하는 검사의 상태를 설정합니다.

주기적인 ping 기능으로 외부 제어를 구성할 수 있습니다. ping이 활성화된 경우(기본값), GitLab은 12시간마다 제어 상태를 자동으로 pending으로 재설정합니다. ping이 비활성화된 경우 제어 상태는 API 호출을 통해서만 업데이트됩니다.

외부 제어 상태 설정#

히스토리
  • GitLab 17.11에서 도입되었습니다.

지정된 외부 제어의 상태를 설정합니다. 이 작업을 사용하여 외부 서비스의 검사를 제어가 통과 또는 실패했음을 GitLab에 알립니다.

전제 조건

  • 보안을 위해 HMAC, Timestamp, Nonce 인증을 사용해야 합니다.
PATCH /api/v4/projects/:id/compliance_external_controls/:external_control_id/status

HTTP 헤더:

헤더 유형 필수 설명
X-Gitlab-Timestamp string 현재 Unix 타임스탬프.
X-Gitlab-Nonce string 재전송 공격을 방지하기 위한 임의 문자열 또는 토큰.
X-Gitlab-Hmac-Sha256 string 요청의 HMAC-SHA256 서명.

HMAC-SHA256 서명을 계산하려면:

  1. 다음 순서로 값을 연결합니다:
    • X-Gitlab-Timestamp
    • X-Gitlab-Nonce
    • 요청의 전체 경로
    • status=<status> 형식으로 포맷된 status 속성 값
  2. 비밀 키를 사용하여 연결된 문자열의 HMAC-SHA256을 계산합니다.

지원되는 속성:

속성 유형 필수 설명
id integer 프로젝트 ID.
external_control_id integer 외부 제어 ID.
status string 제어를 통과로 표시하려면 pass, 실패로 표시하려면 fail로 설정합니다.

성공하면 200 OK와 다음 응답 속성을 반환합니다:

속성 유형 설명
status string 제어에 설정된 상태.

예시 요청:

curl --request PATCH \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --header "X-Gitlab-Timestamp: <X-Gitlab-Timestamp>" \
  --header "X-Gitlab-Nonce: <X-Gitlab-Nonce>" \
  --header "X-Gitlab-Hmac-Sha256: <X-Gitlab-Hmac-Sha256>" \
  --header "Content-Type: application/json" \
  --data '{"status": "pass"}' \
  --url "https://gitlab.example.com/api/v4/projects/<id>/compliance_external_controls/<external_control_id>/status"

예시 응답:

{
    "status":"pass"
}

관련 항목#

외부 제어 API

Tier: Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

외부 제어 API를 사용하여 외부 서비스를 사용하는 검사의 상태를 설정합니다. 주기적인 ping 기능으로 외부 제어를 구성할 수 있습니다. 지정된 외부 제어의 상태를 설정합니다. HMAC-SHA256 서명을 계산하려면: 성공하면 200 OK와 다음 응답 속성을 반환합니다:

외부 제어 API를 사용하여 외부 서비스를 사용하는 검사의 상태를 설정합니다.

주기적인 ping 기능으로 외부 제어를 구성할 수 있습니다. ping이 활성화된 경우(기본값), GitLab은 12시간마다 제어 상태를 자동으로 pending으로 재설정합니다. ping이 비활성화된 경우 제어 상태는 API 호출을 통해서만 업데이트됩니다.

외부 제어 상태 설정#

히스토리
  • GitLab 17.11에서 도입되었습니다.

지정된 외부 제어의 상태를 설정합니다. 이 작업을 사용하여 외부 서비스의 검사를 제어가 통과 또는 실패했음을 GitLab에 알립니다.

전제 조건

  • 보안을 위해 HMAC, Timestamp, Nonce 인증을 사용해야 합니다.
PATCH /api/v4/projects/:id/compliance_external_controls/:external_control_id/status

HTTP 헤더:

헤더 유형 필수 설명
X-Gitlab-Timestamp string 현재 Unix 타임스탬프.
X-Gitlab-Nonce string 재전송 공격을 방지하기 위한 임의 문자열 또는 토큰.
X-Gitlab-Hmac-Sha256 string 요청의 HMAC-SHA256 서명.

HMAC-SHA256 서명을 계산하려면:

  1. 다음 순서로 값을 연결합니다:
    • X-Gitlab-Timestamp
    • X-Gitlab-Nonce
    • 요청의 전체 경로
    • status=<status> 형식으로 포맷된 status 속성 값
  2. 비밀 키를 사용하여 연결된 문자열의 HMAC-SHA256을 계산합니다.

지원되는 속성:

속성 유형 필수 설명
id integer 프로젝트 ID.
external_control_id integer 외부 제어 ID.
status string 제어를 통과로 표시하려면 pass, 실패로 표시하려면 fail로 설정합니다.

성공하면 200 OK와 다음 응답 속성을 반환합니다:

속성 유형 설명
status string 제어에 설정된 상태.

예시 요청:

curl --request PATCH \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --header "X-Gitlab-Timestamp: <X-Gitlab-Timestamp>" \
  --header "X-Gitlab-Nonce: <X-Gitlab-Nonce>" \
  --header "X-Gitlab-Hmac-Sha256: <X-Gitlab-Hmac-Sha256>" \
  --header "Content-Type: application/json" \
  --data '{"status": "pass"}' \
  --url "https://gitlab.example.com/api/v4/projects/<id>/compliance_external_controls/<external_control_id>/status"

예시 응답:

{
    "status":"pass"
}

관련 항목#