日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
什么是策略即代碼?開放策略代理簡介

什么是策略即代碼?開放策略代理簡介

譯文 精選 2023-02-03 17:37:08

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

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

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

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

誰可以訪問此資源?

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

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

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

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

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

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

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

為什么選擇策略即代碼?

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

對于從Internet上公共子網(wǎng)訪問的服務(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í)施過程有幾個(gè)明顯的缺點(diǎn):

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

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

由于人為錯(cuò)誤,政策遲早會(huì)被違反。這不是“如果”的問題,而是“何時(shí)”的問題。這也正是大多數(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)誕生于這些想法。

策略即代碼使用代碼來定義和管理策略,這些策略是規(guī)則和條件。使用代碼和利用源代碼管理 (SCM) 工具定義、更新、共享和實(shí)施策略。通過將策略定義保留在源代碼控制中,無論何時(shí)進(jìn)行更改,都可以對其進(jìn)行測試、驗(yàn)證,然后執(zhí)行。PaC 的目標(biāo)不是檢測違反策略的行為,而是防止它們犯錯(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 的概念可能聽起來類似于基礎(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 的問題,讓我們看一下實(shí)現(xiàn) PaC 的工具。

開放策略代理 (OPA) 簡介

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

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

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

先決條件

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

在 macOS(64 位)上:

在 M1 Mac 上測試,也可以工作。

規(guī)范

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

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

  • /getSalary/bob
  • /getSalary/john

但是不能以用戶身份訪問:/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。

策略即代碼集成

上面的例子非常簡單,只對掌握 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)化該過程非常容易:

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é)果。


網(wǎng)頁題目:什么是策略即代碼?開放策略代理簡介
分享網(wǎng)址:http://www.dlmjj.cn/article/cohjopp.html