1.11.5.2.4. 지원되지 않는 리소스에 대한 마이그레이션 세부 정보
정책(authentication.istio.io/v1alpha1)
v2.0 컨트롤 플레인, PeerAuthentication 및 RequestAuthentication과 함께 사용하려면 정책 리소스를 새 리소스 유형으로 마이그레이션해야 합니다. 정책 리소스의 특정 구성에 따라 동일한 효과를 달성하기 위해 여러 리소스를 구성해야 할 수 있습니다.
상호 TLS
상호 TLS 적용은 security.istio.io/v1beta1
PeerAuthentication 리소스를 사용하여 수행됩니다. 레거시 spec.peers.mtls.mode
필드는 새로운 리소스의 spec.mtls.mode
필드에 직접 매핑됩니다. 선택 기준이 spec.targets[x].name
의 서비스 이름 지정에서 spec.selector.matchLabels
의 레이블 선택기로 변경되었습니다. PeerAuthentication에서 레이블은 대상 목록에 이름이 지정된 서비스의 선택기와 일치해야 합니다. 모든 포트별 설정은 spec.portLevelMtls
에 매핑되어야 합니다.
인증
spec.origins
에 지정된 추가 인증 방법은 security.istio.io/v1beta1
RequestAuthentication 리소스에 매핑되어야 합니다. spec.selector.matchLabels
는 PeerAuthentication의 동일한 필드와 유사하게 구성되어야 합니다. spec.origins.jwt
항목의 JWT 주체와 관련된 구성은 spec.rules
항목의 유사한 필드에 매핑됩니다.
-
정책에 지정된
spec.origins[x].jwt.triggerRules
는 하나 이상의security.istio.io/v1beta1
AuthorizationPolicy 리소스에 매핑되어야 합니다.spec.selector.labels
는 RequestAuthentication의 동일한 필드와 유사하게 구성되어야 합니다. -
spec.origins[x].jwt.triggerRules.excludedPaths.excludedPaths
는 spec.action이 ALLOW로 설정된 AuthorizationPolicy에 매핑되고,spec.rules[x].to.operation.path
항목이 제외된 경로와 일치해야 합니다. -
spec.origins[x].jwt.triggerRules.includedPaths
는spec.action
이ALLOW
로 설정된 별도의 AuthorizationPolicy에 매핑되고,spec.rules[x].to.operation.path
항목이 제외된 경로와 일치하며,spec.rules.[x].from.source.requestPrincipals
항목이 정책 리소스의specified spec.origins[x].jwt.issuer
와 일치해야 합니다
ServiceMeshPolicy(maistra.io/v1)
ServiceMeshPolicy는 v1 리소스의 spec.istio.global.mtls.enabled
또는 v2 리소스 설정의 spec.security.dataPlane.mtls
를 통해 컨트롤 플레인에 대해 자동으로 구성되었습니다. v2 컨트롤 플레인의 경우 설치 중에 기능적으로 동일한 PeerAuthentication 리소스가 생성됩니다. 이 기능은 Red Hat OpenShift Service Mesh 버전 2.0에서 더 이상 사용되지 않습니다.
RbacConfig, ServiceRole, ServiceRoleBinding (rbac.istio.io/v1alpha1)
이러한 리소스는 security.istio.io/v1beta1 AuthorizationPolicy
리소스로 교체되었습니다.
RbacConfig 동작을 모방하려면 RbacConfig에 지정된 spec.mode에 따라 설정이 달라지는 기본 AuthorizationPolicy를 작성해야 합니다.
-
spec.mode
가OFF
로 설정되면 AuthorizationPolicy가 요청에 적용되지 않는 한 기본 정책은 ALLOW이므로 리소스가 필요하지 않습니다. -
spec.mode
가 ON으로 설정된 경우spec: {}
를 설정합니다. 메시의 모든 서비스에 대해 AuthorizationPolicy 정책을 생성해야 합니다. -
spec.mode
가ON_WITH_INCLUSION
으로 설정되며, 포함된 각각의 네임스페이스에spec: {}
을 사용하여 AuthorizationPolicy를 생성해야 합니다. 개별 서비스 포함은 AuthorizationPolicy에서 지원되지 않습니다. 그러나 서비스의 워크로드에 적용되는 AuthorizationPolicy가 생성되면 명시적으로 허용되지 않는 다른 모든 요청이 거부됩니다. -
spec.mode
가ON_WITH_EXCLUSION
으로 설정된 경우 AuthorizationPolicy에서 지원되지 않습니다. 글로벌 DENY 정책을 생성할 수 있지만, 네임스페이스 또는 워크로드에 적용할 수 있는 허용된 정책이 없기 때문에 메시의 모든 워크로드에 대해 AuthorizationPolicy를 생성해야 합니다.
AuthorizationPolicy에는 ServiceRoleBinding이 제공하는 기능과 유사한 구성이 적용되는 선택기와 ServiceRole이 제공하는 기능과 유사하며 적용되어야 하는 규칙에 대한 구성이 모두 포함됩니다.
ServiceMeshRbacConfig (maistra.io/v1)
이 리소스는 컨트롤 플레인의 네임스페이스에 빈 spec.selector가 있는 security.istio.io/v1beta1
AuthorizationPolicy 리소스를 사용하여 교체됩니다. 이 정책은 메시의 모든 워크로드에 적용되는 기본 권한 부여 정책이 됩니다. 특정 마이그레이션 세부 사항은 위의 RbacConfig를 참조하십시오.