3.4. 使用授权策略验证第 7 层(L7)功能


更新 waypoint 代理后,验证第 7 层(L7)授权策略是否已正确强制实施。在本例中,名为 productpage-waypointAuthorizationPolicy 资源只允许来自 default/sa/curl 服务帐户的请求将 GET 请求发送到 productpage 服务。

先决条件

  • 您已更新了 waypoint 代理。
  • 您已使用 AuthorizationPolicy 资源中描述的服务帐户创建了应用程序 pod。
  • 您已创建了 AuthorizationPolicy 资源。

流程

  1. 可选:运行以下命令,创建 AuthorizationPolicy 资源(如果不存在):

    $ oc apply -f - <<EOF
    apiVersion: security.istio.io/v1
    kind: AuthorizationPolicy
    metadata:
      name: productpage-waypoint
      namespace: info
    spec:
      targetRefs:
      - kind: Service
        group: ""
        name: productpage
      action: ALLOW
      rules:
      - from:
        - source:
            principals:
            - cluster.local/ns/default/sa/curl
        to:
        - operation:
            methods: ["GET"]
    EOF
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令,验证没有包括在允许列表中的服务(如 ratings 服务)是否被拒绝:

    $ oc exec "$(
      kubectl get pod \
        -l app=ratings \
        -n info \
        -o jsonpath='{.items[0].metadata.name}'
    )" \
    -c ratings \
    -n info -- \
    curl -sS productpage:9080/productpage
    Copy to Clipboard Toggle word wrap

    请求将被拒绝,因为 ratings 服务没有包含在授权策略的 allow 列表中。只有使用 default/ curl 服务帐户的 curl pod 才能访问 productpage 服务。

  3. 运行以下命令,验证 curl 服务是否可以使用 GET 请求访问 productpage 服务:

    oc exec "$(
      kubectl get pod \
        -l app=curl \
        -n default \
        -o jsonpath='{.items[0].metadata.name}'
    )" \
    -c curl \
    -n default -- \
    curl -sS http://productpage.info:9080/productpage | grep -o "<title>.*</title>"
    Copy to Clipboard Toggle word wrap

    请求将成功,因为 curl 服务满足授权策略规则。它使用 cluster.local/ns/default/sa/curl 主体,并执行策略所允许的 GET 操作。包含页面标题的成功响应确认 waypoint 代理正确强制执行 L7 授权规则并允许有效流量。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat