CEL 변경 유형별 입력 참조
정책 입력의 type은 변경 유형을 나타냅니다. 유형에 따라 request의 필드와 referencedResources의 키가 달라지므로, 해당 유형인지 확인한 뒤 필요한 필드에 접근합니다.
배포 개체 변경이 모듈 설치의 일부라면 관련 모듈의 module과 moduleRelease 참조가 추가될 수 있습니다. 사용할 때는 해당 키가 있는지 확인해야 합니다.
참조 리소스의 공통 필드
referencedResources의 각 항목에는 다음 네 필드가 있습니다.
| 필드 | 타입 | 의미 |
|---|---|---|
rid | 문자열 | 리소스 식별자. 역할이나 작업 권한을 요구하는 함수에 전달 |
name | 문자열 | 환경 이름이나 제품 ID 등 리소스를 표시하는 이름 |
labels | 맵 | 적용된 레이블. 키와 값은 문자열이며, 레이블이 없으면 빈 맵 |
authorRoles | 집합 | 작성자가 이 리소스에서 가진 역할 ID 문자열. 역할이 없으면 빈 집합 |
대부분의 항목에는 리소스 전체를 맵으로 직렬화한 resource도 있습니다. 내부 필드는 리소스 종류에 따라 다릅니다. 예를 들어 아티팩트 레지스트리 종류는 referencedResources.artifactRegistry.resource.registryType으로 확인합니다.
다음 변경 유형에서는 resource가 비어 있습니다.
CREATE_PIPELINECREATE_TEAMCREATE_EGRESS_POLICIESDELETE_EGRESS_POLICIESMODIFY_VULNERABILITY_SUPPRESSIONSREMOVE_VULNERABILITY_SUPPRESSIONSMODIFY_SPACE_SETTINGSMODIFY_RESOURCE_OVERRIDE_SPACE_SETTINGS
배포 개체 변경
type | 발생하는 작업 | 참조 리소스 키 |
|---|---|---|
CREATE_ENTITY | 환경에 개체 추가 | environment, 제품이 지정된 경우 product |
UPDATE_ENTITY | 개체의 애플리케이션 구성 변경 | environment, installation, 제품이 지정된 경우 product |
UPDATE_ENTITY_SETTINGS | 릴리스 채널 등의 운영 설정 변경 또는 삭제 대상으로 표시 | environment, installation, 제품이 지정된 경우 product |
DELETE_ENTITY | 배포 구성에서 개체 제거 | environment, installation, 제품이 지정된 경우 product |
생성과 갱신 요청
CREATE_ENTITY, UPDATE_ENTITY, UPDATE_ENTITY_SETTINGS의 request에는 다음 필드가 있습니다. 갱신 요청의 값은 변경 후 제안한 상태를 나타냅니다.
| 필드 | 타입 | 의미와 존재 조건 |
|---|---|---|
apolloEntityId | 문자열 | 개체의 고유 식별자 |
apolloEntityType | 문자열 | service, daemon, network-security 등의 개체 유형 |
releaseChannel | 문자열 | 개체의 릴리스 채널. 환경 기본값을 상속하면 없음 |
configOverrides | 맵 | 제품별 구성. 일반적으로 버전 문자열이 키이고 해당 버전의 구성 맵이 값 |
entity | 맵 | 직렬화한 개체 설정. 서비스, 데몬, Helm 차트 등 배포 구성에 선언된 개체에 존재 |
network-security의 configOverrides는 아래의 별도 구조를 사용합니다.
삭제 요청
DELETE_ENTITY의 request에는 다음 두 필드가 있습니다.
| 필드 | 타입 | 의미 |
|---|---|---|
apolloEntityId | 문자열 | 제거할 개체의 고유 식별자 |
apolloEntityType | 문자열 | service, daemon 등의 개체 유형 |
entity 내부 필드
request.entity는 서비스, 데몬, Helm 차트, Asset 등 배포 구성에 선언된 개체의 설정을 담습니다.
| 필드 | 타입 | 의미와 존재 조건 |
|---|---|---|
releaseChannel | 문자열 | 개체 채널. 환경 기본값을 상속하면 없음 |
maintenanceWindows | 객체 | 개체의 유지보수 일정. 설정하지 않으면 없음 |
dependencyStackOverrides | 맵 | 제품 ID별 의존 스택 재정의 |
ignoredDependencies | 집합 | 무시할 의존 제품 ID |
rolloutStrategy | 객체 | 배포 전략 재정의. 기본값을 사용하면 없음 |
tracks | 집합 | 추적형 Asset의 트랙 |
product | 문자열 | 명시적으로 재정의한 제품 ID. 재정의하지 않으면 없음 |
targetInfrastructureType | 문자열 | 인프라 유형 재정의. 설정하지 않으면 없음 |
markedForDeletion | 불리언 | 삭제 대상으로 표시했는지. 표시하지 않으면 없음 |
markedForUninstallation | 객체 | 설치 제거 구성. 설정하지 않으면 없음 |
helmReleaseName | 문자열 | Helm 차트 개체의 Helm 릴리스 이름 |
k8sNamespace | 문자열 | Helm 차트 개체의 Kubernetes 네임스페이스 |
accountId | 문자열 | Terraform 모듈 개체의 AWS 계정 ID |
foundrySpace | 문자열 | Foundry 제품 개체의 Foundry 공간 |
dependencyGroups | 집합 | Helm 차트, Terraform 모듈 및 Foundry 제품의 의존 그룹 |
dependencyGroupOverrides | 맵 | 제품 ID별 의존 그룹 재정의 |
network-security의 configOverrides
네트워크 보안 개체의 구성은 버전별 맵이 아니라 규칙의 선언 상태입니다. type으로 변형을 구분하는 유니온 구조이며 현재 변형은 v1입니다.
| 경로 | 타입 | 의미 |
|---|---|---|
request.configOverrides.type | 문자열 | 현재 값은 v1 |
request.configOverrides.v1 | 객체 | 규칙 내용 |
request.configOverrides.v1.description | 문자열 | 규칙 설명 |
request.configOverrides.v1.ruleDetails | 객체 | 규칙 종류와 설정. type으로 종류를 구분 |
request.configOverrides.v1.quarantined | 불리언 | 참이면 철회된 규칙으로 취급. 설정하지 않으면 없음 |
규칙 종류가 egressRule이면 request.configOverrides.v1.ruleDetails.egressRule에서 내용을 읽습니다.
ruleDetails.type | 변형 안의 필드 |
|---|---|
egressRule | dest, ports, namespaces |
httpsIngressRule | domain, allowedCidrs, allowedCountryCodes |
httpsPortIngressRule | port, allowedCidrs, allowedCountryCodes |
tcpIngressRule | ports, allowedCidrs |
udpIngressRule | ports, allowedCidrs |
외부 방향 규칙의 세부 구조는 다음과 같습니다.
| 필드 | 구조 |
|---|---|
dest | type이 cidrs이면 dest.cidrs에 CIDR 문자열 집합, domain이면 dest.domain에 도메인 문자열 |
ports | 포트 항목의 집합. 항목의 type이 port이면 port 정수, portRange이면 portRange.start와 portRange.end 정수 |
namespaces | 네임스페이스 문자열 집합 |
인바운드 규칙에서 domain은 문자열이고 httpsPortIngressRule.port는 정수입니다. TCP와 UDP 규칙의 ports는 정수 집합입니다. 공통 접근 허용 필드는 다음 구조를 사용합니다.
| 필드 | 구조 |
|---|---|
allowedCidrs | 객체 집합. 각 객체에 justification 문자열과 cidrs 문자열 집합 |
allowedCountryCodes | 객체 집합. 각 객체에 justification 문자열과 countryCodes 문자열 집합 |
배포 개체의 유지보수 시간대
type | 대상 | 참조 리소스 키 |
|---|---|---|
CREATE_ENTITY_MAINTENANCE_WINDOW_OVERRIDE | 표준 개체 유형의 유지보수 시간대 재정의 생성 | environment, installation, 해당하는 경우 product |
CREATE_GENERIC_ENTITY_MAINTENANCE_WINDOW_OVERRIDE | 일반 개체 유형의 유지보수 시간대 재정의 생성 | environment, installation |
두 유형의 request 구조는 같습니다.
| 필드 | 타입 | 의미 |
|---|---|---|
entity | 문자열 | 개체의 고유 식별자 |
startTime | 타임스탬프 | 재정의 시간대 시작 |
endTime | 타임스탬프 | 재정의 시간대 종료 |
type | 문자열 | DOWNTIME 또는 NO_DOWNTIME |
최상위 type은 변경 유형이고 request.type은 시간대 유형입니다.
배포 환경 변경
다음 유형은 모두 referencedResources.environment를 제공합니다.
type | 발생하는 작업 | request 필드 |
|---|---|---|
UPDATE_ENVIRONMENT_SETTINGS | 기본 채널 등의 환경 수준 운영 설정 변경 | deploymentId: 환경 ID 문자열, settings: 변경 후 운영 설정 맵 |
UPDATE_ENVIRONMENT_CONFIG | 환경 구성 파일 변경 | config: 변경 후 구성 파일 전체 내용의 맵 |
UPDATE_EXTERNAL_DEPENDENCIES | 외부 의존 관계 구성 변경 | config: 변경 후 외부 의존 관계 구성 파일 전체 내용의 맵 |
UPDATE_ENVIRONMENT_PROPERTIES | 소유 관계와 운영 책임 등의 속성 변경 | 아래 속성 필드 |
DELETE_ENVIRONMENT | 환경 삭제 | deployment: 환경 ID 문자열, namespaces: 등록을 해제할 Namespace ID 집합 |
EXIT_BOOTSTRAP_MODE | 초기 설정 모드 종료 | 요청 필드 없음. 환경 참조에서 정보 조회 |
UPDATE_ENVIRONMENT_SETTINGS.settings에는 기본 릴리스 채널, 유지보수 시간대와 소유 관계 설정 등이 들어가며 개별 배포 개체 항목은 포함하지 않습니다.
환경 속성 변경 필드
| 필드 | 타입 | 의미와 존재 조건 |
|---|---|---|
deploymentId | 문자열 | 환경 ID |
owner | 문자열 | 소유 팀 RID. 변경하지 않으면 없음 |
enableOperationalResponsibility | 불리언 | 환경의 운영 책임 활성 여부 |
coOwner | 집합 | 공동 소유 팀 RID |
registerToNamespaces | 집합 | 환경이 등록되는 Namespace ID |
supportOverride | 문자열 | 지원 수준 재정의. 설정하지 않으면 없음 |
이 입력의 Namespace ID와 Kubernetes 개체의 k8sNamespace는 별도로 다룹니다.
공간 설정
type | 발생하는 작업 | request 필드 |
|---|---|---|
MODIFY_SPACE_SETTINGS | 공간 수준 설정 변경 | settingName: 설정 식별자 문자열. 예: allow-upgrades |
MODIFY_RESOURCE_OVERRIDE_SPACE_SETTINGS | 공간 설정의 리소스 수준 재정의 변경 | settingName: 재정의할 설정 식별자 문자열 |
참조 리소스의 키는 설정에 따라 달라지며 변경 대상 리소스를 기준으로 정해집니다. 특정 설정만 처리하는 정책은 request.settingName도 검사합니다.
번들 전송 파이프라인 변경
type | 발생하는 작업 | 참조 리소스 키 | request 필드 |
|---|---|---|---|
CREATE_PIPELINE | 파이프라인 생성 | pipelineRoot | settings: 파이프라인 설정 맵 |
UPDATE_PIPELINE | 기존 파이프라인 설정 변경 | bundlingpipeline | pipelineRid: RID 문자열, settings: 변경 후 설정 맵 |
UPDATE_PIPELINE_TRANSFER_TARGET | 전송 대상 연결 변경 | 항상 transferTarget, 기존 파이프라인 연결을 바꾸는 경우에만 bundlingpipeline | 없음. 전송 대상 참조에서 정보 조회 |
DELETE_PIPELINE | 파이프라인 삭제 | bundlingpipeline | pipelineRid: 삭제할 파이프라인 RID 문자열 |
ARCHIVE_PIPELINE | 파이프라인 보관 | bundlingpipeline | pipelineRid: 보관할 파이프라인 RID 문자열 |
UNARCHIVE_PIPELINE | 파이프라인 보관 해제 | bundlingpipeline | pipelineRid: 보관을 해제할 파이프라인 RID 문자열 |
새 파이프라인을 만들면서 전송 대상도 연결하는 경우에는 UPDATE_PIPELINE_TRANSFER_TARGET 입력에 기존 파이프라인 참조가 없습니다.
settings 내부 필드
생성과 갱신은 같은 설정 구조를 사용합니다.
| 필드 | 타입 | 의미 |
|---|---|---|
id | 문자열 | 공간 안에서 고유한 파이프라인 이름 |
description | 문자열 | 설명 |
schedule | 객체 | 번들 생성 일정. type은 never, cron 등의 값이며 cron 유형에는 cron 하위 필드도 포함 |
transferMechanism | 문자열 | diode 등의 번들 전송 방식 |
connections | 맵 | 전송 대상 ID가 키, 연결 유형 문자열의 집합이 값 |
globalSelectors | 객체 | 생성할 번들에 포함되는 리소스 선택 조건 |
팀 변경
type | 발생하는 작업 | 참조 리소스 키 | 식별 필드 |
|---|---|---|---|
CREATE_TEAM | 새 팀 생성 | teamRoot | name: 공간 안에서 고유하며 변경할 수 없는 팀 슬러그 문자열 |
UPDATE_TEAM | 구성원 또는 팀 설정 변경 | team | teamRid: 변경할 팀 RID 문자열 |
DELETE_TEAM | 팀 삭제 | team | teamRid: 삭제할 팀 RID 문자열 |
생성과 갱신 요청에는 다음 구성원 필드도 있습니다. 삭제 요청에는 위 식별 필드만 있습니다.
| 필드 | 타입 | 구성원 대상 |
|---|---|---|
admins | 집합 | 관리자 그룹 위치자 |
members | 집합 | 일반 구성원 그룹 위치자 |
adminUsers | 집합 | 관리자 사용자 위치자 |
memberUsers | 집합 | 일반 구성원 사용자 위치자 |
각 위치자는 name 문자열과 realm 문자열을 포함합니다. 갱신 요청에는 변경 후의 구성원 집합이 들어갑니다.
제품 설정
다음 유형은 모두 referencedResources.product를 제공합니다.
type | 발생하는 작업 | request 필드 |
|---|---|---|
CREATE_PRODUCT_SETTINGS | 제품 설정 생성 | productId, orTeam, operationalResponsibilityExcludedEnvironments |
UPDATE_PRODUCT_SETTINGS | 기존 제품 설정 변경 | productId, orTeam, operationalResponsibilityExcludedEnvironments |
DELETE_PRODUCT_SETTINGS | 제품 설정 삭제 | product: 대상 제품 ID 문자열 |
생성과 갱신에 사용하는 필드의 의미는 다음과 같습니다.
| 필드 | 타입 | 의미 |
|---|---|---|
productId | 문자열 | 설정 대상 제품 ID |
orTeam | 문자열 | 소유 및 운영 책임 팀 RID |
operationalResponsibilityExcludedEnvironments | 집합 | 이 제품의 운영 책임에서 제외할 환경 ID |
외부 통신 정책
CREATE_EGRESS_POLICIES
외부 통신 정책 생성이며 참조 키는 egressPolicyRoot입니다. request.data는 생성할 정책의 목록입니다.
| 각 정책의 필드 | 타입 | 의미와 존재 조건 |
|---|---|---|
address | 객체 | 목적지 주소. type이 dns이면 address.dns 문자열, cidr이면 address.cidr 문자열 |
port | 객체 | port 정수. 범위를 지정하면 선택적인 portRangeEnd 정수 포함 |
transportProtocol | 문자열 | TLS, TCP, HTTP 등의 전송 프로토콜 |
network | 객체 | 경로 종류를 나타내는 type 포함. 예: direct, privateLink, secureTunnels, agent, bucketEndpoint, catalogBucket, bcap |
description | 문자열 | 선택적인 설명. 제공하지 않으면 없음 |
특정 포트만 허용하려면 시작 포트와 함께 선택적인 끝 포트도 검사해야 합니다. 이 구조는 앞의 network-security 개체 규칙과 다르므로 각 변경 유형의 필드를 사용합니다.
DELETE_EGRESS_POLICIES
외부 통신 정책 삭제이며 참조 키는 egressPolicyRoot입니다. request.data는 삭제할 정책 RID 문자열의 집합입니다.
터미널 접근 허용
CREATE_TERMINAL_ACCESS_GRANT는 터미널 접근 허용 생성 요청입니다. 참조 키는 environment입니다.
| 필드 | 타입 | 의미 |
|---|---|---|
environment | 문자열 | 접근을 요청한 환경 ID |
data | 맵 | 허용할 접근의 상세 정보. 접근 허용 유형에 따라 내용이 다름 |
취약점 억제 추가와 변경
MODIFY_VULNERABILITY_SUPPRESSIONS의 참조 키는 vulnerabilitySuppression입니다.
request 필드 | 타입 | 의미 |
|---|---|---|
spaceRid | 문자열 | 공간 RID |
vulnerabilitySuppressions | 목록 | 추가하거나 바꿀 CVE 기반 억제 항목 |
scannerSuppressions | 맵 | 스캐너 이름별 억제 항목 목록 |
imageNameVulnerabilitySuppressions | 맵 | 정확한 이미지 이름별 억제 항목 목록 |
imagePrefixVulnerabilitySuppressions | 맵 | 이미지 이름 접두사별 억제 항목 목록 |
productIdVulnerabilitySuppressions | 맵 | 제품 ID별 억제 항목 목록 |
imageEndOfSupportLifeSuppressions | 맵 | 이미지 이름별 지원 수명 종료 억제 객체 |
일반 억제 목록의 항목은 다음 구조입니다.
| 필드 | 구조 |
|---|---|
suppression | rationale 사유 문자열, category 범주 문자열, validUntil 유효 기한 타임스탬프 |
vulnerabilitiesToSuppress | 억제할 CVE ID 문자열 집합. 예: CVE-2021-44228 |
지원 수명 종료 억제의 값은 같은 suppression 구조를 사용하지만 vulnerabilitiesToSuppress를 포함하지 않습니다.
취약점 억제 제거
REMOVE_VULNERABILITY_SUPPRESSIONS의 참조 키도 vulnerabilitySuppression입니다.
request 필드 | 타입 | 의미 |
|---|---|---|
spaceRid | 문자열 | 공간 RID |
vulnerabilitySuppressions | 집합 | 제거할 CVE ID 문자열. 예: CVE-2021-44228 |
scannerSuppressions | 맵 | 스캐너 이름이 키, 제거할 CVE ID 문자열 집합이 값 |
imageNameVulnerabilitySuppressions | 맵 | 이미지 이름이 키, 제거할 CVE ID 문자열 집합이 값 |
imagePrefixVulnerabilitySuppressions | 맵 | 이미지 이름 접두사가 키, 제거할 CVE ID 문자열 집합이 값 |
productIdVulnerabilitySuppressions | 맵 | 제품 ID가 키, 제거할 CVE ID 문자열 집합이 값 |
imageEndOfSupportLifeSuppressions | 집합 | 지원 수명 종료 억제를 제거할 이미지 이름 |
관리 재정의
다음 세 유형에는 referencedResources 키가 없습니다.
type | 발생하는 작업 | request 필드 |
|---|---|---|
CREATE_MANAGEMENT_OVERRIDE | 관리 재정의 생성 | name, owner, products, services |
UPDATE_MANAGEMENT_OVERRIDE | 관리 재정의 변경 | name, owner, products, services |
DELETE_MANAGEMENT_OVERRIDE | 관리 재정의 삭제 | name: 삭제할 관리 재정의 식별자 문자열 |
생성과 갱신 필드는 다음과 같습니다.
| 필드 | 타입 | 의미 |
|---|---|---|
name | 문자열 | 관리 재정의의 고유 식별자 |
owner | 문자열 | 관리 재정의를 소유할 팀의 RID |
products | 집합 | 적용 대상 제품 ID |
services | 집합 | 적용 대상 서비스 위치자. 각 항목에 stack 문자열과 serviceName 문자열 포함 |
갱신 요청은 변경 후 제품과 서비스 집합을 전달합니다. 이 유형의 정책에서 환경이나 설치본 참조가 있다고 가정하여 접근하면 안 됩니다.