GatewayPolicy 리소스 참조
GatewayPolicy 리소스 참조 (K8s)
이 주제는 API 게이트웨이 정책 리소스에 대한 참조 정보를 제공해요. 이 리소스는 Kubernetes 오케스트레이션 네트워크에 배포된 API 게이트웨이의 리스너에 대한 정책을 정의한답니다.
출처: 문서
본문
이 주제는 API 게이트웨이 정책 리소스에 대한 참조 정보를 제공합니다. 이 리소스는 Kubernetes 오케스트레이션 네트워크에 배포된 API 게이트웨이의 리스너에 대한 정책을 정의합니다.
구성 모델 (Configuration model)
다음 목록은 게이트웨이 정책 리소스의 필드 계층, 데이터 유형, 요구 사항을 간략히 설명합니다. 속성 이름을 클릭하면 기본값을 포함한 추가 세부 정보를 볼 수 있습니다.
apiVersion: string | required |consul.hashicorp.com/v1alpha1로 설정해야 합니다.kind: string | required |GatewayPolicy로 설정해야 합니다.metadata: map | requiredspec: map | required
전체 구성 (Complete configuration)
모든 필드가 정의되면 게이트웨이 정책은 다음 형식을 갖습니다.
apiVersion: consul.hashicorp.com/v1alpha1
kind: GatewayPolicy
metadata:
name: <name for the policy>
namespace: <Consul namespace the policy applies to>
spec:
targetRef:
name: gateway
kind: Gateway
group: gateway.networking.kuberenetes.io
sectionName: <name of a specific listener the policy applies>
override:
jwt:
providers:
- name: "<name of the provider all listeners verify against>"
verifyClaims:
- path:
- "aud"
value: "api.apps.organization.com"
default:
jwt:
providers:
- name: "<name of the JWT provider to verify against>"
verifyClaims:
- path:
- "roles"
- "perm"
value: "user"
사양 (Specification)
이 섹션은 게이트웨이 정책 리소스에서 구성할 수 있는 필드에 대한 세부 정보를 제공합니다.
apiVersion
Kubernetes와 통합하기 위한 Consul API의 버전을 지정합니다. 값은 consul.hashicorp.com/v1alpha1이어야 합니다.
값
- 기본값: 없음
- 이 필드는 필수입니다.
consul.hashicorp.com/v1alpha1로 설정해야 하는 문자열 값.
kind
구현할 구성 항목의 유형을 지정합니다. GatewayPolicy로 설정해야 합니다.
값
- 기본값: 없음
- 이 필드는 필수입니다.
GatewayPolicy로 설정해야 하는 문자열 값.
metadata
리소스에 대한 임의의 이름과 적용되는 네임스페이스를 포함하는 맵.
값
- 기본값: 없음
- 데이터 유형: 맵
metadata.name
리소스의 이름을 지정합니다. 이름은 특정 클러스터에 리소스를 적용하는 것 같은 Consul 작업을 수행할 때 리소스를 참조하는 데 사용할 수 있는 메타데이터입니다.
값
- 기본값: 없음
- 이 필드는 필수입니다.
- 데이터 유형: 문자열
metadata.namespace
구성이 적용되는 네임스페이스를 지정합니다. 자세한 내용은 namespaces을 참조하세요.
값
- 기본값: 없음
- 데이터 유형: 문자열
spec
게이트웨이 정책에 대한 세부 정보를 포함하는 맵. apiVersion, kind, metadata 필드는 spec 필드의 형제이며 다른 모든 구성은 자식입니다.
값
- 기본값: 없음
- 이 필드는 필수입니다.
- 데이터 유형: 맵
targetRef
정책이 적용되는 게이트웨이에 대한 참조를 포함하는 맵.
값
- 기본값: 없음
- 이 필드는 필수입니다.
- 데이터 유형: 맵
다음 표는 targetRef 맵의 멤버를 설명합니다.
| 매개변수 | 설명 | 데이터 유형 | 기본값 |
| namespace | 대상 참조가 멤버인 네임스페이스를 지정합니다. | String | default |
| name | 정책이 연결되는 API 게이트웨이의 이름을 지정합니다. | String | None |
| kind | 정책이 연결되는 리소스 유형을 지정합니다. Gateway로 설정해야 합니다. | String | None |
| group | 리소스 그룹을 지정합니다. gateway.networking.kuberenetes.io로 설정해야 합니다. | String | None |
| sectionName | 정책이 적용되는 게이트웨이의 일부를 지정합니다. | String | None |
spec.override
정책이 게이트웨이에 연결될 때 리스너에 적용할 구성을 포함하는 맵. override 설정은 spec.default 구성보다 우선합니다.
값
- 기본값: 없음
- 데이터 유형: 맵
spec.override.jwt
정책이 게이트웨이에 연결될 때 리스너에 적용할 JWT 검증 구성을 포함하는 맵. override 설정은 default 구성뿐 아니라 RouteAuthFilter 구성에 정의된 경로별 JWT 구성보다 우선합니다.
값
- 기본값: 없음
- 데이터 유형: 맵
spec.override.jwt.providers
정책이 게이트웨이 리스너에 연결될 때 리스너에 적용할 JWT 공급자 구성 목록을 지정합니다. 공급자 구성에는 공급자의 이름과 클레임이 포함됩니다. override 설정은 기본값뿐 아니라 모든 리스너별 구성보다 우선합니다. 추가 정보는 Use JWTs to verify requests to API gateways on Kubernetes을 참조하세요.
값
- 기본값: 없음
- 데이터 유형: 맵 목록
다음 표는 Providers 목록의 멤버에서 지정할 수 있는 매개변수를 설명합니다.
| 매개변수 | 설명 | 데이터 유형 | 기본값 |
| name | 공급자의 이름을 지정합니다. | String | None |
| verifyClaims | 클레임을 정의하는 경로 목록과 값을 지정합니다. Consul은 리스너 JWT 구성에 선언된 클레임과 일치하는 요청을 검증하고 요청이 게이트웨이를 통과하도록 허용합니다. VerifyClaims 맵은 다음 설정을 지정합니다. path: 등록되거나 사용자 지정된 하나 이상의 클레임 목록. value: 클레임의 기대 값. | Map | None |
spec.default
정책이 게이트웨이에 연결될 때 리스너에 적용할 기본 구성을 포함하는 맵. 게이트웨이 리스너에 연결된 모든 경로는 기본 구성을 상속합니다. 기본 구성보다 우선하는 override 구성을 지정할 수 있습니다. 자세한 내용은 spec.override을 참조하세요.
값
- 기본값: 없음
- 데이터 유형: 맵
spec.default.jwt
정책이 게이트웨이에 연결될 때 리스너에 적용할 기본 JWT 구성을 지정합니다. spec.override.JWT 블록 또는 HTTP 경로에 연결된 RouteAuthFilter에서 기본값보다 우선하는 구성을 지정하세요. API 게이트웨이에서 JWT 검증을 사용하는 우선순위와 기타 세부 정보는 Use JWTs to verify requests to API gateways을 참조하세요.
값
- 기본값: 없음
- 데이터 유형: 맵
spec.default.jwt.providers
정책이 게이트웨이에 연결될 때 리스너에 적용할 기본 JWT 공급자 구성을 지정합니다. 공급자 구성에는 공급자의 이름과 클레임이 포함됩니다. spec.override.JWT.providers 블록 또는 HTTP 경로 구성에 연결된 RouteAuthFilter에서 기본값보다 우선하는 구성을 지정하세요. API 게이트웨이에서 JWT 검증을 사용하는 우선순위와 기타 세부 정보는 Use JWTs to verify requests to API gateways을 참조하세요.
값
- 기본값: 없음
- 데이터 유형: 맵 목록
다음 표는 Providers 목록의 멤버에서 지정할 수 있는 매개변수를 설명합니다.
| 매개변수 | 설명 | 데이터 유형 | 기본값 |
| name | 공급자의 이름을 지정합니다. | String | None |
| verifyClaims | 클레임을 정의하는 경로 목록과 값을 지정합니다. Consul은 리스너 JWT 구성에 선언된 클레임과 일치하는 요청을 검증하고 요청이 게이트웨이를 통과하도록 허용합니다. VerifyClaims 맵은 다음 설정을 지정합니다. path: 등록되거나 사용자 지정된 하나 이상의 클레임 목록. value: 클레임의 기대 값. | Map | None |
예시 구성 (Example configuration)
다음 예시에서 게이트웨이를 통한 모든 요청은 api.apps.organization.com audience 클레임을 가져야 합니다. 또한 게이트웨이를 통한 요청은 기본적으로 user 역할을 가져야 합니다.
apiVersion: consul.hashicorp.com/v1alpha1
kind: GatewayPolicy
metadata:
name: my-policy
spec:
targetRef:
name: gateway
kind: Gateway
group: gateway.networking.kuberenetes.io
sectionName: to-server
override:
jwt:
providers:
- name: "okta"
verifyClaims:
- path:
- "aud"
value: "api.apps.organization.com"
default:
jwt:
providers:
- name: "okta"
verifyClaims:
- path:
- "roles"
- "perm"
value: "user"