本文共 2359 字,大约阅读时间需要 7 分钟。
本节将介绍如何启用、配置和使用Istio的安全认证策略,深入了解其底层概念。首先,我们需要理解Istio的核心组件及其安全机制,然后通过示例配置来实现需求。
Istio 提供了两种主要的安全认证类型:
首先,确保Istio已正确安装并配置。以下命令创建命名空间和部署示例:
kubectl create ns fookubectl apply -f $(istioctl kube-inject -f samples/httpbin/httpbin.yaml) -n fookubectl apply -f $(istioctl kube-inject -f samples/sleep/sleep.yaml) -n foo
默认情况下,Istio会自动配置客户端代理发送mutual TLS流量到目标负载。为了确保所有通信使用加密传输,需在网格范围内设置严格的对等认证策略:
kubectl apply -n istio-system -f - <
通过执行以下命令验证配置是否正确:
for from in "foo" "bar" "legacy"; do for to in "foo" "bar" "legacy"; do kubectl exec $(kubectl get pod -l app=sleep -n ${from} -o jsonpath={.items..metadata.name}) -c sleep -n ${from} \ -- curl "http://httpbin.${to}:8000/ip" -s -o /dev/null -w "sleep.${from} to httpbin.${to}: %{http_code}\n" donedone 若需卸载对等认证策略,可执行以下命令:
kubectl delete peerauthentication -n istio-system default
为了实现终端用户认证,需配置JWT策略并暴露服务。以下步骤说明:
kubectl apply -n istio-system -f samples/addons/ingressgateway/ingressgateway.yaml
INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')INGRESS_HOST=$(kubectl get po -l istio=ingressgateway -n istio-system -o jsonpath='{.items[0].status.hostIP}') kubectl apply -n istio-system -f - <
TOKEN=$(curl https://raw.githubusercontent.com/istio/istio/release-1.7/security/tools/jwt/samples/demo.jwt -s)curl --header "Authorization: Bearer $TOKEN" "$INGRESS_HOST:$INGRESS_PORT/headers" -s -o /dev/null -w "%{http_code}\n" 200 curl --header "Authorization: Bearer deadbeef" "$INGRESS_HOST:$INGRESS_PORT/headers" -s -o /dev/null -w "%{http_code}\n" 401 为确保每个路径都需要有效token,可以修改策略:
kubectl apply -n istio-system -f - <
验证结果:
curl "$INGRESS_HOST:$INGRESS_PORT/headers" -s -o /dev/null -w "%{http_code}\n" 403curl "$INGRESS_HOST:$INGRESS_PORT/ip" -s -o /dev/null -w "%{http_code}\n" 200 kubectl -n istio-system delete requestauthentication jwt-examplekubectl -n istio-system delete authorizationpolicy frontend-ingress
kubectl delete ns foo bar legacy
本章详细介绍了Istio的安全认证机制,包括对等认证和终端用户认证。通过合理配置,可以实现服务间的安全通信和用户身份验证。Istio的灵活配置使其适用于多种场景,确保系统安全性和可靠性。
转载地址:http://ulakz.baihongyu.com/