自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

什么是策略即代碼?開放策略代理簡(jiǎn)介

譯文 精選
云計(jì)算
OPA 提供了一種高級(jí)聲明性語(yǔ)言(Rego,專為策略構(gòu)建),允許您將策略指定為代碼。因此,您可以在微服務(wù)、Kubernetes、CI/CD、API 網(wǎng)關(guān)等中定義、實(shí)施和實(shí)施策略。

在云原生時(shí)代,我們經(jīng)常聽到“沒(méi)有安全,就沒(méi)有一切”,這意味著安全比任何事情都重要。

現(xiàn)代基礎(chǔ)設(shè)施和解決方案讓我們受益匪淺,但與此同時(shí),由于有更多的應(yīng)用服務(wù),所以會(huì)有更多的事情需要擔(dān)心:比如如何控制對(duì)基礎(chǔ)設(shè)施的訪問(wèn)?如何控制服務(wù)之間的訪問(wèn)?每個(gè)人的訪問(wèn)權(quán)限等。

在眾多需要回答的問(wèn)題中,還包括策略方面的:比如一大堆的安全規(guī)則、標(biāo)準(zhǔn)和條件。比如:

誰(shuí)可以訪問(wèn)此資源?

允許來(lái)自哪個(gè)子網(wǎng)出口流量?

工作負(fù)載必須部署到哪些集群?

哪些協(xié)議不允許用于從互聯(lián)網(wǎng)訪問(wèn)的服務(wù)器?

可以從哪些注冊(cè)表二進(jìn)制文件下載?

容器可以使用哪些操作系統(tǒng)執(zhí)行功能?

一天中的哪些時(shí)間可以訪問(wèn)系統(tǒng)?

所有組織都有策略,因?yàn)樗鼈兠鞔_了有關(guān)遵守法律要求、在技術(shù)約束下工作、避免重復(fù)錯(cuò)誤等重要知識(shí)。

為什么選擇策略即代碼?

策略是基于滲透到組織文化中的成文或不成文的規(guī)則。因此,假如我們的組織有一條書面規(guī)則明確要求:

對(duì)于從Internet上公共子網(wǎng)訪問(wèn)的服務(wù)器,使用不安全的“HTTP”協(xié)議公開端口不是一個(gè)好的做法。

那么我們應(yīng)該如何執(zhí)行它?

如果我們手動(dòng)創(chuàng)建基礎(chǔ)設(shè)施,“四眼原則”可能會(huì)有所幫助。但前提是在做關(guān)鍵事情時(shí),總是有第二個(gè)人在一起。

如果我們使用基礎(chǔ)設(shè)施即代碼,并使用 Terraform 等工具自動(dòng)創(chuàng)建基礎(chǔ)設(shè)施,那么代碼審查可能會(huì)有所幫助。

但是,傳統(tǒng)的策略實(shí)施過(guò)程有幾個(gè)明顯的缺點(diǎn):

不能保證此政策永遠(yuǎn)不會(huì)被打破。人們無(wú)法始終了解所有策略,并且根據(jù)策略列表進(jìn)行手動(dòng)檢查是不切實(shí)際的。對(duì)于代碼審查,即使是高級(jí)工程師也不太可能每次都發(fā)現(xiàn)所有潛在問(wèn)題。

現(xiàn)代組織是敏捷的,這意味著員工、服務(wù)和團(tuán)隊(duì)都在持續(xù)增長(zhǎng),無(wú)法讓安全團(tuán)隊(duì)使用傳統(tǒng)技術(shù)來(lái)保護(hù)所有資產(chǎn)。

由于人為錯(cuò)誤,政策遲早會(huì)被違反。這不是“如果”的問(wèn)題,而是“何時(shí)”的問(wèn)題。這也正是大多數(shù)組織在主要版本發(fā)布之前進(jìn)行定期安全檢查和合規(guī)性審查的原因--我們首先違反政策,然后創(chuàng)建事后修復(fù)。

這樣做不太科學(xué)。那么,管理和實(shí)施策略的正確方法是什么?

什么是策略即代碼 (PaC)?

隨著業(yè)務(wù)、團(tuán)隊(duì)成熟度的發(fā)展,我們希望從手動(dòng)定義策略,轉(zhuǎn)變?yōu)閺钠髽I(yè)層面上更易于管理和可重復(fù)的定義策略。

如何做到這一點(diǎn)?首先,我們可以從大規(guī)模管理系統(tǒng)的成功實(shí)驗(yàn)中學(xué)習(xí):

基礎(chǔ)結(jié)構(gòu)即代碼 (IaC):將定義環(huán)境和基礎(chǔ)結(jié)構(gòu)的內(nèi)容視為源代碼。

DevOps:人員、流程和自動(dòng)化的結(jié)合,實(shí)現(xiàn)“持續(xù)的一切”,持續(xù)為最終用戶提供價(jià)值。

策略即代碼(PaC)誕生于這些想法。

策略即代碼使用代碼來(lái)定義和管理策略,這些策略是規(guī)則和條件。使用代碼和利用源代碼管理 (SCM) 工具定義、更新、共享和實(shí)施策略。通過(guò)將策略定義保留在源代碼控制中,無(wú)論何時(shí)進(jìn)行更改,都可以對(duì)其進(jìn)行測(cè)試、驗(yàn)證,然后執(zhí)行。PaC 的目標(biāo)不是檢測(cè)違反策略的行為,而是防止它們犯錯(cuò)誤。這利用了 DevOps 自動(dòng)化功能,而不是依賴手動(dòng)流程,使團(tuán)隊(duì)能夠更快地行動(dòng),并減少由于人為錯(cuò)誤而導(dǎo)致錯(cuò)誤的可能性。

策略即代碼與基礎(chǔ)結(jié)構(gòu)即代碼

“即代碼”運(yùn)動(dòng)并不是新鮮事務(wù),它的目標(biāo)是“連續(xù)的一切”。PaC 的概念可能聽起來(lái)類似于基礎(chǔ)結(jié)構(gòu)即代碼 (IaC),但 IaC 側(cè)重于基礎(chǔ)結(jié)構(gòu)和預(yù)配,而 PaC 改進(jìn)了安全操作、合規(guī)性管理、數(shù)據(jù)管理等。

PaC 可以與 IaC 集成,以自動(dòng)實(shí)施基礎(chǔ)結(jié)構(gòu)策略。

現(xiàn)在我們已經(jīng)解決了 PaC 與 IaC 的問(wèn)題,讓我們看一下實(shí)現(xiàn) PaC 的工具。

開放策略代理 (OPA) 簡(jiǎn)介

開放策略代理(OPA,發(fā)音為“oh-pa”)是云原生計(jì)算基金會(huì)孵化項(xiàng)目。它是一個(gè)開源的通用策略引擎,旨在為將策略即代碼應(yīng)用于任何領(lǐng)域提供通用框架。

OPA 提供了一種高級(jí)聲明性語(yǔ)言(Rego,發(fā)音為“ray-go”,專為策略構(gòu)建),允許您將策略指定為代碼。因此,您可以在微服務(wù)、Kubernetes、CI/CD、API 網(wǎng)關(guān)等中定義、實(shí)施和實(shí)施策略。

簡(jiǎn)而言之,OPA的工作方式是將決策與政策執(zhí)行脫鉤。當(dāng)需要做出策略決策時(shí),使用結(jié)構(gòu)化數(shù)據(jù)(例如 JSON)作為輸入來(lái)查詢 OPA,然后 OPA 返回決策:

先決條件

要開始使用,請(qǐng)從 GitHub 版本下載適用于您的平臺(tái)的 OPA 二進(jìn)制文件:

在 macOS(64 位)上:

在 M1 Mac 上測(cè)試,也可以工作。

規(guī)范

讓我們從一個(gè)簡(jiǎn)單的示例開始,為虛構(gòu)的工資單微服務(wù)實(shí)現(xiàn)基于訪問(wèn)的訪問(wèn)控制 (ABAC)。

規(guī)則很簡(jiǎn)單:您只能訪問(wèn)您的工資信息或下屬的工資信息,而不能訪問(wèn)其他任何人的工資信息。因此,如果是您自己的,或者是您下屬的,那么以訪問(wèn)以下內(nèi)容:bob john

  • /getSalary/bob
  • /getSalary/john

但是不能以用戶身份訪問(wèn):/getSalary/alicebob

輸入數(shù)據(jù)和Rego文件

假設(shè)我們有結(jié)構(gòu)化輸入數(shù)據(jù)(文件):input.json

讓我們創(chuàng)建一個(gè)Rego文件。在這里,注釋會(huì)讓你很好地理解這段代碼的作用:

文件:example.rego

運(yùn)行

以下值應(yīng)計(jì)算為:true

改變輸入中的路徑.json文件到"path": ["getSalary", "john"],它的值仍然為“true”,因?yàn)榈诙l規(guī)則允許經(jīng)理查看下屬的工資。

但是,如果我們改變輸入的路徑.json文件到"path": ["getSalary", "alice"],結(jié)果就是false。

策略即代碼集成

上面的例子非常簡(jiǎn)單,只對(duì)掌握 OPA 工作原理的基礎(chǔ)知識(shí)有用。但是 OPA 功能很強(qiáng)大,可以與當(dāng)今許多主流工具和平臺(tái)集成,例如:

Kubernetes

Envoy

AWS CloudFormation

Docker

Terraform

Kafka

Ceph

等等。

為了快速演示 OPA 的功能,下面是在 AWS 上定義自動(dòng)擴(kuò)展組和服務(wù)器的 Terraform 代碼示例:

使用此 Rego 代碼,我們可以根據(jù) Terraform 計(jì)劃計(jì)算分?jǐn)?shù),并根據(jù)策略返回決策。自動(dòng)化該過(guò)程非常容易:

terraform plan -out tfplan以創(chuàng)建Terraform規(guī)劃

terraform show -json tfplan | jq > tfplan.json將計(jì)劃轉(zhuǎn)換為 JSON 格式

opa exec --decision terraform/analysis/authz --bundle policy/ tfplan.json以獲得結(jié)果。

責(zé)任編輯:趙立京
相關(guān)推薦

2020-09-15 10:28:42

Kubernetes容器

2020-08-10 11:06:19

開放式策略代理OPA云原生

2024-12-09 09:40:00

策略模式Java

2011-07-22 09:31:11

2022-09-30 00:00:00

云計(jì)算自動(dòng)化IT

2021-07-08 18:02:50

DevOps 發(fā)布策略阿里云

2024-09-27 09:48:28

2022-02-13 00:13:26

云安全數(shù)據(jù)安全

2011-07-22 10:51:51

2009-06-22 13:41:00

Java開放源代碼Sun

2021-02-01 09:00:00

微服務(wù)身份驗(yàn)證授權(quán)

2020-04-17 19:41:57

基礎(chǔ)架構(gòu)即代碼平臺(tái)即代碼云計(jì)算

2018-11-21 09:22:54

策略梯度算法機(jī)器學(xué)習(xí)強(qiáng)化學(xué)習(xí)

2011-12-12 15:12:56

開放平臺(tái)

2013-09-09 09:43:13

Windows即服務(wù)

2010-09-01 09:08:31

VMwareIT即服務(wù)

2010-05-06 12:44:47

Oracle數(shù)據(jù)庫(kù)

2009-11-24 09:26:31

pbr策略路由

2021-07-20 10:49:39

NaaS網(wǎng)絡(luò)服務(wù)

2022-04-28 21:28:54

FaaS功能即服務(wù)云計(jì)算服務(wù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)