日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

授權策略(Authorization Policy)

授權策略可以為網格中的工作負載啟用訪問控制能力。本文介紹授權策略的配置示例和字段說明。

授權策略介紹

授權策略支持CUSTOM(自定義)、DENY(拒絕)和ALLOW(允許)三種規則,生效的優先級從高到低依次為:CUSTOM、DENY、ALLOW。工作負載訪問控制的基本流程如下:

匹配規則

配置示例

示例一:ALLOW規則

允許滿足以下所有條件的請求通過:

  • 來源的prinicipalscluster.local/ns/default/sa/sleep或者namespacestest

  • 請求操作為GET方法且路徑為/info*,或者請求操作為POST方法且路徑為/data

  • 請求的JWT中的Issuer為https://accounts.aliyun.com

    apiVersion: security.istio.io/v1beta1
    kind: AuthorizationPolicy
    metadata:
      name: httpbin
      namespace: foo
    spec:
      action: ALLOW
      rules:
      - from:
        - source:
            principals: ["cluster.local/ns/default/sa/sleep"]
        - source:
            namespaces: ["test"]
        to:
        - operation:
            methods: ["GET"]
            paths: ["/info*"]
        - operation:
            methods: ["POST"]
            paths: ["/data"]
        when:
        - key: request.auth.claims[iss]
          values: ["https://accounts.aliyun.com"]

示例二:DENY規則

滿足以下所有條件的請求將被拒絕:

  • 來自dev命名空間。

  • 請求方法為POST

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: httpbin
  namespace: foo
spec:
  action: DENY
  rules:
  - from:
    - source:
        namespaces: ["dev"]
    to:
    - operation:
        methods: ["POST"]

示例三:CUSTOM規則

請求路徑為/admin*的請求將執行自定義授權服務。

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: ext-authz
  namespace: istio-system
spec:
  selector:
    matchLabels:
      app: istio-ingressgateway
  action: CUSTOM
  provider:
    name: "my-custom-authz"
  rules:
  - to:
    - operation:
        paths: ["/admin/*"]

字段說明

AuthorizationPolicy

AuthorizationPolicy可以為網格中的工作負載啟用訪問控制能力。

字段

類型

是否必選

說明

selector

WorkloadSelector

定義在當前命名空間中的哪些工作負載上應用授權策略。如果授權策略存在于根命名空間(istio-system),selector將會匹配所有命名空間的匹配工作負載;如果未配置,selector將會匹配到所有工作負載。

rules

Rule[]

一個可以匹配請求的規則列表。

  • 只要有一條規則匹配到當前請求,當前請求就會執行該授權策略。

  • 如果未配置,將不會匹配到任何請求。

  • 如果action配置為ALLOW,且不配置該字段,表示目標工作負載的默認策略為拒絕。

action

Action

如果一個請求匹配到rules中的規則,則執行該action。如果未配置,默認為ALLOW

provider

ExtensionProvider

actionCUSTOM時,指定使用的自定義授權服務。

WorkloadSelector

WorkloadSelector用于決定哪些工作負載應用當前配置。以下參數為必選。

字段

類型

是否必選

說明

matchLabels

map<string, string>

配置一組或者多組標簽來選擇策略生效的工作負載。標簽的搜索范圍僅限于當前資源的配置命名空間。

Rule

Rule通過來源操作其他條件三個維度來匹配請求。

一個請求被匹配到的條件如下。一個空的Rule會匹配到任意請求。

  • 至少滿足一條請求來源規則。

  • 至少滿足一條請求操作規則。

  • 滿足所有的其他條件

Rule中的所有string類型都支持精確匹配、前綴匹配、后綴匹配和存在匹配。

匹配方式

配置示例

示例說明

精確匹配

abc

表示只匹配abc的值。

前綴匹配

abc*

表示匹配以abc開頭的字符串且包含abc。

后綴匹配

*abc

表示匹配以abc結尾的字符串且包含abc。

存在匹配

*

表示匹配所有非空值。

Rule字段說明如下。

字段

類型

是否必選

說明

from

From[]

表示一個請求的來源。如果未配置,任意來源都會被允許。

to

To[]

指定一個請求的操作。如果未配置,任意操作都會被允許。

when

Condition[]

指定對于一個請求的其他條件列表。如果未配置,任何情況都會被允許。

Rule.From

From字段包含一個source列表。

字段

類型

是否必選

說明

source

Source

指定一個請求的來源。

Rule.From.Source

Source指定一個請求的來源身份。Source中的不同字段之間是AND的關系。

如下示例中,source配置會匹配到principalsadmin或者devnamespacesprod或者test,且IP不是1.2.X.X的請求。

principals: ["admin", "dev"]
namespaces: ["prod", "test"]
notIpBlocks: ["1.2.X.X"]

字段

類型

是否必選

說明

principals

string[]

一個對等身份列表。對等身份的格式為<TRUST_DOMAIN>/ns/<NAMESPACE>/sa/<SERVICE_ACCOUNT>TRUST_DOMAIN在ASM中默認為cluster.local。該字段要求開啟mTLS。如果未配置,任何身份列表都會被允許。

notPrincipals

string[]

對等身份的反向匹配列表。

requestPrincipals

string[]

一個請求身份列表。該值從請求的JWT中生成。請求身份的格式為<ISS>/<SUB>,例如example.com/sub-1。該字段要求開啟請求認證。如果未配置,任何請求身份都會被允許。

配置為*表示請求必須攜帶JWT。若不配置,表示請求可以不攜帶JWT。

notRequestPrincipals

string[]

請求身份的反向匹配列表。

namespaces

string[]

一個命名空間列表。該字段要求開啟mTLS。如果未配置,任意命名空間都會被允許。

notNamespaces

string[]

命名空間的反向匹配列表。

ipBlocks

string[]

一個IP Block的列表,來自IP包的源地址。支持單個IP(例如1.2.X.X)和CIDR(例如1.2.X.X/24)。如果未配置,任意IP都會被允許。

notIpBlocks

string[]

IP Block的反向匹配列表。

remoteIpBlocks

string[]

一個IP Block的列表,來自X-Forewarded-For請求頭或者代理協議。支持單個IP(例如1.2.X.X)和CIDR(例如1.2.X.X/24)。如果未配置,任意IP都會被允許。

notRemoteIpBlocks

string[]

RemoteIp Block的反向匹配列表。

Rule.To

To字段包含一個operations列表。

字段

類型

是否必選

說明

operation

Operation

指定一個請求的操作。

Operation

Operation指定一個請求的操作。Operation中的不同字段之間是AND的關系。如下示例中,Operation配置會匹配到Host后綴為.example.com,請求方法為GET或者HEAD”,且請求路徑不以/admin開頭的請求。

hosts: ["*.example.com"]
methods: ["GET", "HEAD"]
notPaths: ["/admin*"]

字段

類型

是否必選

說明

hosts

string[]

一個基于HTTP請求Hosts列表。匹配不區分大小寫。如果未配置,任意Host都會被允許。該字段僅適用于HTTP協議。

notHosts

string[]

Hosts的反向匹配列表。匹配時不區分大小寫。

ports

string[]

連接的端口列表。如果未配置,任意端口都會被允許。

notPorts

string[]

端口的反向匹配列表。

methods

string[]

一個HTTP請求的方法列表。對于gRPC請求,該字段為POST。如果未配置,任意方法都會被允許。該字段僅適用于HTTP協議。

notMethods

string[]

方法的反向匹配列表。

paths

string[]

一個HTTP請求路徑的列表。對于gRPC服務,路徑格式為/package.service/method

notPaths

string[]

路徑的反向匹配列表。

Condition

Condition指定請求的一些其他屬性。

字段

類型

是否必選

說明

key

string

Istio屬性的名稱。更多信息,請參見支持的屬性列表

values

string[]

否,但必須至少配置一個。

一個允許的屬性值列表。

notValues

string[]

一個允許的屬性值的反向匹配列表。

AuthorizationPolicy.ExtensionProvider

字段

類型

是否必選

說明

name

string

指定自定義授權服務的名稱。您需要在ASM控制臺自定義授權服務頁面配置。不同的Workload可以指定不同的自定義授權服務。更多信息,請參見自定義授權

AuthorizationPolicy.Action

Action指定要求請求指定的動作。

字段

說明

ALLOW

默認值,允許被Rules匹配到的請求通過。

DENY

拒絕被Rules匹配到的請求。

CUSTOM

對匹配到的請求執行自定義授權服務。您需要先在ASM控制臺自定義授權服務頁面配置。匹配到的請求會由指定的自定義授權服務決定是否放行。更多信息,請參見自定義授權

自定義授權服務決定通過(ALLOW)一個請求后,不代表該請求一定會通過。如果有其他ALLOW或者DENY規則匹配到該請求,該請求需要遵從這些規則。關于生效的優先級,請參見授權策略介紹