{"id":809,"date":"2026-03-18T02:08:59","date_gmt":"2026-03-18T01:08:59","guid":{"rendered":"https:\/\/secure-pipelines.com\/ci-cd-security\/ci-cd-policy-engines-compared-opa-kyverno-sentinel-cedar-2\/"},"modified":"2026-03-25T09:47:46","modified_gmt":"2026-03-25T08:47:46","slug":"ci-cd-policy-engines-compared-opa-kyverno-sentinel-cedar","status":"publish","type":"post","link":"https:\/\/secure-pipelines.com\/ar\/ci-cd-security\/ci-cd-policy-engines-compared-opa-kyverno-sentinel-cedar\/","title":{"rendered":"\u0645\u0642\u0627\u0631\u0646\u0629 \u0645\u062d\u0631\u0643\u0627\u062a \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0641\u064a CI\/CD: OPA \u0645\u0642\u0627\u0628\u0644 Kyverno \u0645\u0642\u0627\u0628\u0644 Sentinel \u0645\u0642\u0627\u0628\u0644 Cedar"},"content":{"rendered":"<h2>\u0645\u0642\u062f\u0645\u0629: \u0644\u0645\u0627\u0630\u0627 \u062a\u064f\u0639\u062a\u0628\u0631 \u0645\u062d\u0631\u0643\u0627\u062a \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0645\u0647\u0645\u0629 \u0644\u0623\u0646\u0627\u0628\u064a\u0628 CI\/CD<\/h2>\n<p>\u062a\u0639\u0645\u0644 \u0623\u0646\u0627\u0628\u064a\u0628 CI\/CD \u0627\u0644\u062d\u062f\u064a\u062b\u0629 \u0628\u0633\u0631\u0639\u0629 \u0643\u0628\u064a\u0631\u0629. \u062a\u064f\u0646\u0641\u0651\u0630 \u0627\u0644\u0641\u0631\u0642 \u0639\u0634\u0631\u0627\u062a \u2014 \u0648\u0623\u062d\u064a\u0627\u0646\u0627\u064b \u0645\u0626\u0627\u062a \u2014 \u0639\u0645\u0644\u064a\u0627\u062a \u0627\u0644\u0646\u0634\u0631 \u064a\u0648\u0645\u064a\u0627\u064b\u060c \u0648\u0643\u0644 \u0639\u0645\u0644\u064a\u0629 \u0646\u0634\u0631 \u062a\u062d\u0645\u0644 \u0642\u0631\u0627\u0631\u0627\u062a \u062a\u0647\u064a\u0626\u0629 \u062a\u0624\u062b\u0631 \u0639\u0644\u0649 \u0627\u0644\u0623\u0645\u0627\u0646 \u0648\u0627\u0644\u0627\u0645\u062a\u062b\u0627\u0644 \u0648\u0627\u0644\u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0627\u0644\u062a\u0634\u063a\u064a\u0644\u064a. \u064a\u0645\u0643\u0646 \u0644\u0645\u0644\u0641 Kubernetes manifest \u0648\u0627\u062d\u062f \u062e\u0627\u0637\u0626 \u0627\u0644\u062a\u0647\u064a\u0626\u0629\u060c \u0623\u0648 \u062f\u0648\u0631 IAM \u0645\u0641\u0631\u0637 \u0627\u0644\u0635\u0644\u0627\u062d\u064a\u0627\u062a \u0641\u064a Terraform\u060c \u0623\u0648 \u0635\u0648\u0631\u0629 \u062d\u0627\u0648\u064a\u0629 \u0645\u0633\u062d\u0648\u0628\u0629 \u0645\u0646 \u0633\u062c\u0644 \u063a\u064a\u0631 \u0645\u0648\u062b\u0648\u0642 \u0623\u0646 \u064a\u0643\u0634\u0641 \u0628\u0646\u064a\u062a\u0643 \u0627\u0644\u062a\u062d\u062a\u064a\u0629 \u0628\u0627\u0644\u0643\u0627\u0645\u0644.<\/p>\n<p>\u0644\u0627 \u062a\u0633\u062a\u0637\u064a\u0639 \u0645\u0631\u0627\u062c\u0639\u0627\u062a \u0627\u0644\u0643\u0648\u062f \u0627\u0644\u064a\u062f\u0648\u064a\u0629 \u0645\u0648\u0627\u0643\u0628\u0629 \u0647\u0630\u0647 \u0627\u0644\u0648\u062a\u064a\u0631\u0629. \u062d\u062a\u0649 \u0623\u0643\u062b\u0631 \u0645\u0647\u0646\u062f\u0633\u064a \u0627\u0644\u0623\u0645\u0627\u0646 \u062d\u0631\u0635\u0627\u064b \u0633\u064a\u0641\u0648\u062a\u0647 \u0628\u0639\u0636 \u0627\u0644\u0623\u0645\u0648\u0631 \u0639\u0646\u062f \u0645\u0631\u0627\u062c\u0639\u0629 \u0645\u0626\u0627\u062a \u0637\u0644\u0628\u0627\u062a \u0627\u0644\u0633\u062d\u0628 \u0623\u0633\u0628\u0648\u0639\u064a\u0627\u064b. \u0647\u0646\u0627 \u064a\u0623\u062a\u064a \u062f\u0648\u0631 <strong>\u0645\u062d\u0631\u0643\u0627\u062a \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a<\/strong>: \u0623\u062f\u0648\u0627\u062a \u0622\u0644\u064a\u0629 \u062a\u064f\u0642\u064a\u0651\u0645 \u0627\u0644\u0628\u0646\u064a\u0629 \u0627\u0644\u062a\u062d\u062a\u064a\u0629 \u0643\u0643\u0648\u062f\u060c \u0648\u0645\u0644\u0641\u0627\u062a \u0627\u0644\u0646\u0634\u0631\u060c \u0648\u062a\u0647\u064a\u0626\u0627\u062a \u0627\u0644\u0623\u0646\u0627\u0628\u064a\u0628 \u0648\u0641\u0642\u0627\u064b \u0644\u0645\u062c\u0645\u0648\u0639\u0629 \u062a\u0635\u0631\u064a\u062d\u064a\u0629 \u0645\u0646 \u0627\u0644\u0642\u0648\u0627\u0639\u062f \u2014 \u0648\u062a\u0645\u0646\u0639 \u0627\u0644\u0645\u062e\u0627\u0644\u0641\u0627\u062a \u0642\u0628\u0644 \u0623\u0646 \u062a\u0635\u0644 \u0625\u0644\u0649 \u0628\u064a\u0626\u0629 \u0627\u0644\u0625\u0646\u062a\u0627\u062c.<\/p>\n<p>\u062a\u064f\u062d\u0648\u0651\u0644 \u0645\u062d\u0631\u0643\u0627\u062a \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0627\u0644\u0623\u0645\u0627\u0646 \u0645\u0646 \u0639\u0646\u0642 \u0632\u062c\u0627\u062c\u0629 \u0625\u0644\u0649 \u062d\u0627\u062c\u0632 \u062d\u0645\u0627\u064a\u0629. \u0628\u062f\u0644\u0627\u064b \u0645\u0646 \u0625\u0628\u0637\u0627\u0621 \u0627\u0644\u0645\u0637\u0648\u0631\u064a\u0646 \u0628\u0628\u0648\u0627\u0628\u0627\u062a \u0645\u0648\u0627\u0641\u0642\u0629 \u064a\u062f\u0648\u064a\u0629\u060c \u062a\u0648\u0641\u0631 \u0645\u0644\u0627\u062d\u0638\u0627\u062a \u0641\u0648\u0631\u064a\u0629 \u0648\u062d\u062a\u0645\u064a\u0629 \u0641\u064a \u0623\u0646\u0628\u0648\u0628 CI \u0646\u0641\u0633\u0647. \u0647\u0644 \u062f\u0641\u0639 \u0645\u0637\u0648\u0631 \u062e\u0637\u0629 Terraform \u062a\u0645\u0646\u062d \u0635\u0644\u0627\u062d\u064a\u0627\u062a <code>s3:*<\/code>\u061f \u064a\u0641\u0634\u0644 \u0627\u0644\u0623\u0646\u0628\u0648\u0628 \u0645\u0639 \u0631\u0633\u0627\u0644\u0629 \u0648\u0627\u0636\u062d\u0629 \u062a\u0634\u0631\u062d \u0627\u0644\u0633\u0628\u0628. \u0647\u0644 \u064a\u064f\u0634\u063a\u0651\u0644 \u0645\u0644\u0641 Kubernetes manifest \u062d\u0627\u0648\u064a\u0629 \u0628\u0635\u0644\u0627\u062d\u064a\u0627\u062a root\u061f \u064a\u064f\u062d\u0638\u0631 \u0642\u0628\u0644 \u0623\u0646 \u064a\u0635\u0644 \u0625\u0644\u0649 \u0627\u0644\u0639\u0646\u0642\u0648\u062f.<\/p>\n<p>\u0644\u0643\u0646 \u0645\u0634\u0647\u062f \u0645\u062d\u0631\u0643\u0627\u062a \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0642\u062f \u0646\u0645\u0627 \u0628\u0633\u0631\u0639\u0629\u060c \u0648\u0627\u062e\u062a\u064a\u0627\u0631 \u0627\u0644\u0645\u062d\u0631\u0643 \u0627\u0644\u0645\u0646\u0627\u0633\u0628 \u2014 \u0623\u0648 \u0627\u0644\u0645\u062c\u0645\u0648\u0639\u0629 \u0627\u0644\u0645\u0646\u0627\u0633\u0628\u0629 \u2014 \u0644\u064a\u0633 \u0623\u0645\u0631\u0627\u064b \u0628\u0633\u064a\u0637\u0627\u064b. \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u062f\u0644\u064a\u0644\u060c \u0646\u0642\u0627\u0631\u0646 \u0623\u0631\u0628\u0639\u0629 \u0645\u062d\u0631\u0643\u0627\u062a \u0633\u064a\u0627\u0633\u0627\u062a \u0631\u0627\u0626\u062f\u0629: <strong>Open Policy Agent (OPA)<\/strong> \u0648<strong>Kyverno<\/strong> \u0648<strong>HashiCorp Sentinel<\/strong> \u0648<strong>AWS Cedar<\/strong>. \u0633\u0646\u0641\u062d\u0635 \u0643\u0644\u0627\u064b \u0645\u0646\u0647\u0627 \u0628\u0639\u0645\u0642\u060c \u0648\u0646\u0642\u0627\u0631\u0646\u0647\u0627 \u0639\u0628\u0631 \u0627\u0644\u0623\u0628\u0639\u0627\u062f \u0627\u0644\u0623\u0643\u062b\u0631 \u0623\u0647\u0645\u064a\u0629 \u0644\u0623\u0645\u0627\u0646 CI\/CD\u060c \u0648\u0646\u0648\u0641\u0631 \u0645\u0635\u0641\u0648\u0641\u0629 \u0642\u0631\u0627\u0631 \u0644\u0645\u0633\u0627\u0639\u062f\u062a\u0643 \u0641\u064a \u0627\u0644\u0627\u062e\u062a\u064a\u0627\u0631.<\/p>\n<h2>Open Policy Agent (OPA) \u0648\u0644\u063a\u0629 Rego<\/h2>\n<h3>\u0646\u0638\u0631\u0629 \u0639\u0627\u0645\u0629<\/h3>\n<p><a href=\"https:\/\/www.openpolicyagent.org\/\" target=\"_blank\" rel=\"noopener\">Open Policy Agent (OPA)<\/a> \u0647\u0648 \u0645\u062d\u0631\u0643 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0627\u0644\u0639\u0627\u0645 \u0627\u0644\u0623\u0643\u062b\u0631 \u0631\u0633\u0648\u062e\u0627\u064b \u0641\u064a \u0627\u0644\u0646\u0638\u0627\u0645 \u0627\u0644\u0628\u064a\u0626\u064a \u0627\u0644\u0633\u062d\u0627\u0628\u064a \u0627\u0644\u0623\u0635\u0644\u064a. \u0623\u0646\u0634\u0623\u062a\u0647 \u0634\u0631\u0643\u0629 Styra \u0641\u064a \u0627\u0644\u0623\u0635\u0644 \u0648\u062a\u0628\u0631\u0639\u062a \u0628\u0647 \u0644\u0645\u0624\u0633\u0633\u0629 Cloud Native Computing Foundation (CNCF)\u060c \u0648\u062a\u062e\u0631\u0651\u062c OPA \u0643\u0645\u0634\u0631\u0648\u0639 CNCF \u0641\u064a \u0639\u0627\u0645 2021. \u0635\u064f\u0645\u0651\u0645 \u0644\u0641\u0635\u0644 \u0642\u0631\u0627\u0631\u0627\u062a \u0627\u0644\u0633\u064a\u0627\u0633\u0629 \u0639\u0646 \u0645\u0646\u0637\u0642 \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u0645\u0646 \u062e\u0644\u0627\u0644 \u062a\u0648\u0641\u064a\u0631 \u0645\u062d\u0631\u0643 \u062e\u0641\u064a\u0641 \u0627\u0644\u0648\u0632\u0646 \u0648\u0639\u0627\u0644\u064a \u0627\u0644\u0623\u062f\u0627\u0621 \u064a\u0645\u0643\u0646 \u062a\u0636\u0645\u064a\u0646\u0647 \u0643\u062d\u0627\u0648\u064a\u0629 \u062c\u0627\u0646\u0628\u064a\u0629 \u0623\u0648 \u0645\u0643\u062a\u0628\u0629 \u0623\u0648 \u062e\u062f\u0645\u0629 \u0645\u0633\u062a\u0642\u0644\u0629.<\/p>\n<p>\u064a\u0633\u062a\u062e\u062f\u0645 OPA \u0644\u063a\u0629 <strong>Rego<\/strong>\u060c \u0648\u0647\u064a \u0644\u063a\u0629 \u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u062a\u0635\u0631\u064a\u062d\u064a\u0629 \u0645\u062e\u0635\u0635\u0629 \u0645\u0633\u062a\u0648\u062d\u0627\u0629 \u0645\u0646 Datalog. \u062a\u0639\u0645\u0644 \u0633\u064a\u0627\u0633\u0627\u062a Rego \u0639\u0644\u0649 \u0628\u064a\u0627\u0646\u0627\u062a \u0645\u064f\u0647\u064a\u0643\u0644\u0629 (JSON\/YAML)\u060c \u0645\u0645\u0627 \u064a\u062c\u0639\u0644\u0647\u0627 \u0642\u0627\u0628\u0644\u0629 \u0644\u0644\u062a\u0637\u0628\u064a\u0642 \u0639\u0644\u0649 \u0623\u064a \u0645\u062c\u0627\u0644 \u062a\u0642\u0631\u064a\u0628\u0627\u064b: \u0627\u0644\u062a\u062d\u0643\u0645 \u0641\u064a \u0642\u0628\u0648\u0644 Kubernetes\u060c \u0648\u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u062e\u0637\u0637 Terraform\u060c \u0648\u062a\u0641\u0648\u064a\u0636 API\u060c \u0648\u0625\u0646\u0641\u0627\u0630 \u0623\u0646\u0627\u0628\u064a\u0628 CI\/CD\u060c \u0648\u0627\u0644\u0645\u0632\u064a\u062f.<\/p>\n<h3>\u0644\u063a\u0629 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a: Rego<\/h3>\n<p>\u0644\u063a\u0629 Rego \u0642\u0648\u064a\u0629 \u0644\u0643\u0646 \u0644\u0647\u0627 \u0645\u0646\u062d\u0646\u0649 \u062a\u0639\u0644\u0651\u0645 \u062d\u0642\u064a\u0642\u064a. \u0625\u0646\u0647\u0627 \u0644\u063a\u0629 \u0628\u0631\u0645\u062c\u0629 \u0645\u0646\u0637\u0642\u064a\u0629 \u062d\u064a\u062b \u062a\u064f\u0639\u0631\u0651\u0641 \u0627\u0644\u0642\u0648\u0627\u0639\u062f \u0643\u0639\u0628\u0627\u0631\u0627\u062a \u0645\u0646\u0637\u0642\u064a\u0629 \u0628\u062f\u0644\u0627\u064b \u0645\u0646 \u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0625\u062c\u0631\u0627\u0626\u064a\u0629. \u0641\u064a\u0645\u0627 \u064a\u0644\u064a \u0645\u062b\u0627\u0644 \u0628\u0633\u064a\u0637 \u064a\u0631\u0641\u0636 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0627\u0644\u062a\u064a \u062a\u0639\u0645\u0644 \u0628\u0635\u0644\u0627\u062d\u064a\u0627\u062a root:<\/p>\n<pre><code>package kubernetes.admission\n\ndeny[msg] {\n    input.request.kind.kind == \"Pod\"\n    container := input.request.object.spec.containers[_]\n    container.securityContext.runAsUser == 0\n    msg := sprintf(\"Container '%v' must not run as root\", [container.name])\n}<\/code><\/pre>\n<p>\u0627\u0644\u0623\u0633\u0644\u0648\u0628 \u0627\u0644\u062a\u0635\u0631\u064a\u062d\u064a \u0623\u0646\u064a\u0642 \u0628\u0645\u062c\u0631\u062f \u0627\u0633\u062a\u064a\u0639\u0627\u0628\u0647\u060c \u0644\u0643\u0646 \u0627\u0644\u0645\u0637\u0648\u0631\u064a\u0646 \u0627\u0644\u0645\u0639\u062a\u0627\u062f\u064a\u0646 \u0639\u0644\u0649 \u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u0625\u062c\u0631\u0627\u0626\u064a\u0629 \u063a\u0627\u0644\u0628\u0627\u064b \u0645\u0627 \u064a\u0648\u0627\u062c\u0647\u0648\u0646 \u0635\u0639\u0648\u0628\u0629 \u0645\u0639 \u0646\u0645\u0648\u0630\u062c \u062a\u0642\u064a\u064a\u0645 Rego \u2014 \u062e\u0627\u0635\u0629 \u0641\u064a\u0645\u0627 \u064a\u062a\u0639\u0644\u0642 \u0628\u0627\u0644\u062a\u0642\u064a\u064a\u0645 \u0627\u0644\u062c\u0632\u0626\u064a \u0648\u0627\u0633\u062a\u064a\u0639\u0627\u0628 \u0627\u0644\u0645\u062c\u0645\u0648\u0639\u0627\u062a \u0648\u0627\u0644\u062a\u0643\u0631\u0627\u0631 \u0627\u0644\u0636\u0645\u0646\u064a \u0639\u0628\u0631 \u0627\u0644\u0645\u062c\u0645\u0648\u0639\u0627\u062a \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0635\u064a\u063a\u0629 <code>[_]<\/code>.<\/p>\n<h3>\u062a\u0643\u0627\u0645\u0644 CI\/CD \u0645\u0639 Conftest<\/h3>\n<p><a href=\"https:\/\/www.conftest.dev\/\" target=\"_blank\" rel=\"noopener\">Conftest<\/a> \u0647\u0648 \u062d\u0644 OPA \u0644\u062a\u0643\u0627\u0645\u0644 CI\/CD. \u0625\u0646\u0647 \u0623\u062f\u0627\u0629 \u0633\u0637\u0631 \u0623\u0648\u0627\u0645\u0631 \u062a\u064f\u0634\u063a\u0651\u0644 \u0633\u064a\u0627\u0633\u0627\u062a OPA \u0639\u0644\u0649 \u0645\u0644\u0641\u0627\u062a \u0627\u0644\u062a\u0647\u064a\u0626\u0629 \u0627\u0644\u0645\u064f\u0647\u064a\u0643\u0644\u0629 \u2014 Kubernetes YAML \u0648\u062e\u0637\u0637 Terraform \u0648Dockerfiles \u0648\u0627\u0644\u0645\u0632\u064a\u062f. \u062a\u0628\u062f\u0648 \u062e\u0637\u0648\u0629 CI \u0627\u0644\u0646\u0645\u0648\u0630\u062c\u064a\u0629 \u0643\u0627\u0644\u062a\u0627\u0644\u064a:<\/p>\n<pre><code>conftest test deployment.yaml --policy .\/policies\/ --output json<\/code><\/pre>\n<p>\u064a\u062f\u0639\u0645 Conftest \u0635\u064a\u063a \u0625\u062f\u062e\u0627\u0644 \u0645\u062a\u0639\u062f\u062f\u0629 \u062c\u0627\u0647\u0632\u0629 \u0644\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645\u060c \u0648\u064a\u0645\u0643\u0646\u0647 \u0633\u062d\u0628 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0645\u0646 \u0633\u062c\u0644\u0627\u062a OCI (\u0645\u0645\u0627 \u064a\u062a\u064a\u062d \u0627\u0644\u062a\u0648\u0632\u064a\u0639 \u0627\u0644\u0645\u0631\u0643\u0632\u064a \u0644\u0644\u0633\u064a\u0627\u0633\u0627\u062a)\u060c \u0648\u064a\u062a\u0643\u0627\u0645\u0644 \u0628\u0633\u0644\u0627\u0633\u0629 \u0645\u0639 \u0623\u064a \u0646\u0638\u0627\u0645 CI \u064a\u0645\u0643\u0646\u0647 \u062a\u0634\u063a\u064a\u0644 \u0623\u0645\u0631 shell. \u0644\u0644\u0627\u0637\u0644\u0627\u0639 \u0639\u0644\u0649 \u0634\u0631\u062d \u0639\u0645\u0644\u064a \u062a\u0641\u0635\u064a\u0644\u064a\u060c \u0631\u0627\u062c\u0639 \u0645\u0642\u0627\u0644\u0646\u0627 <a href=\"https:\/\/secure-pipelines.com\/ci-cd-security\/lab-enforcing-kubernetes-policies-opa-conftest-ci-cd\/\">\u0645\u062e\u062a\u0628\u0631: \u0625\u0646\u0641\u0627\u0630 \u0633\u064a\u0627\u0633\u0627\u062a \u0646\u0634\u0631 Kubernetes \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 OPA Conftest \u0641\u064a CI\/CD<\/a>.<\/p>\n<h3>\u0646\u0642\u0627\u0637 \u0627\u0644\u0642\u0648\u0629<\/h3>\n<ul>\n<li><strong>\u0639\u0627\u0645 \u0627\u0644\u063a\u0631\u0636:<\/strong> \u064a\u0639\u0645\u0644 \u0639\u0628\u0631 Kubernetes \u0648Terraform \u0648\u062a\u0647\u064a\u0626\u0627\u062a CI\/CD \u0648\u062a\u0641\u0648\u064a\u0636 API \u0648\u0623\u064a \u0645\u062f\u062e\u0644 JSON\/YAML \u062a\u0642\u0631\u064a\u0628\u0627\u064b.<\/li>\n<li><strong>\u0646\u0638\u0627\u0645 \u0628\u064a\u0626\u064a \u0646\u0627\u0636\u062c:<\/strong> \u0645\u062c\u062a\u0645\u0639 \u0643\u0628\u064a\u0631\u060c \u0648\u062b\u0627\u0626\u0642 \u0634\u0627\u0645\u0644\u0629\u060c \u0645\u0643\u062a\u0628\u0627\u062a \u0633\u064a\u0627\u0633\u0627\u062a (\u0645\u062b\u0644 Rego Playground \u0648\u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0627\u0644\u0645\u0634\u062a\u0631\u0643\u0629 \u0644\u0640 Conftest).<\/li>\n<li><strong>\u0627\u0644\u0627\u062e\u062a\u0628\u0627\u0631:<\/strong> \u062f\u0639\u0645 \u0645\u0646 \u0627\u0644\u062f\u0631\u062c\u0629 \u0627\u0644\u0623\u0648\u0644\u0649 \u0644\u0627\u062e\u062a\u0628\u0627\u0631 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0627\u0644\u0648\u062d\u062f\u0648\u064a \u0645\u0639 <code>opa test<\/code>\u060c \u0628\u0645\u0627 \u0641\u064a \u0630\u0644\u0643 \u062a\u062d\u0644\u064a\u0644 \u0627\u0644\u062a\u063a\u0637\u064a\u0629.<\/li>\n<li><strong>\u0627\u0644\u0623\u062f\u0627\u0621:<\/strong> \u0645\u062d\u0631\u0643 \u062a\u0642\u064a\u064a\u0645 \u0645\u062d\u0633\u0651\u0646 \u0644\u0644\u063a\u0627\u064a\u0629 \u0645\u0639 \u062f\u0639\u0645 \u0627\u0644\u062a\u0642\u064a\u064a\u0645 \u0627\u0644\u062c\u0632\u0626\u064a \u0644\u0645\u062c\u0645\u0648\u0639\u0627\u062a \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0627\u0644\u0645\u0639\u0642\u062f\u0629.<\/li>\n<li><strong>\u062e\u0631\u064a\u062c CNCF:<\/strong> \u062d\u0648\u0643\u0645\u0629 \u0642\u0648\u064a\u0629\u060c \u0645\u062d\u0627\u064a\u062f \u062a\u062c\u0627\u0647 \u0627\u0644\u0628\u0627\u0626\u0639\u064a\u0646\u060c \u0627\u0639\u062a\u0645\u0627\u062f \u0648\u0627\u0633\u0639 \u0641\u064a \u0627\u0644\u0635\u0646\u0627\u0639\u0629.<\/li>\n<\/ul>\n<h3>\u0646\u0642\u0627\u0637 \u0627\u0644\u0636\u0639\u0641<\/h3>\n<ul>\n<li><strong>\u0645\u0646\u062d\u0646\u0649 \u062a\u0639\u0644\u0651\u0645 Rego:<\/strong> \u0627\u0644\u0644\u063a\u0629 \u063a\u064a\u0631 \u0645\u0623\u0644\u0648\u0641\u0629 \u0644\u0645\u0639\u0638\u0645 \u0627\u0644\u0645\u0637\u0648\u0631\u064a\u0646 \u0648\u062a\u062a\u0637\u0644\u0628 \u0627\u0633\u062a\u062b\u0645\u0627\u0631\u0627\u064b \u0645\u062e\u0635\u0635\u0627\u064b \u0644\u0625\u062a\u0642\u0627\u0646\u0647\u0627.<\/li>\n<li><strong>\u0644\u064a\u0633 \u0623\u0635\u0644\u064a\u0627\u064b \u0644\u0640 Kubernetes:<\/strong> \u062a\u0643\u0627\u0645\u0644 OPA \u0645\u0639 Kubernetes (\u0639\u0628\u0631 Gatekeeper) \u064a\u062a\u0637\u0644\u0628 \u062a\u0639\u0644\u0651\u0645 \u0637\u0628\u0642\u0629 \u062a\u062c\u0631\u064a\u062f \u0625\u0636\u0627\u0641\u064a\u0629 (ConstraintTemplates).<\/li>\n<li><strong>\u0627\u0644\u062a\u0635\u062d\u064a\u062d:<\/strong> \u062a\u0635\u062d\u064a\u062d \u0623\u062e\u0637\u0627\u0621 \u0633\u064a\u0627\u0633\u0627\u062a Rego \u0627\u0644\u0645\u0639\u0642\u062f\u0629 \u0642\u062f \u064a\u0643\u0648\u0646 \u0635\u0639\u0628\u0627\u064b\u060c \u0631\u063a\u0645 \u0623\u0646 \u0627\u0644\u0623\u062f\u0648\u0627\u062a \u062a\u062d\u0633\u0646\u062a \u0628\u0634\u0643\u0644 \u0645\u0644\u062d\u0648\u0638.<\/li>\n<\/ul>\n<p>\u0644\u0644\u0627\u0637\u0644\u0627\u0639 \u0639\u0644\u0649 \u062f\u0644\u064a\u0644 \u0634\u0627\u0645\u0644 \u062d\u0648\u0644 OPA \u0648Rego \u0641\u064a CI\/CD\u060c \u0631\u0627\u062c\u0639 \u0645\u0642\u0627\u0644\u0646\u0627: <a href=\"https:\/\/secure-pipelines.com\/ar\/ci-cd-security\/policy-as-code-ci-cd-opa-rego-security-gates-2\/\">\u0627\u0644\u0633\u064a\u0627\u0633\u0629 \u0643\u0643\u0648\u062f \u0641\u064a CI\/CD: \u0625\u0646\u0641\u0627\u0630 \u0628\u0648\u0627\u0628\u0627\u062a \u0627\u0644\u0623\u0645\u0627\u0646 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 OPA \u0648Rego<\/a>.<\/p>\n<h2>Kyverno<\/h2>\n<h3>\u0646\u0638\u0631\u0629 \u0639\u0627\u0645\u0629<\/h3>\n<p><a href=\"https:\/\/kyverno.io\/\" target=\"_blank\" rel=\"noopener\">Kyverno<\/a> \u0647\u0648 \u0645\u062d\u0631\u0643 \u0633\u064a\u0627\u0633\u0627\u062a \u0623\u0635\u0644\u064a \u0644\u0640 Kubernetes \u0635\u064f\u0645\u0651\u0645 \u062e\u0635\u064a\u0635\u0627\u064b \u0644\u0644\u0646\u0638\u0627\u0645 \u0627\u0644\u0628\u064a\u0626\u064a \u0644\u0640 Kubernetes. \u0623\u0635\u0628\u062d \u0645\u0634\u0631\u0648\u0639\u0627\u064b \u0641\u064a \u0645\u0631\u062d\u0644\u0629 \u0627\u0644\u0627\u062d\u062a\u0636\u0627\u0646 \u0644\u062f\u0649 CNCF \u0648\u0634\u0647\u062f \u0627\u0639\u062a\u0645\u0627\u062f\u0627\u064b \u0633\u0631\u064a\u0639\u0627\u064b \u0628\u064a\u0646 \u0627\u0644\u0641\u0631\u0642 \u0627\u0644\u062a\u064a \u062a\u0631\u064a\u062f \u0625\u0646\u0641\u0627\u0630 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u062f\u0648\u0646 \u062a\u0639\u0644\u0651\u0645 \u0644\u063a\u0629 \u0628\u0631\u0645\u062c\u0629 \u062c\u062f\u064a\u062f\u0629. \u0641\u0644\u0633\u0641\u0629 Kyverno \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629 \u0647\u064a \u0623\u0646 \u0645\u0633\u0624\u0648\u0644\u064a Kubernetes \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646\u0648\u0627 \u0642\u0627\u062f\u0631\u064a\u0646 \u0639\u0644\u0649 \u0643\u062a\u0627\u0628\u0629 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0646\u0641\u0633 YAML \u0627\u0644\u0630\u064a \u064a\u0639\u0631\u0641\u0648\u0646\u0647 \u0628\u0627\u0644\u0641\u0639\u0644.<\/p>\n<h3>\u0644\u063a\u0629 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a: YAML (\u0623\u0635\u0644\u064a\u0629 \u0644\u0640 Kubernetes)<\/h3>\n<p>\u062a\u064f\u0639\u0631\u0651\u0641 \u0633\u064a\u0627\u0633\u0627\u062a Kyverno \u0643\u0645\u0648\u0627\u0631\u062f \u0645\u062e\u0635\u0635\u0629 \u0641\u064a Kubernetes. \u0644\u0627 \u062a\u0648\u062c\u062f \u0644\u063a\u0629 \u062c\u062f\u064a\u062f\u0629 \u0644\u0644\u062a\u0639\u0644\u0651\u0645 \u2014 \u062a\u0633\u062a\u062e\u062f\u0645 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0635\u064a\u063a\u0629 YAML \u0627\u0644\u0645\u0623\u0644\u0648\u0641\u0629 \u0645\u0639 \u0645\u0637\u0627\u0628\u0642\u0629 \u0627\u0644\u0623\u0646\u0645\u0627\u0637 \u0648\u0627\u0644\u062a\u0631\u0627\u0643\u0628\u0627\u062a \u0648\u062a\u0639\u0628\u064a\u0631\u0627\u062a JMESPath \u0644\u0644\u0634\u0631\u0648\u0637. \u0641\u064a\u0645\u0627 \u064a\u0644\u064a \u0633\u064a\u0627\u0633\u0629 \u0645\u0643\u0627\u0641\u0626\u0629 \u062a\u062a\u0637\u0644\u0628 \u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0628\u062f\u0648\u0646 \u0635\u0644\u0627\u062d\u064a\u0627\u062a root:<\/p>\n<pre><code>apiVersion: kyverno.io\/v1\nkind: ClusterPolicy\nmetadata:\n  name: require-run-as-nonroot\nspec:\n  validationFailureAction: Enforce\n  rules:\n  - name: check-containers\n    match:\n      any:\n      - resources:\n          kinds:\n          - Pod\n    validate:\n      message: \"Containers must not run as root\"\n      pattern:\n        spec:\n          containers:\n          - securityContext:\n              runAsNonRoot: true<\/code><\/pre>\n<p>\u064a\u064f\u062e\u0641\u0651\u0636 \u0647\u0630\u0627 \u0627\u0644\u0646\u0647\u062c \u0627\u0644\u0642\u0627\u0626\u0645 \u0639\u0644\u0649 YAML \u0623\u0648\u0644\u0627\u064b \u062d\u0627\u062c\u0632 \u0627\u0644\u062f\u062e\u0648\u0644 \u0628\u0634\u0643\u0644 \u0643\u0628\u064a\u0631. \u064a\u0645\u0643\u0646 \u0644\u0623\u064a \u0645\u0634\u063a\u0651\u0644 Kubernetes \u0642\u0631\u0627\u0621\u0629 \u0648\u0643\u062a\u0627\u0628\u0629 \u0633\u064a\u0627\u0633\u0627\u062a Kyverno \u062f\u0648\u0646 \u062a\u062f\u0631\u064a\u0628 \u0645\u062a\u062e\u0635\u0635.<\/p>\n<h3>\u062a\u0643\u0627\u0645\u0644 CI\/CD<\/h3>\n<p>\u062a\u0648\u0633\u0651\u0639 Kyverno \u0625\u0644\u0649 \u0645\u0627 \u0647\u0648 \u0623\u0628\u0639\u062f \u0645\u0646 \u0627\u0644\u062a\u062d\u0643\u0645 \u0641\u064a \u0627\u0644\u0642\u0628\u0648\u0644 \u0627\u0644\u0628\u062d\u062a \u0645\u0639 <strong>Kyverno CLI<\/strong>\u060c \u0627\u0644\u0630\u064a \u064a\u0645\u0643\u0646\u0647 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0645\u0648\u0627\u0631\u062f \u0645\u0642\u0627\u0628\u0644 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u062f\u0648\u0646 \u0627\u062a\u0635\u0627\u0644 \u2014 \u0645\u0645\u0627 \u064a\u062c\u0639\u0644\u0647 \u0642\u0627\u0628\u0644\u0627\u064b \u0644\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0641\u064a \u0623\u0646\u0627\u0628\u064a\u0628 CI\/CD:<\/p>\n<pre><code>kyverno apply .\/policies\/ --resource deployment.yaml<\/code><\/pre>\n<p>\u064a\u062f\u0639\u0645 CLI \u0627\u062e\u062a\u0628\u0627\u0631 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0648\u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0645\u0648\u0627\u0631\u062f \u0648\u064a\u0645\u0643\u0646\u0647 \u0625\u0646\u0634\u0627\u0621 \u062a\u0642\u0627\u0631\u064a\u0631 JUnit XML \u0644\u062a\u0643\u0627\u0645\u0644 CI. \u0648\u0645\u0639 \u0630\u0644\u0643\u060c \u0641\u0625\u0646 \u0642\u0635\u0629 CI\/CD \u0644\u0640 Kyverno \u0623\u0636\u064a\u0642 \u0645\u0646 OPA: \u0641\u0647\u0648 \u064a\u0639\u0645\u0644 \u0628\u0634\u0643\u0644 \u0623\u0641\u0636\u0644 \u0645\u0639 \u0645\u0644\u0641\u0627\u062a Kubernetes manifests \u0648\u0644\u0627 \u064a\u062a\u0639\u0627\u0645\u0644 \u0623\u0635\u0644\u0627\u064b \u0645\u0639 \u062e\u0637\u0637 Terraform \u0623\u0648 Dockerfiles \u0623\u0648 \u0627\u0644\u062a\u0646\u0633\u064a\u0642\u0627\u062a \u0627\u0644\u0623\u062e\u0631\u0649 \u063a\u064a\u0631 \u0627\u0644\u0645\u062a\u0639\u0644\u0642\u0629 \u0628\u0640 Kubernetes.<\/p>\n<h3>\u0646\u0642\u0627\u0637 \u0627\u0644\u0642\u0648\u0629<\/h3>\n<ul>\n<li><strong>\u0644\u0627 \u0645\u0646\u062d\u0646\u0649 \u062a\u0639\u0644\u0651\u0645 \u0644\u0641\u0631\u0642 Kubernetes:<\/strong> \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0628\u0635\u064a\u063a\u0629 YAML \u2014 \u0644\u0627 \u062d\u0627\u062c\u0629 \u0644\u0644\u063a\u0629 \u062c\u062f\u064a\u062f\u0629.<\/li>\n<li><strong>\u0623\u0635\u0644\u064a \u0644\u0640 Kubernetes:<\/strong> \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0647\u064a CRDs\u060c \u062a\u064f\u062f\u0627\u0631 \u0639\u0628\u0631 kubectl\u060c \u0645\u062a\u0648\u0627\u0641\u0642\u0629 \u0645\u0639 GitOps\u060c \u0648\u0645\u062a\u0643\u0627\u0645\u0644\u0629 \u0628\u0639\u0645\u0642 \u0645\u0639 Kubernetes API.<\/li>\n<li><strong>\u0627\u0644\u062a\u0639\u062f\u064a\u0644 \u0648\u0627\u0644\u062a\u0648\u0644\u064a\u062f:<\/strong> \u064a\u0645\u0643\u0646 \u0644\u0640 Kyverno \u062a\u0639\u062f\u064a\u0644 \u0627\u0644\u0645\u0648\u0627\u0631\u062f (\u0645\u062b\u0644 \u062d\u0642\u0646 \u062d\u0627\u0648\u064a\u0627\u062a \u062c\u0627\u0646\u0628\u064a\u0629) \u0648\u062a\u0648\u0644\u064a\u062f \u0627\u0644\u0645\u0648\u0627\u0631\u062f (\u0645\u062b\u0644 \u0625\u0646\u0634\u0627\u0621 NetworkPolicies \u062a\u0644\u0642\u0627\u0626\u064a\u0627\u064b)\u060c \u0648\u0644\u064a\u0633 \u0641\u0642\u0637 \u0627\u0644\u062a\u062d\u0642\u0642.<\/li>\n<li><strong>\u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0635\u0648\u0631:<\/strong> \u062f\u0639\u0645 \u0645\u062f\u0645\u062c \u0644\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u062a\u0648\u0642\u064a\u0639\u0627\u062a \u0635\u0648\u0631 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a (Cosign\/Sigstore) \u0648\u0634\u0647\u0627\u062f\u0627\u062a \u0627\u0644\u0635\u0648\u0631 \u0648\u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 SBOM.<\/li>\n<li><strong>\u062a\u0642\u0627\u0631\u064a\u0631 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a:<\/strong> \u064a\u064f\u0646\u0634\u0626 \u0645\u0648\u0627\u0631\u062f PolicyReport \u0623\u0635\u0644\u064a\u0629 \u0644\u0640 Kubernetes \u0644\u0644\u062a\u062f\u0642\u064a\u0642 \u0648\u0627\u0644\u0627\u0645\u062a\u062b\u0627\u0644.<\/li>\n<\/ul>\n<h3>\u0646\u0642\u0627\u0637 \u0627\u0644\u0636\u0639\u0641<\/h3>\n<ul>\n<li><strong>Kubernetes \u0641\u0642\u0637:<\/strong> Kyverno \u0645\u0631\u062a\u0628\u0637 \u0628\u0634\u062f\u0629 \u0628\u0646\u0638\u0627\u0645 Kubernetes \u0627\u0644\u0628\u064a\u0626\u064a. \u0644\u0627 \u064a\u0645\u0643\u0646\u0647 \u0625\u0646\u0641\u0627\u0630 \u0633\u064a\u0627\u0633\u0627\u062a \u0639\u0644\u0649 Terraform \u0623\u0648 \u062a\u0647\u064a\u0626\u0627\u062a \u0623\u0646\u0627\u0628\u064a\u0628 CI\/CD \u0623\u0648 \u0627\u0644\u0645\u062c\u0627\u0644\u0627\u062a \u0627\u0644\u0623\u062e\u0631\u0649 \u063a\u064a\u0631 \u0627\u0644\u0645\u062a\u0639\u0644\u0642\u0629 \u0628\u0640 Kubernetes.<\/li>\n<li><strong>\u0627\u0644\u0645\u0646\u0637\u0642 \u0627\u0644\u0645\u0639\u0642\u062f:<\/strong> \u064a\u0645\u0643\u0646 \u0623\u0646 \u062a\u0635\u0628\u062d \u0633\u064a\u0627\u0633\u0627\u062a YAML \u063a\u064a\u0631 \u0639\u0645\u0644\u064a\u0629 \u0644\u0644\u0645\u0646\u0637\u0642 \u0627\u0644\u0634\u0631\u0637\u064a \u0627\u0644\u0645\u0639\u0642\u062f. \u062a\u0633\u0627\u0639\u062f \u062a\u0639\u0628\u064a\u0631\u0627\u062a JMESPath \u0644\u0643\u0646\u0647\u0627 \u0644\u064a\u0633\u062a \u0628\u062a\u0639\u0628\u064a\u0631\u064a\u0629 \u0644\u063a\u0629 \u0633\u064a\u0627\u0633\u0627\u062a \u0643\u0627\u0645\u0644\u0629.<\/li>\n<li><strong>\u0646\u0636\u062c CI\/CD:<\/strong> CLI \u0642\u0627\u062f\u0631 \u0644\u0643\u0646\u0647 \u0623\u0642\u0644 \u0646\u0636\u062c\u0627\u064b \u0645\u0646 Conftest \u0644\u0627\u062e\u062a\u0628\u0627\u0631 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u062f\u0648\u0646 \u0627\u062a\u0635\u0627\u0644 \u0641\u064a \u0627\u0644\u0623\u0646\u0627\u0628\u064a\u0628.<\/li>\n<\/ul>\n<h2>HashiCorp Sentinel<\/h2>\n<h3>\u0646\u0638\u0631\u0629 \u0639\u0627\u0645\u0629<\/h3>\n<p><a href=\"https:\/\/www.hashicorp.com\/sentinel\" target=\"_blank\" rel=\"noopener\">HashiCorp Sentinel<\/a> \u0647\u0648 \u0625\u0637\u0627\u0631 \u0639\u0645\u0644 \u0644\u0644\u0633\u064a\u0627\u0633\u0629 \u0643\u0643\u0648\u062f \u0645\u0636\u0645\u0651\u0646 \u0641\u064a \u0645\u0646\u062a\u062c\u0627\u062a HashiCorp \u0627\u0644\u062a\u062c\u0627\u0631\u064a\u0629: Terraform Cloud\/Enterprise \u0648Vault Enterprise \u0648Consul Enterprise \u0648Nomad Enterprise. \u0635\u064f\u0645\u0651\u0645 \u062e\u0635\u064a\u0635\u0627\u064b \u0644\u062a\u0648\u0641\u064a\u0631 \u062d\u0648\u0627\u062c\u0632 \u062d\u0648\u0643\u0645\u0629 \u0644\u0633\u064a\u0631 \u0639\u0645\u0644 \u062a\u0648\u0641\u064a\u0631 \u0627\u0644\u0628\u0646\u064a\u0629 \u0627\u0644\u062a\u062d\u062a\u064a\u0629.<\/p>\n<h3>\u0644\u063a\u0629 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a: \u0644\u063a\u0629 Sentinel<\/h3>\n<p>\u064a\u0633\u062a\u062e\u062f\u0645 Sentinel \u0644\u063a\u062a\u0647 \u0627\u0644\u062e\u0627\u0635\u0629 \u0627\u0644\u0645\u062a\u062e\u0635\u0635\u0629 \u0627\u0644\u062a\u064a \u0647\u064a \u0623\u0643\u062b\u0631 \u0625\u062c\u0631\u0627\u0626\u064a\u0629 \u0645\u0646 Rego \u0648\u0623\u0643\u062b\u0631 \u0633\u0647\u0648\u0644\u0629 \u0644\u0644\u0645\u0637\u0648\u0631\u064a\u0646 \u0627\u0644\u0645\u0623\u0644\u0648\u0641\u064a\u0646 \u0628\u0640 Python \u0623\u0648 Go. \u0641\u064a\u0645\u0627 \u064a\u0644\u064a \u0645\u062b\u0627\u0644 \u064a\u064f\u0642\u064a\u0651\u062f \u0623\u0646\u0648\u0627\u0639 \u0645\u062b\u064a\u0644\u0627\u062a EC2 \u0641\u064a Terraform:<\/p>\n<pre><code>import \"tfplan\/v2\" as tfplan\n\nallowed_instance_types = [\"t3.micro\", \"t3.small\", \"t3.medium\"]\n\nmain = rule {\n    all tfplan.resource_changes as _, rc {\n        rc.type is \"aws_instance\" implies\n        rc.change.after.instance_type in allowed_instance_types\n    }\n}<\/code><\/pre>\n<p>\u062a\u062f\u0639\u0645 \u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0627\u0633\u062a\u064a\u0631\u0627\u062f\u0627\u062a \u0648\u0627\u0644\u062f\u0648\u0627\u0644 \u0648\u0645\u0633\u062a\u0648\u064a\u0627\u062a \u0627\u0644\u0625\u0646\u0641\u0627\u0630 (\u0627\u0633\u062a\u0634\u0627\u0631\u064a\u060c \u0625\u0644\u0632\u0627\u0645\u064a-\u0645\u0631\u0646\u060c \u0625\u0644\u0632\u0627\u0645\u064a-\u0635\u0627\u0631\u0645)\u060c \u0648\u0644\u0647\u0627 \u0637\u0627\u0628\u0639 \u0625\u062c\u0631\u0627\u0626\u064a \u0645\u0623\u0644\u0648\u0641. \u062a\u064f\u0642\u0631\u0623 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0628\u0634\u0643\u0644 \u0623\u0643\u062b\u0631 \u0637\u0628\u064a\u0639\u064a\u0629 \u0645\u0646 Rego \u0644\u0645\u0639\u0638\u0645 \u0627\u0644\u0645\u0637\u0648\u0631\u064a\u0646.<\/p>\n<h3>\u062a\u0643\u0627\u0645\u0644 CI\/CD<\/h3>\n<p>Sentinel \u0645\u062a\u0643\u0627\u0645\u0644 \u0628\u0639\u0645\u0642 \u0641\u064a \u0633\u064a\u0631 \u0639\u0645\u0644 Terraform Cloud \u0648Enterprise. \u062a\u064f\u0642\u064a\u064e\u0651\u0645 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u062a\u0644\u0642\u0627\u0626\u064a\u0627\u064b \u0623\u062b\u0646\u0627\u0621 <code>terraform plan<\/code> \u0641\u064a Terraform Cloud\u060c \u0648\u062a\u062d\u062f\u062f \u0645\u0633\u062a\u0648\u064a\u0627\u062a \u0627\u0644\u0625\u0646\u0641\u0627\u0630 \u0645\u0627 \u0625\u0630\u0627 \u0643\u0627\u0646\u062a \u0627\u0644\u0645\u062e\u0627\u0644\u0641\u0627\u062a \u062a\u064f\u0646\u062a\u062c \u062a\u062d\u0630\u064a\u0631\u0627\u062a \u0623\u0648 \u062a\u0645\u0646\u0639 \u0627\u0644\u062a\u0637\u0628\u064a\u0642. \u0647\u0630\u0627 \u0627\u0644\u062a\u0643\u0627\u0645\u0644 \u0627\u0644\u0648\u062b\u064a\u0642 \u0647\u0648 \u0623\u0643\u0628\u0631 \u0646\u0642\u0637\u0629 \u0642\u0648\u0629 \u0644\u0640 Sentinel \u0648\u0642\u064a\u062f\u0647 \u0627\u0644\u0623\u0633\u0627\u0633\u064a \u0641\u064a \u0622\u0646 \u0648\u0627\u062d\u062f.<\/p>\n<p>\u0628\u0627\u0644\u0646\u0633\u0628\u0629 \u0644\u0623\u0646\u0627\u0628\u064a\u0628 CI\/CD \u062e\u0627\u0631\u062c \u0646\u0638\u0627\u0645 HashiCorp \u0627\u0644\u0628\u064a\u0626\u064a\u060c \u064a\u0633\u0645\u062d <strong>Sentinel CLI<\/strong> (\u0645\u062d\u0627\u0643\u064a <code>sentinel<\/code>) \u0628\u0627\u0644\u0627\u062e\u062a\u0628\u0627\u0631 \u0648\u0627\u0644\u062a\u0642\u064a\u064a\u0645 \u0627\u0644\u0645\u062d\u0644\u064a\u060c \u0644\u0643\u0646\u0647 \u064a\u0639\u0645\u0644 \u0639\u0644\u0649 \u0628\u064a\u0627\u0646\u0627\u062a \u0648\u0647\u0645\u064a\u0629 \u0628\u062f\u0644\u0627\u064b \u0645\u0646 \u062d\u0627\u0644\u0629 \u0627\u0644\u0628\u0646\u064a\u0629 \u0627\u0644\u062a\u062d\u062a\u064a\u0629 \u0627\u0644\u062d\u064a\u0629. \u064a\u0645\u0643\u0646\u0643 \u0627\u062e\u062a\u0628\u0627\u0631 \u0633\u064a\u0627\u0633\u0627\u062a Sentinel \u0641\u064a \u0623\u0646\u0628\u0648\u0628 CI\u060c \u0644\u0643\u0646 \u0646\u0642\u0637\u0629 \u0627\u0644\u0625\u0646\u0641\u0627\u0630 \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629 \u062a\u0643\u0648\u0646 \u062f\u0627\u062e\u0644 \u0645\u0646\u062a\u062c\u0627\u062a HashiCorp \u0646\u0641\u0633\u0647\u0627.<\/p>\n<h3>\u0646\u0642\u0627\u0637 \u0627\u0644\u0642\u0648\u0629<\/h3>\n<ul>\n<li><strong>\u0623\u0635\u0644\u064a \u0644\u0640 Terraform:<\/strong> \u062a\u0643\u0627\u0645\u0644 \u0644\u0627 \u0645\u062b\u064a\u0644 \u0644\u0647 \u0645\u0639 Terraform Cloud\/Enterprise. \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0644\u0647\u0627 \u0648\u0635\u0648\u0644 \u0645\u0646 \u0627\u0644\u062f\u0631\u062c\u0629 \u0627\u0644\u0623\u0648\u0644\u0649 \u0625\u0644\u0649 \u062e\u0637\u0629 Terraform \u0648\u0627\u0644\u062d\u0627\u0644\u0629 \u0648\u0627\u0644\u062a\u0647\u064a\u0626\u0629 \u0639\u0628\u0631 \u0627\u0633\u062a\u064a\u0631\u0627\u062f\u0627\u062a \u0645\u062f\u0645\u062c\u0629.<\/li>\n<li><strong>\u0645\u0633\u062a\u0648\u064a\u0627\u062a \u0627\u0644\u0625\u0646\u0641\u0627\u0630:<\/strong> \u0646\u0645\u0648\u0630\u062c \u0627\u0633\u062a\u0634\u0627\u0631\u064a\/\u0625\u0644\u0632\u0627\u0645\u064a-\u0645\u0631\u0646\/\u0625\u0644\u0632\u0627\u0645\u064a-\u0635\u0627\u0631\u0645 \u064a\u0633\u0645\u062d \u0628\u0625\u0646\u0641\u0627\u0630 \u062a\u062f\u0631\u064a\u062c\u064a \u0644\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u2014 \u0645\u062b\u0627\u0644\u064a \u0644\u0646\u0634\u0631 \u0633\u064a\u0627\u0633\u0627\u062a \u062c\u062f\u064a\u062f\u0629 \u062f\u0648\u0646 \u062a\u0639\u0637\u064a\u0644 \u0633\u064a\u0631 \u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u062d\u0627\u0644\u064a.<\/li>\n<li><strong>\u0644\u063a\u0629 \u0645\u0642\u0631\u0648\u0621\u0629:<\/strong> \u0644\u063a\u0629 Sentinel \u0623\u0643\u062b\u0631 \u0633\u0647\u0648\u0644\u0629 \u0645\u0646 Rego\u060c \u0645\u0639 \u0628\u0646\u064a\u0627\u062a \u0628\u0631\u0645\u062c\u064a\u0629 \u0645\u0623\u0644\u0648\u0641\u0629.<\/li>\n<li><strong>\u062d\u0648\u0643\u0645\u0629 \u0627\u0644\u0645\u0624\u0633\u0633\u0627\u062a:<\/strong> \u0645\u0635\u0645\u0645 \u062e\u0635\u064a\u0635\u0627\u064b \u0644\u0633\u064a\u0631 \u0639\u0645\u0644 \u0627\u0644\u0627\u0645\u062a\u062b\u0627\u0644 \u0627\u0644\u0645\u0624\u0633\u0633\u064a \u0645\u0639 \u0645\u062c\u0645\u0648\u0639\u0627\u062a \u0633\u064a\u0627\u0633\u0627\u062a \u0645\u062f\u0645\u062c\u0629 \u0648\u0625\u0635\u062f\u0627\u0631\u0627\u062a \u0648\u0625\u062f\u0627\u0631\u0629 \u0633\u064a\u0627\u0633\u0627\u062a \u0639\u0644\u0649 \u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u0645\u0624\u0633\u0633\u0629.<\/li>\n<\/ul>\n<h3>\u0646\u0642\u0627\u0637 \u0627\u0644\u0636\u0639\u0641<\/h3>\n<ul>\n<li><strong>\u0627\u0644\u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627\u0644\u0628\u0627\u0626\u0639:<\/strong> Sentinel \u0645\u0644\u0643\u064a\u0629 \u062e\u0627\u0635\u0629 \u0644\u0640 HashiCorp. \u0628\u064a\u0626\u0629 \u0627\u0644\u062a\u0634\u063a\u064a\u0644 \u0644\u064a\u0633\u062a \u0645\u0641\u062a\u0648\u062d\u0629 \u0627\u0644\u0645\u0635\u062f\u0631\u060c \u0648\u0627\u0644\u0625\u0646\u0641\u0627\u0630 \u0645\u0642\u062a\u0635\u0631 \u0639\u0644\u0649 \u0645\u0646\u062a\u062c\u0627\u062a HashiCorp.<\/li>\n<li><strong>\u0646\u0637\u0627\u0642 \u0645\u062d\u062f\u0648\u062f:<\/strong> \u0644\u0627 \u064a\u0645\u0643\u0646 \u0627\u0633\u062a\u062e\u062f\u0627\u0645\u0647 \u062e\u0627\u0631\u062c \u0646\u0638\u0627\u0645 HashiCorp \u0627\u0644\u0628\u064a\u0626\u064a \u0644\u0644\u062a\u062d\u0643\u0645 \u0641\u064a \u0642\u0628\u0648\u0644 Kubernetes \u0623\u0648 \u0641\u062d\u0648\u0635\u0627\u062a CI\/CD \u0627\u0644\u0639\u0627\u0645\u0629 \u0623\u0648 \u0627\u0644\u0623\u062f\u0648\u0627\u062a \u063a\u064a\u0631 \u0627\u0644\u062a\u0627\u0628\u0639\u0629 \u0644\u0640 HashiCorp.<\/li>\n<li><strong>\u0627\u0644\u062a\u0643\u0644\u0641\u0629:<\/strong> \u064a\u062a\u0637\u0644\u0628 Terraform Cloud (\u0627\u0644\u0637\u0628\u0642\u0629 \u0627\u0644\u0641\u0631\u064a\u0642\u064a\u0629 \u0648\u0645\u0627 \u0641\u0648\u0642) \u0623\u0648 Terraform Enterprise \u2014 \u063a\u064a\u0631 \u0645\u062a\u0627\u062d \u0641\u064a \u0627\u0644\u0625\u0635\u062f\u0627\u0631 \u0645\u0641\u062a\u0648\u062d \u0627\u0644\u0645\u0635\u062f\u0631 \u0645\u0646 Terraform.<\/li>\n<li><strong>\u0645\u062c\u062a\u0645\u0639 \u0623\u0635\u063a\u0631:<\/strong> \u0633\u064a\u0627\u0633\u0627\u062a \u0648\u0645\u0648\u0627\u0631\u062f \u062a\u0639\u0644\u0651\u0645 \u0623\u0642\u0644 \u0645\u0633\u0627\u0647\u0645\u0629 \u0645\u0646 \u0627\u0644\u0645\u062c\u062a\u0645\u0639 \u0645\u0642\u0627\u0631\u0646\u0629 \u0628\u0640 OPA.<\/li>\n<\/ul>\n<h2>AWS Cedar<\/h2>\n<h3>\u0646\u0638\u0631\u0629 \u0639\u0627\u0645\u0629<\/h3>\n<p><a href=\"https:\/\/www.cedarpolicy.com\/\" target=\"_blank\" rel=\"noopener\">Cedar<\/a> \u0647\u064a \u0644\u063a\u0629 \u0633\u064a\u0627\u0633\u0627\u062a \u0648\u0645\u062d\u0631\u0643 \u062a\u0642\u064a\u064a\u0645 \u0637\u0648\u0651\u0631\u062a\u0647 AWS \u0648\u0623\u0635\u0628\u062d\u062a \u0645\u0641\u062a\u0648\u062d\u0629 \u0627\u0644\u0645\u0635\u062f\u0631 \u0641\u064a \u0639\u0627\u0645 2023. \u0628\u064f\u0646\u064a\u062a \u0623\u0635\u0644\u0627\u064b \u0644\u062a\u0634\u063a\u064a\u0644 Amazon Verified Permissions \u0648AWS IAM Identity Center\u060c \u0648\u0635\u064f\u0645\u0651\u0645\u062a Cedar \u0645\u0646 \u0627\u0644\u0623\u0644\u0641 \u0625\u0644\u0649 \u0627\u0644\u064a\u0627\u0621 \u0644\u0623\u063a\u0631\u0627\u0636 <strong>\u0627\u0644\u062a\u0641\u0648\u064a\u0636<\/strong> \u2014 \u062a\u062d\u062f\u064a\u062f \u0645\u0627 \u0625\u0630\u0627 \u0643\u0627\u0646 \u0628\u0625\u0645\u0643\u0627\u0646 \u0643\u064a\u0627\u0646 \u062a\u0646\u0641\u064a\u0630 \u0625\u062c\u0631\u0627\u0621 \u0639\u0644\u0649 \u0645\u0648\u0631\u062f.<\/p>\n<p>Cedar \u0647\u064a \u0627\u0644\u0623\u062d\u062f\u062b \u0641\u064a \u0647\u0630\u0647 \u0627\u0644\u0645\u0642\u0627\u0631\u0646\u0629\u060c \u0648\u062a\u0631\u0643\u064a\u0632\u0647\u0627 \u0623\u0636\u064a\u0642 \u0646\u0637\u0627\u0642\u0627\u064b \u0645\u0646 OPA \u0623\u0648 Kyverno. \u0628\u064a\u0646\u0645\u0627 \u062a\u062a\u0641\u0648\u0642 \u0641\u064a \u0642\u0631\u0627\u0631\u0627\u062a \u0627\u0644\u062a\u0641\u0648\u064a\u0636 \u0627\u0644\u062f\u0642\u064a\u0642\u0629\u060c \u0641\u0625\u0646 \u062a\u0637\u0628\u064a\u0642\u0647\u0627 \u0639\u0644\u0649 \u0625\u0646\u0641\u0627\u0630 \u0633\u064a\u0627\u0633\u0627\u062a CI\/CD \u0644\u0627 \u064a\u0632\u0627\u0644 \u0641\u064a \u0645\u0631\u0627\u062d\u0644\u0647 \u0627\u0644\u0623\u0648\u0644\u0649.<\/p>\n<h3>\u0644\u063a\u0629 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a: Cedar<\/h3>\n<p>\u062a\u064f\u0639\u0637\u064a \u0644\u063a\u0629 Cedar \u0627\u0644\u0623\u0648\u0644\u0648\u064a\u0629 \u0644\u0644\u0645\u0642\u0631\u0648\u0626\u064a\u0629 \u0648\u0642\u0627\u0628\u0644\u064a\u0629 \u0627\u0644\u062a\u062d\u0644\u064a\u0644. \u062a\u064f\u0639\u0628\u064e\u0651\u0631 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0643\u0639\u0628\u0627\u0631\u0627\u062a \u0633\u0645\u0627\u062d\/\u0631\u0641\u0636 \u062a\u064f\u0642\u0631\u0623 \u062a\u0642\u0631\u064a\u0628\u0627\u064b \u0643\u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0625\u0646\u062c\u0644\u064a\u0632\u064a\u0629:<\/p>\n<pre><code>\/\/ Only allow production deployments from the main branch\nforbid (\n    principal,\n    action == Action::\"deploy\",\n    resource == Environment::\"production\"\n) unless {\n    context.source_branch == \"main\" &&\n    context.tests_passed == true &&\n    context.approvals >= 2\n};<\/code><\/pre>\n<p>\u0646\u0638\u0627\u0645 \u0627\u0644\u0623\u0646\u0648\u0627\u0639 \u0648\u0642\u062f\u0631\u0627\u062a \u0627\u0644\u062a\u062d\u0642\u0642 \u0627\u0644\u0631\u0633\u0645\u064a \u0641\u064a Cedar \u0641\u0631\u064a\u062f\u0629 \u0628\u064a\u0646 \u0627\u0644\u0645\u062d\u0631\u0643\u0627\u062a \u0641\u064a \u0647\u0630\u0647 \u0627\u0644\u0645\u0642\u0627\u0631\u0646\u0629. \u0646\u0634\u0631\u062a AWS <a href=\"https:\/\/www.amazon.science\/publications\/cedar-a-new-language-for-expressive-fast-safe-and-analyzable-authorization\" target=\"_blank\" rel=\"noopener\">\u0628\u0631\u0627\u0647\u064a\u0646 \u0631\u0633\u0645\u064a\u0629<\/a> \u0644\u062e\u0635\u0627\u0626\u0635 \u0631\u0626\u064a\u0633\u064a\u0629 \u0641\u064a \u0644\u063a\u0629 Cedar\u060c \u062a\u0636\u0645\u0646 \u0623\u0646 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u062a\u062a\u0635\u0631\u0641 \u0628\u0634\u0643\u0644 \u0645\u062a\u0648\u0642\u0639 \u0648\u064a\u0645\u0643\u0646 \u062a\u062d\u0644\u064a\u0644\u0647\u0627 \u0644\u0644\u0643\u0634\u0641 \u0639\u0646 \u0627\u0644\u062a\u0639\u0627\u0631\u0636\u0627\u062a \u0648\u0627\u0644\u062a\u0643\u0631\u0627\u0631 \u0648\u0627\u0644\u0627\u0643\u062a\u0645\u0627\u0644.<\/p>\n<h3>\u062a\u0643\u0627\u0645\u0644 CI\/CD<\/h3>\n<p>\u0642\u0635\u0629 \u062a\u0643\u0627\u0645\u0644 Cedar \u0645\u0639 CI\/CD \u0647\u064a \u0627\u0644\u0623\u0642\u0644 \u0646\u0636\u062c\u0627\u064b \u0628\u064a\u0646 \u0627\u0644\u0645\u062d\u0631\u0643\u0627\u062a \u0627\u0644\u0623\u0631\u0628\u0639\u0629. \u064a\u0645\u0643\u0646 \u0627\u0633\u062a\u062e\u062f\u0627\u0645\u0647\u0627 \u0644\u0646\u0645\u0630\u062c\u0629 \u0642\u0631\u0627\u0631\u0627\u062a \u062a\u0641\u0648\u064a\u0636 CI\/CD \u2014 \u0639\u0644\u0649 \u0633\u0628\u064a\u0644 \u0627\u0644\u0645\u062b\u0627\u0644\u060c \u0645\u0646 \u064a\u0645\u0643\u0646\u0647 \u0627\u0644\u0646\u0634\u0631 \u0641\u064a \u0623\u064a \u0628\u064a\u0626\u0629\u060c \u0648\u0623\u064a \u0623\u0646\u0627\u0628\u064a\u0628 \u064a\u0645\u0643\u0646\u0647\u0627 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0623\u064a \u0623\u0633\u0631\u0627\u0631\u060c \u0648\u0623\u064a \u0641\u0631\u0648\u0639 \u064a\u0645\u0643\u0646\u0647\u0627 \u062a\u0634\u063a\u064a\u0644 \u0625\u0635\u062f\u0627\u0631\u0627\u062a \u0627\u0644\u0625\u0646\u062a\u0627\u062c \u2014 \u0644\u0643\u0646\u0647\u0627 \u062a\u062a\u0637\u0644\u0628 \u0639\u0645\u0644 \u062a\u0643\u0627\u0645\u0644 \u0645\u062e\u0635\u0635. \u0644\u0627 \u064a\u0648\u062c\u062f \u0645\u0627 \u064a\u0639\u0627\u062f\u0644 Conftest \u0623\u0648 Kyverno CLI \u0644\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0645\u0644\u0641\u0627\u062a Kubernetes manifests \u0623\u0648 \u062e\u0637\u0637 Terraform \u0645\u0642\u0627\u0628\u0644 \u0633\u064a\u0627\u0633\u0627\u062a Cedar \u062c\u0627\u0647\u0632\u0629 \u0644\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645.<\/p>\n<p>\u0648\u0645\u0639 \u0630\u0644\u0643\u060c \u0641\u0625\u0646 SDK \u0627\u0644\u062e\u0627\u0635 \u0628\u0640 Cedar \u0645\u062a\u0627\u062d \u0628\u0644\u063a\u0627\u062a Rust \u0648Java \u0648Go\u060c \u0648\u064a\u0645\u0643\u0646 \u062a\u0636\u0645\u064a\u0646 \u0645\u062d\u0631\u0643 \u0627\u0644\u062a\u0642\u064a\u064a\u0645 \u0641\u064a \u0623\u062f\u0648\u0627\u062a CI\/CD \u0627\u0644\u0645\u062e\u0635\u0635\u0629. \u0642\u062f \u062a\u062c\u062f \u0627\u0644\u0641\u0631\u0642 \u0627\u0644\u062a\u064a \u062a\u0628\u0646\u064a \u0645\u0646\u0635\u0627\u062a \u0646\u0634\u0631 \u0645\u062e\u0635\u0635\u0629 \u0639\u0644\u0649 AWS \u0623\u0646 Cedar \u062e\u064a\u0627\u0631 \u0637\u0628\u064a\u0639\u064a \u0644\u0645\u0646\u0637\u0642 \u0627\u0644\u062a\u0641\u0648\u064a\u0636.<\/p>\n<h3>\u0646\u0642\u0627\u0637 \u0627\u0644\u0642\u0648\u0629<\/h3>\n<ul>\n<li><strong>\u0645\u0642\u0631\u0648\u0621 \u0648\u0642\u0627\u0628\u0644 \u0644\u0644\u062a\u062d\u0644\u064a\u0644:<\/strong> \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0645\u0642\u0631\u0648\u0621\u0629 \u0628\u0634\u0631\u064a\u0627\u064b\u060c \u0648\u0627\u0644\u062f\u0644\u0627\u0644\u0627\u062a \u0627\u0644\u0631\u0633\u0645\u064a\u0629 \u0644\u0640 Cedar \u062a\u064f\u0645\u0643\u0651\u0646 \u0627\u0644\u062a\u062d\u0644\u064a\u0644 \u0627\u0644\u062b\u0627\u0628\u062a \u0644\u0644\u0643\u0634\u0641 \u0639\u0646 \u0627\u0644\u062a\u0639\u0627\u0631\u0636\u0627\u062a \u0648\u0625\u062b\u0628\u0627\u062a \u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a.<\/li>\n<li><strong>\u0645\u0631\u0643\u0651\u0632 \u0639\u0644\u0649 \u0627\u0644\u062a\u0641\u0648\u064a\u0636:<\/strong> \u0645\u0635\u0645\u0645 \u062e\u0635\u064a\u0635\u0627\u064b \u0644\u0642\u0631\u0627\u0631\u0627\u062a RBAC\/ABAC \u2014 \u0645\u062b\u0627\u0644\u064a \u0644\u0646\u0645\u0630\u062c\u0629 \u0623\u0630\u0648\u0646\u0627\u062a \u0627\u0644\u0646\u0634\u0631 \u0648\u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0627\u0644\u0628\u064a\u0626\u0627\u062a \u0648\u062a\u0641\u0648\u064a\u0636 \u0627\u0644\u0623\u0646\u0627\u0628\u064a\u0628.<\/li>\n<li><strong>\u0627\u0644\u0623\u062f\u0627\u0621:<\/strong> \u0645\u0635\u0645\u0645 \u0644\u0644\u062a\u0642\u064a\u064a\u0645 \u0641\u064a \u0623\u0642\u0644 \u0645\u0646 \u0645\u064a\u0644\u064a \u062b\u0627\u0646\u064a\u0629\u060c \u0645\u0646\u0627\u0633\u0628 \u0644\u0644\u062a\u0641\u0648\u064a\u0636 \u0627\u0644\u0645\u0636\u0645\u0651\u0646 \u0641\u064a \u0645\u0633\u0627\u0631\u0627\u062a \u0627\u0644\u0637\u0644\u0628\u0627\u062a.<\/li>\n<li><strong>\u062a\u0643\u0627\u0645\u0644 AWS:<\/strong> \u062f\u0639\u0645 \u0623\u0635\u0644\u064a \u0641\u064a Amazon Verified Permissions\u060c \u0645\u0645\u0627 \u064a\u062c\u0639\u0644\u0647 \u0627\u0644\u062e\u064a\u0627\u0631 \u0627\u0644\u0637\u0628\u064a\u0639\u064a \u0644\u0628\u0646\u064a\u0627\u062a \u0627\u0644\u062a\u0641\u0648\u064a\u0636 \u0627\u0644\u0645\u0631\u062a\u0643\u0632\u0629 \u0639\u0644\u0649 AWS.<\/li>\n<li><strong>\u0645\u0641\u062a\u0648\u062d \u0627\u0644\u0645\u0635\u062f\u0631:<\/strong> \u0639\u0644\u0649 \u0639\u0643\u0633 Sentinel\u060c \u0641\u0625\u0646 \u0645\u062d\u0631\u0643 Cedar \u0648\u0644\u063a\u062a\u0647 \u0645\u0641\u062a\u0648\u062d\u0627 \u0627\u0644\u0645\u0635\u062f\u0631 \u0628\u0627\u0644\u0643\u0627\u0645\u0644 \u062a\u062d\u062a \u0631\u062e\u0635\u0629 Apache 2.0.<\/li>\n<\/ul>\n<h3>\u0646\u0642\u0627\u0637 \u0627\u0644\u0636\u0639\u0641<\/h3>\n<ul>\n<li><strong>\u062a\u0631\u0643\u064a\u0632 \u0636\u064a\u0642:<\/strong> Cedar \u0645\u062d\u0631\u0643 \u062a\u0641\u0648\u064a\u0636\u060c \u0648\u0644\u064a\u0633 \u0645\u062d\u0631\u0643 \u0633\u064a\u0627\u0633\u0627\u062a \u0639\u0627\u0645 \u0627\u0644\u063a\u0631\u0636. \u0644\u0627 \u064a\u062a\u062d\u0642\u0642 \u0623\u0635\u0644\u0627\u064b \u0645\u0646 \u0647\u064a\u0627\u0643\u0644 \u0627\u0644\u062a\u0647\u064a\u0626\u0629 (\u0645\u0644\u0641\u0627\u062a Kubernetes manifests \u0623\u0648 \u062e\u0637\u0637 Terraform).<\/li>\n<li><strong>\u0646\u0638\u0627\u0645 CI\/CD \u0628\u064a\u0626\u064a \u063a\u064a\u0631 \u0646\u0627\u0636\u062c:<\/strong> \u0644\u0627 \u062a\u0648\u062c\u062f \u0623\u062f\u0648\u0627\u062a \u0631\u0627\u0633\u062e\u0629 \u0644\u0625\u0646\u0641\u0627\u0630 \u0633\u064a\u0627\u0633\u0627\u062a \u0623\u0646\u0627\u0628\u064a\u0628 CI\/CD. \u064a\u062a\u0637\u0644\u0628 \u062a\u0643\u0627\u0645\u0644\u0627\u064b \u0645\u062e\u0635\u0635\u0627\u064b.<\/li>\n<li><strong>\u0645\u062c\u062a\u0645\u0639 \u0635\u063a\u064a\u0631:<\/strong> \u0643\u0648\u0646\u0647 \u0627\u0644\u0623\u062d\u062f\u062b\u060c \u064a\u0645\u062a\u0644\u0643 Cedar \u0623\u0635\u063a\u0631 \u0645\u062c\u062a\u0645\u0639 \u0648\u0623\u0642\u0644 \u062f\u0631\u0648\u0633 \u062a\u0639\u0644\u064a\u0645\u064a\u0629 \u0648\u0623\u0642\u0644 \u0623\u062f\u0648\u0627\u062a \u0637\u0631\u0641 \u062b\u0627\u0644\u062b.<\/li>\n<li><strong>\u0645\u0631\u062a\u0643\u0632 \u0639\u0644\u0649 AWS:<\/strong> \u0631\u063a\u0645 \u0643\u0648\u0646\u0647 \u0645\u0641\u062a\u0648\u062d \u0627\u0644\u0645\u0635\u062f\u0631\u060c \u0641\u0625\u0646 \u0646\u0642\u0627\u0637 \u0627\u0644\u062a\u0643\u0627\u0645\u0644 \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629 \u0647\u064a \u062e\u062f\u0645\u0627\u062a AWS. \u0627\u0644\u0627\u0639\u062a\u0645\u0627\u062f \u0645\u062a\u0639\u062f\u062f \u0627\u0644\u0633\u062d\u0627\u0628\u0627\u062a \u0645\u062d\u062f\u0648\u062f.<\/li>\n<\/ul>\n<h2>\u062c\u062f\u0648\u0644 \u0627\u0644\u0645\u0642\u0627\u0631\u0646\u0629<\/h2>\n<figure class=\"wp-block-table\">\n<table>\n<thead>\n<tr>\n<th>\u0627\u0644\u0628\u064f\u0639\u062f<\/th>\n<th>OPA \/ Rego<\/th>\n<th>Kyverno<\/th>\n<th>Sentinel<\/th>\n<th>Cedar<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>\u0644\u063a\u0629 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a<\/strong><\/td>\n<td>Rego (\u0645\u0633\u062a\u0648\u062d\u0627\u0629 \u0645\u0646 Datalog)<\/td>\n<td>YAML + JMESPath<\/td>\n<td>Sentinel (DSL \u0625\u062c\u0631\u0627\u0626\u064a\u0629)<\/td>\n<td>Cedar (\u0633\u0645\u0627\u062d\/\u0631\u0641\u0636)<\/td>\n<\/tr>\n<tr>\n<td><strong>\u0645\u0646\u062d\u0646\u0649 \u0627\u0644\u062a\u0639\u0644\u0651\u0645<\/strong><\/td>\n<td>\u062d\u0627\u062f \u2014 \u0646\u0645\u0648\u0630\u062c \u063a\u064a\u0631 \u0645\u0623\u0644\u0648\u0641<\/td>\n<td>\u0645\u0646\u062e\u0641\u0636 \u2014 YAML \u0642\u064a\u0627\u0633\u064a<\/td>\n<td>\u0645\u062a\u0648\u0633\u0637 \u2014 \u0634\u0628\u064a\u0647 \u0628\u0640 Python<\/td>\n<td>\u0645\u0646\u062e\u0641\u0636-\u0645\u062a\u0648\u0633\u0637 \u2014 \u0635\u064a\u063a\u0629 \u0645\u0642\u0631\u0648\u0621\u0629<\/td>\n<\/tr>\n<tr>\n<td><strong>\u0627\u0644\u0645\u062c\u0627\u0644 \u0627\u0644\u0623\u0633\u0627\u0633\u064a<\/strong><\/td>\n<td>\u0639\u0627\u0645 \u0627\u0644\u063a\u0631\u0636<\/td>\n<td>Kubernetes<\/td>\n<td>\u0645\u0646\u062a\u062c\u0627\u062a HashiCorp<\/td>\n<td>\u0627\u0644\u062a\u0641\u0648\u064a\u0636 (RBAC\/ABAC)<\/td>\n<\/tr>\n<tr>\n<td><strong>\u062a\u0643\u0627\u0645\u0644 CI\/CD<\/strong><\/td>\n<td>\u0645\u0645\u062a\u0627\u0632 (Conftest)<\/td>\n<td>\u062c\u064a\u062f (Kyverno CLI)<\/td>\n<td>\u0623\u0635\u0644\u064a \u0644\u0640 Terraform Cloud<\/td>\n<td>\u064a\u062a\u0637\u0644\u0628 \u0639\u0645\u0644\u0627\u064b \u0645\u062e\u0635\u0635\u0627\u064b<\/td>\n<\/tr>\n<tr>\n<td><strong>\u062f\u0639\u0645 Kubernetes<\/strong><\/td>\n<td>\u0642\u0648\u064a (Gatekeeper)<\/td>\n<td>\u0623\u0635\u0644\u064a (CRDs)<\/td>\n<td>\u0645\u062d\u062f\u0648\u062f<\/td>\n<td>\u0644\u0627 \u064a\u0648\u062c\u062f<\/td>\n<\/tr>\n<tr>\n<td><strong>\u062f\u0639\u0645 Terraform<\/strong><\/td>\n<td>\u062c\u064a\u062f (Conftest + plan JSON)<\/td>\n<td>\u0644\u0627 \u064a\u0648\u062c\u062f<\/td>\n<td>\u0623\u0635\u0644\u064a (\u0627\u0633\u062a\u064a\u0631\u0627\u062f\u0627\u062a \u0645\u062f\u0645\u062c\u0629)<\/td>\n<td>\u0644\u0627 \u064a\u0648\u062c\u062f<\/td>\n<\/tr>\n<tr>\n<td><strong>\u0627\u0644\u0627\u062e\u062a\u0628\u0627\u0631<\/strong><\/td>\n<td>\u0645\u0645\u062a\u0627\u0632 (opa test)<\/td>\n<td>\u062c\u064a\u062f (Kyverno CLI test)<\/td>\n<td>\u062c\u064a\u062f (sentinel test)<\/td>\n<td>\u062c\u064a\u062f (Cedar CLI)<\/td>\n<\/tr>\n<tr>\n<td><strong>\u0627\u0644\u062a\u0639\u062f\u064a\u0644\/\u0627\u0644\u062a\u0648\u0644\u064a\u062f<\/strong><\/td>\n<td>\u0644\u0627 (\u062a\u062d\u0642\u0642 \u0641\u0642\u0637)<\/td>\n<td>\u0646\u0639\u0645 (\u062a\u0639\u062f\u064a\u0644 + \u062a\u0648\u0644\u064a\u062f)<\/td>\n<td>\u0644\u0627<\/td>\n<td>\u0644\u0627<\/td>\n<\/tr>\n<tr>\n<td><strong>\u0627\u0644\u062a\u062d\u0642\u0642 \u0627\u0644\u0631\u0633\u0645\u064a<\/strong><\/td>\n<td>\u0644\u0627<\/td>\n<td>\u0644\u0627<\/td>\n<td>\u0644\u0627<\/td>\n<td>\u0646\u0639\u0645<\/td>\n<\/tr>\n<tr>\n<td><strong>\u0627\u0644\u0631\u062e\u0635\u0629<\/strong><\/td>\n<td>Apache 2.0 (CNCF)<\/td>\n<td>Apache 2.0 (CNCF)<\/td>\n<td>\u0645\u0644\u0643\u064a\u0629 \u062e\u0627\u0635\u0629 (\u062a\u062c\u0627\u0631\u064a)<\/td>\n<td>Apache 2.0<\/td>\n<\/tr>\n<tr>\n<td><strong>\u062f\u0639\u0645 \u0627\u0644\u0645\u0624\u0633\u0633\u0627\u062a<\/strong><\/td>\n<td>Styra DAS (\u062a\u062c\u0627\u0631\u064a)<\/td>\n<td>Nirmata (\u062a\u062c\u0627\u0631\u064a)<\/td>\n<td>HashiCorp<\/td>\n<td>AWS (Verified Permissions)<\/td>\n<\/tr>\n<tr>\n<td><strong>\u062d\u062c\u0645 \u0627\u0644\u0645\u062c\u062a\u0645\u0639<\/strong><\/td>\n<td>\u0643\u0628\u064a\u0631<\/td>\n<td>\u064a\u0646\u0645\u0648 \u0628\u0633\u0631\u0639\u0629<\/td>\n<td>\u0645\u062a\u0648\u0633\u0637<\/td>\n<td>\u0645\u0631\u062d\u0644\u0629 \u0645\u0628\u0643\u0631\u0629<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h2>\u0645\u0635\u0641\u0648\u0641\u0629 \u0627\u0644\u0642\u0631\u0627\u0631: \u0645\u062a\u0649 \u062a\u0633\u062a\u062e\u062f\u0645 \u0623\u064a\u0627\u064b \u0645\u0646\u0647\u0627<\/h2>\n<p>\u0627\u062e\u062a\u064a\u0627\u0631 \u0645\u062d\u0631\u0643 \u0633\u064a\u0627\u0633\u0627\u062a \u0644\u064a\u0633 \u0642\u0631\u0627\u0631\u0627\u064b \u0628\u0645\u0642\u0627\u0633 \u0648\u0627\u062d\u062f \u064a\u0646\u0627\u0633\u0628 \u0627\u0644\u062c\u0645\u064a\u0639. \u064a\u0639\u062a\u0645\u062f \u0627\u0644\u0627\u062e\u062a\u064a\u0627\u0631 \u0627\u0644\u0635\u062d\u064a\u062d \u0639\u0644\u0649 \u0645\u062c\u0645\u0648\u0639\u0629 \u0627\u0644\u0628\u0646\u064a\u0629 \u0627\u0644\u062a\u062d\u062a\u064a\u0629 \u0644\u062f\u064a\u0643 \u0648\u0645\u0647\u0627\u0631\u0627\u062a \u0641\u0631\u064a\u0642\u0643 \u0648\u0646\u0637\u0627\u0642 \u0625\u0646\u0641\u0627\u0630 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0627\u0644\u0630\u064a \u062a\u062d\u062a\u0627\u062c\u0647. \u0641\u064a\u0645\u0627 \u064a\u0644\u064a \u0645\u0635\u0641\u0648\u0641\u0629 \u0642\u0631\u0627\u0631 \u0645\u0646\u0638\u0645\u0629 \u062d\u0633\u0628 \u062d\u0627\u0644\u0629 \u0627\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645.<\/p>\n<h3>\u0627\u0633\u062a\u062e\u062f\u0645 OPA \u0639\u0646\u062f\u0645\u0627:<\/h3>\n<ul>\n<li>\u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 <strong>\u0645\u062d\u0631\u0643 \u0633\u064a\u0627\u0633\u0627\u062a \u0648\u0627\u062d\u062f \u0639\u0628\u0631 \u0645\u062c\u0627\u0644\u0627\u062a \u0645\u062a\u0639\u062f\u062f\u0629<\/strong> \u2014 Kubernetes \u0648Terraform \u0648\u062a\u0647\u064a\u0626\u0627\u062a CI\/CD \u0648\u062a\u0641\u0648\u064a\u0636 API \u0648\u0627\u0644\u0645\u0632\u064a\u062f.<\/li>\n<li>\u062a\u0628\u0646\u064a <strong>\u0645\u0646\u0635\u0629 \u0633\u064a\u0627\u0633\u0627\u062a \u0645\u0631\u0643\u0632\u064a\u0629<\/strong> \u062a\u062e\u062f\u0645 \u0641\u0631\u0642\u0627\u064b \u0648\u0623\u0646\u0638\u0645\u0629 \u0645\u062a\u0639\u062f\u062f\u0629.<\/li>\n<li>\u0641\u0631\u064a\u0642\u0643 \u0645\u0633\u062a\u0639\u062f \u0644\u0644\u0627\u0633\u062a\u062b\u0645\u0627\u0631 \u0641\u064a <strong>\u062a\u0639\u0644\u0651\u0645 Rego<\/strong> \u0644\u0644\u0645\u0631\u0648\u0646\u0629 \u0637\u0648\u064a\u0644\u0629 \u0627\u0644\u0645\u062f\u0649.<\/li>\n<li>\u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 <strong>Conftest<\/strong> \u0644\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u062a\u0646\u0633\u064a\u0642\u0627\u062a \u0627\u0644\u062a\u0647\u064a\u0626\u0629 \u0627\u0644\u0645\u062a\u0646\u0648\u0639\u0629 \u0641\u064a \u0623\u0646\u0627\u0628\u064a\u0628 CI\/CD.<\/li>\n<li>\u062a\u0631\u064a\u062f \u062d\u0644\u0627\u064b <strong>\u0645\u062d\u0627\u064a\u062f\u0627\u064b \u062a\u062c\u0627\u0647 \u0627\u0644\u0628\u0627\u0626\u0639\u064a\u0646 \u0648\u062e\u0631\u064a\u062c\u0627\u064b \u0645\u0646 CNCF<\/strong> \u0645\u0639 \u0645\u062c\u062a\u0645\u0639 \u0643\u0628\u064a\u0631.<\/li>\n<\/ul>\n<h3>\u0627\u0633\u062a\u062e\u062f\u0645 Kyverno \u0639\u0646\u062f\u0645\u0627:<\/h3>\n<ul>\n<li>\u0646\u0637\u0627\u0642 \u0633\u064a\u0627\u0633\u0627\u062a\u0643 <strong>\u0623\u0633\u0627\u0633\u0627\u064b \u0623\u0648 \u062d\u0635\u0631\u064a\u0627\u064b Kubernetes<\/strong>.<\/li>\n<li>\u062a\u0631\u064a\u062f <strong>\u0623\u0633\u0631\u0639 \u0648\u0642\u062a \u0644\u0644\u0642\u064a\u0645\u0629<\/strong> \u2014 \u0644\u0627 \u0644\u063a\u0629 \u062c\u062f\u064a\u062f\u0629 \u0644\u0644\u062a\u0639\u0644\u0651\u0645\u060c \u0633\u064a\u0627\u0633\u0627\u062a YAML \u064a\u0645\u0643\u0646 \u0644\u0641\u0631\u064a\u0642 \u0627\u0644\u0645\u0646\u0635\u0629 \u0643\u062a\u0627\u0628\u062a\u0647\u0627 \u0641\u0648\u0631\u0627\u064b.<\/li>\n<li>\u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0642\u062f\u0631\u0627\u062a <strong>\u0627\u0644\u062a\u0639\u062f\u064a\u0644 \u0648\u0627\u0644\u062a\u0648\u0644\u064a\u062f<\/strong> (\u0645\u062b\u0644 \u0627\u0644\u062d\u0642\u0646 \u0627\u0644\u062a\u0644\u0642\u0627\u0626\u064a \u0644\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0627\u0644\u062c\u0627\u0646\u0628\u064a\u0629 \u0648\u0625\u0646\u0634\u0627\u0621 NetworkPolicies \u062a\u0644\u0642\u0627\u0626\u064a\u0627\u064b).<\/li>\n<li>\u062a\u062a\u0637\u0644\u0628 <strong>\u0627\u0644\u062a\u062d\u0642\u0642 \u0627\u0644\u0645\u062f\u0645\u062c \u0645\u0646 \u062a\u0648\u0642\u064a\u0639\u0627\u062a \u0627\u0644\u0635\u0648\u0631<\/strong> (Cosign\/Sigstore) \u0648\u0645\u064a\u0632\u0627\u062a \u0623\u0645\u0627\u0646 \u0633\u0644\u0633\u0644\u0629 \u0627\u0644\u062a\u0648\u0631\u064a\u062f.<\/li>\n<li>\u062a\u0641\u0636\u0644 \u0633\u064a\u0631 \u0639\u0645\u0644 <strong>\u0623\u0635\u0644\u064a \u0644\u0640 GitOps<\/strong> \u062d\u064a\u062b \u062a\u0643\u0648\u0646 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0645\u0648\u0627\u0631\u062f Kubernetes \u062a\u064f\u062f\u0627\u0631 \u0643\u0623\u064a manifest \u0622\u062e\u0631.<\/li>\n<\/ul>\n<h3>\u0627\u0633\u062a\u062e\u062f\u0645 Sentinel \u0639\u0646\u062f\u0645\u0627:<\/h3>\n<ul>\n<li>\u0644\u062f\u064a\u0643 \u0627\u0633\u062a\u062b\u0645\u0627\u0631 \u0643\u0628\u064a\u0631 \u0641\u064a <strong>\u0645\u0646\u062a\u062c\u0627\u062a HashiCorp<\/strong> \u2014 \u062e\u0627\u0635\u0629 Terraform Cloud \u0623\u0648 Enterprise.<\/li>\n<li>\u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 <strong>\u0645\u0633\u062a\u0648\u064a\u0627\u062a \u0625\u0646\u0641\u0627\u0630 \u0645\u062a\u062f\u0631\u062c\u0629<\/strong> (\u0627\u0633\u062a\u0634\u0627\u0631\u064a\u060c \u0625\u0644\u0632\u0627\u0645\u064a-\u0645\u0631\u0646\u060c \u0625\u0644\u0632\u0627\u0645\u064a-\u0635\u0627\u0631\u0645) \u0644\u0646\u0634\u0631 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u062a\u062f\u0631\u064a\u062c\u064a\u0627\u064b.<\/li>\n<li>\u0627\u0647\u062a\u0645\u0627\u0645\u0643 \u0627\u0644\u0623\u0633\u0627\u0633\u064a \u0628\u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0647\u0648 <strong>\u062d\u0648\u0643\u0645\u0629 Terraform<\/strong> \u2014 \u062a\u0642\u064a\u064a\u062f \u0623\u0646\u0648\u0627\u0639 \u0627\u0644\u0645\u0648\u0627\u0631\u062f \u0648\u0625\u0646\u0641\u0627\u0630 \u0627\u0644\u0639\u0644\u0627\u0645\u0627\u062a \u0648\u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0645\u0646\u0627\u0637\u0642 \u0648\u0627\u0644\u062a\u062d\u0643\u0645 \u0641\u064a \u0627\u0644\u062a\u0643\u0627\u0644\u064a\u0641.<\/li>\n<li>\u0644\u062f\u064a\u0643 <strong>\u0645\u062a\u0637\u0644\u0628\u0627\u062a \u0627\u0645\u062a\u062b\u0627\u0644 \u0645\u0624\u0633\u0633\u064a\u0629<\/strong> \u062a\u0633\u062a\u0641\u064a\u062f \u0645\u0646 \u0645\u064a\u0632\u0627\u062a \u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0627\u0644\u0645\u062f\u0645\u062c\u0629 \u0641\u064a Sentinel.<\/li>\n<\/ul>\n<h3>\u0627\u0633\u062a\u062e\u062f\u0645 Cedar \u0639\u0646\u062f\u0645\u0627:<\/h3>\n<ul>\n<li>\u062d\u0627\u062c\u062a\u0643 \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629 \u0647\u064a <strong>\u0627\u0644\u062a\u0641\u0648\u064a\u0636 \u0627\u0644\u062f\u0642\u064a\u0642<\/strong> \u2014 \u0645\u0646 \u064a\u0645\u0643\u0646\u0647 \u0627\u0644\u0646\u0634\u0631 \u0623\u064a\u0646\u060c \u0648\u0623\u064a \u0623\u0646\u0627\u0628\u064a\u0628 \u064a\u0645\u0643\u0646\u0647\u0627 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0623\u064a \u0623\u0633\u0631\u0627\u0631\u060c \u0648\u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0627\u0644\u0628\u064a\u0626\u0627\u062a \u0627\u0644\u0645\u0628\u0646\u064a \u0639\u0644\u0649 \u0627\u0644\u0623\u062f\u0648\u0627\u0631.<\/li>\n<li>\u062a\u0628\u0646\u064a \u0639\u0644\u0649 <strong>AWS<\/strong> \u0648\u062a\u0631\u064a\u062f \u062a\u0643\u0627\u0645\u0644\u0627\u064b \u0623\u0635\u0644\u064a\u0627\u064b \u0645\u0639 Amazon Verified Permissions.<\/li>\n<li>\u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 <strong>\u062a\u062d\u0642\u0642 \u0631\u0633\u0645\u064a<\/strong> \u0645\u0646 \u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u2014 \u0625\u062b\u0628\u0627\u062a \u0623\u0646 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0644\u0627 \u062a\u062a\u0639\u0627\u0631\u0636 \u0648\u0623\u0646 \u0625\u062c\u0631\u0627\u0621\u0627\u062a \u0645\u0639\u064a\u0646\u0629 \u0645\u0633\u0645\u0648\u062d \u0628\u0647\u0627 \u062f\u0627\u0626\u0645\u0627\u064b \u0623\u0648 \u0645\u0631\u0641\u0648\u0636\u0629 \u062f\u0627\u0626\u0645\u0627\u064b.<\/li>\n<li>\u062a\u0628\u0646\u064a <strong>\u0645\u0646\u0635\u0629 \u0646\u0634\u0631 \u0645\u062e\u0635\u0635\u0629<\/strong> \u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0645\u0646\u0637\u0642 \u062a\u0641\u0648\u064a\u0636 \u0645\u0636\u0645\u0651\u0646.<\/li>\n<\/ul>\n<h2>\u0647\u0644 \u064a\u0645\u0643\u0646\u0643 \u0627\u0644\u062c\u0645\u0639 \u0628\u064a\u0646\u0647\u0627\u061f<\/h2>\n<p>\u0628\u0627\u0644\u062a\u0623\u0643\u064a\u062f \u2014 \u0648\u0627\u0644\u0639\u062f\u064a\u062f \u0645\u0646 \u0627\u0644\u0645\u0624\u0633\u0633\u0627\u062a \u0627\u0644\u0646\u0627\u0636\u062c\u0629 \u062a\u0641\u0639\u0644 \u0630\u0644\u0643. \u0647\u0630\u0647 \u0627\u0644\u0645\u062d\u0631\u0643\u0627\u062a \u0644\u064a\u0633\u062a \u0645\u062a\u0646\u0627\u0641\u064a\u0629\u061b \u0641\u0647\u064a \u062a\u0639\u0627\u0644\u062c \u0637\u0628\u0642\u0627\u062a \u0645\u062e\u062a\u0644\u0641\u0629 \u0645\u0646 \u0645\u062c\u0645\u0648\u0639\u0629 \u0623\u0645\u0627\u0646 CI\/CD. \u0642\u062f \u064a\u0628\u062f\u0648 \u0625\u0639\u062f\u0627\u062f \u0645\u0624\u0633\u0633\u064a \u0648\u0627\u0642\u0639\u064a \u0643\u0627\u0644\u062a\u0627\u0644\u064a:<\/p>\n<ul>\n<li><strong>OPA\/Conftest \u0641\u064a \u0623\u0646\u0627\u0628\u064a\u0628 CI:<\/strong> \u064a\u062a\u062d\u0642\u0642 \u0645\u0646 \u0645\u0644\u0641\u0627\u062a Kubernetes manifests \u0648Dockerfiles \u0648\u0645\u0644\u0641\u0627\u062a \u0627\u0644\u062a\u0647\u064a\u0626\u0629 \u0627\u0644\u0639\u0627\u0645\u0629 \u0641\u064a \u0641\u062d\u0648\u0635\u0627\u062a \u0637\u0644\u0628\u0627\u062a \u0627\u0644\u0633\u062d\u0628. \u064a\u0644\u062a\u0642\u0637 \u0627\u0644\u062a\u0647\u064a\u0626\u0627\u062a \u0627\u0644\u062e\u0627\u0637\u0626\u0629 \u0642\u0628\u0644 \u062f\u0645\u062c \u0627\u0644\u0643\u0648\u062f.<\/li>\n<li><strong>Kyverno \u0643\u0645\u062a\u062d\u0643\u0645 \u0642\u0628\u0648\u0644 Kubernetes:<\/strong> \u064a\u0648\u0641\u0631 \u0637\u0628\u0642\u0629 \u0625\u0646\u0641\u0627\u0630 \u062b\u0627\u0646\u064a\u0629 \u0639\u0644\u0649 \u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u0639\u0646\u0642\u0648\u062f. \u062d\u062a\u0649 \u0644\u0648 \u062a\u0633\u0631\u0651\u0628\u062a \u062a\u0647\u064a\u0626\u0629 \u062e\u0627\u0637\u0626\u0629 \u0645\u0646 CI\u060c \u064a\u062d\u0638\u0631\u0647\u0627 Kyverno \u0639\u0646\u062f \u0627\u0644\u0642\u0628\u0648\u0644. \u0643\u0645\u0627 \u0623\u0646 \u0642\u062f\u0631\u0627\u062a \u0627\u0644\u062a\u0639\u062f\u064a\u0644 \u0641\u064a Kyverno \u062a\u062d\u0642\u0646 \u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0644\u0623\u0645\u0627\u0646 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 (\u0633\u064a\u0627\u0642\u0627\u062a \u0627\u0644\u0623\u0645\u0627\u0646 \u0648\u062d\u062f\u0648\u062f \u0627\u0644\u0645\u0648\u0627\u0631\u062f \u0648\u0627\u0644\u0639\u0644\u0627\u0645\u0627\u062a).<\/li>\n<li><strong>Sentinel \u0641\u064a Terraform Cloud:<\/strong> \u064a\u062d\u0643\u0645 \u062a\u0648\u0641\u064a\u0631 \u0627\u0644\u0628\u0646\u064a\u0629 \u0627\u0644\u062a\u062d\u062a\u064a\u0629 \u2014 \u062a\u0642\u064a\u064a\u062f \u0623\u0646\u0648\u0627\u0639 \u0627\u0644\u0645\u0648\u0627\u0631\u062f \u0648\u0625\u0646\u0641\u0627\u0630 \u0645\u0639\u0627\u064a\u064a\u0631 \u0627\u0644\u0639\u0644\u0627\u0645\u0627\u062a \u0648\u062a\u062d\u062f\u064a\u062f \u0623\u0630\u0648\u0646\u0627\u062a IAM \u0648\u0627\u0644\u062a\u062d\u0643\u0645 \u0641\u064a \u0627\u0644\u062a\u0643\u0644\u0641\u0629.<\/li>\n<li><strong>Cedar \u0644\u062a\u0641\u0648\u064a\u0636 \u0627\u0644\u0646\u0634\u0631:<\/strong> \u064a\u0646\u0645\u0630\u062c \u0645\u0646 \u064a\u0645\u0643\u0646\u0647 \u062a\u0634\u063a\u064a\u0644 \u0639\u0645\u0644\u064a\u0627\u062a \u0627\u0644\u0646\u0634\u0631 \u0625\u0644\u0649 \u0623\u064a \u0628\u064a\u0626\u0627\u062a\u060c \u0648\u064a\u0646\u0641\u0630 \u0642\u0631\u0627\u0631\u0627\u062a RBAC\/ABAC \u0641\u064a \u0645\u0646\u0635\u0629 \u0646\u0634\u0631 \u0645\u062e\u0635\u0635\u0629.<\/li>\n<\/ul>\n<p>\u064a\u062a\u0628\u0639 \u0647\u0630\u0627 \u0627\u0644\u0646\u0647\u062c \u0645\u062a\u0639\u062f\u062f \u0627\u0644\u0637\u0628\u0642\u0627\u062a \u0645\u0628\u062f\u0623 <strong>\u0627\u0644\u062f\u0641\u0627\u0639 \u0641\u064a \u0627\u0644\u0639\u0645\u0642<\/strong>. \u064a\u0639\u0645\u0644 \u0643\u0644 \u0645\u062d\u0631\u0643 \u0639\u0646\u062f \u0646\u0642\u0637\u0629 \u0625\u0646\u0641\u0627\u0630 \u0645\u062e\u062a\u0644\u0641\u0629\u060c \u0648\u0645\u0639\u0627\u064b \u064a\u064f\u0646\u0634\u0626\u0648\u0646 \u062d\u062f\u0648\u062f \u0623\u0645\u0627\u0646 \u0645\u062a\u062f\u0627\u062e\u0644\u0629 \u0645\u0642\u0627\u0648\u0645\u0629 \u0644\u0623\u064a \u0646\u0642\u0637\u0629 \u0641\u0634\u0644 \u0648\u0627\u062d\u062f\u0629.<\/p>\n<p>\u0645\u0641\u062a\u0627\u062d \u0625\u0646\u062c\u0627\u062d \u0627\u0633\u062a\u0631\u0627\u062a\u064a\u062c\u064a\u0629 \u0645\u062a\u0639\u062f\u062f\u0629 \u0627\u0644\u0645\u062d\u0631\u0643\u0627\u062a \u0647\u0648 <strong>\u0627\u0644\u0645\u0644\u0643\u064a\u0629 \u0627\u0644\u0648\u0627\u0636\u062d\u0629 \u0648\u062d\u062f\u0648\u062f \u0627\u0644\u0646\u0637\u0627\u0642<\/strong>. \u062d\u062f\u0651\u062f \u0623\u064a \u0645\u062d\u0631\u0643 \u0645\u0633\u0624\u0648\u0644 \u0639\u0646 \u0623\u064a \u0645\u062c\u0627\u0644\u060c \u0648\u0648\u062b\u0651\u0642 \u062a\u0633\u0644\u0633\u0644 \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a\u060c \u0648\u062a\u062c\u0646\u0651\u0628 \u062a\u0643\u0631\u0627\u0631 \u0646\u0641\u0633 \u0627\u0644\u0633\u064a\u0627\u0633\u0629 \u0639\u0628\u0631 \u0645\u062d\u0631\u0643\u0627\u062a \u0645\u062a\u0639\u062f\u062f\u0629 (\u0645\u0645\u0627 \u064a\u064f\u0646\u0634\u0626 \u0627\u0646\u062d\u0631\u0627\u0641\u0627\u064b \u0648\u0639\u0628\u0621 \u0635\u064a\u0627\u0646\u0629).<\/p>\n<h2>\u062a\u0648\u0635\u064a\u0627\u062a \u0639\u0645\u0644\u064a\u0629<\/h2>\n<p>\u0625\u0630\u0627 \u0643\u0646\u062a \u062a\u0628\u062f\u0623 \u0644\u0644\u062a\u0648 \u0645\u0639 \u0645\u062d\u0631\u0643\u0627\u062a \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0641\u064a CI\/CD\u060c \u0641\u0625\u0644\u064a\u0643 \u0645\u0633\u0627\u0631\u0627\u064b \u0639\u0645\u0644\u064a\u0627\u064b:<\/p>\n<ol>\n<li><strong>\u0627\u0628\u062f\u0623 \u0628\u0640 Conftest + OPA \u0641\u064a \u0623\u0646\u0628\u0648\u0628 CI \u0627\u0644\u062e\u0627\u0635 \u0628\u0643.<\/strong> \u064a\u0645\u0646\u062d\u0643 \u0623\u0648\u0633\u0639 \u062a\u063a\u0637\u064a\u0629 \u0628\u0623\u0642\u0644 \u0628\u0646\u064a\u0629 \u062a\u062d\u062a\u064a\u0629. \u0627\u0643\u062a\u0628 \u0628\u0639\u0636 \u0633\u064a\u0627\u0633\u0627\u062a Rego \u0639\u0627\u0644\u064a\u0629 \u0627\u0644\u062a\u0623\u062b\u064a\u0631 (\u0644\u0627 \u062d\u0627\u0648\u064a\u0627\u062a root\u060c \u0644\u0627 \u0639\u0644\u0627\u0645\u0627\u062a latest\u060c \u062d\u062f\u0648\u062f \u0645\u0648\u0627\u0631\u062f \u0645\u0637\u0644\u0648\u0628\u0629) \u0648\u0627\u062f\u0645\u062c\u0647\u0627 \u0641\u064a \u0641\u062d\u0648\u0635\u0627\u062a \u0637\u0644\u0628\u0627\u062a \u0627\u0644\u0633\u062d\u0628. \u0627\u062a\u0628\u0639 <a href=\"https:\/\/secure-pipelines.com\/ci-cd-security\/lab-enforcing-kubernetes-policies-opa-conftest-ci-cd\/\">\u0645\u062e\u062a\u0628\u0631 Conftest<\/a> \u0644\u0644\u0628\u062f\u0621.<\/li>\n<li><strong>\u0623\u0636\u0641 Kyverno \u0643\u0645\u062a\u062d\u0643\u0645 \u0642\u0628\u0648\u0644<\/strong> \u0628\u0645\u062c\u0631\u062f \u0623\u0646 \u064a\u0643\u0648\u0646 \u0644\u062f\u064a\u0643 \u0639\u0646\u0627\u0642\u064a\u062f Kubernetes \u0644\u062d\u0645\u0627\u064a\u062a\u0647\u0627. \u064a\u0648\u0641\u0631 \u0634\u0628\u0643\u0629 \u0623\u0645\u0627\u0646 \u062d\u0627\u0633\u0645\u0629 \u0648\u0642\u062f\u0631\u0627\u062a \u0627\u0644\u062a\u0639\u062f\u064a\u0644 \u0641\u064a\u0647 \u062a\u0648\u0641\u0631 \u062c\u0647\u062f\u0627\u064b \u062a\u0634\u063a\u064a\u0644\u064a\u0627\u064b \u0643\u0628\u064a\u0631\u0627\u064b.<\/li>\n<li><strong>\u0627\u0639\u062a\u0645\u062f Sentinel \u0625\u0630\u0627 \u0643\u0646\u062a \u062a\u0633\u062a\u062e\u062f\u0645 Terraform Cloud\/Enterprise.<\/strong> \u0625\u0646\u0647 \u0627\u0644\u0645\u0633\u0627\u0631 \u0627\u0644\u0623\u0642\u0644 \u0645\u0642\u0627\u0648\u0645\u0629 \u0644\u062d\u0648\u0643\u0645\u0629 Terraform\u060c \u0648\u0645\u0633\u062a\u0648\u064a\u0627\u062a \u0627\u0644\u0625\u0646\u0641\u0627\u0630 \u0627\u0644\u0645\u062a\u062f\u0631\u062c\u0629 \u062a\u062c\u0639\u0644 \u0627\u0644\u0646\u0634\u0631 \u0633\u0644\u0633\u0627\u064b.<\/li>\n<li><strong>\u0642\u064a\u0651\u0645 Cedar \u0639\u0646\u062f\u0645\u0627 \u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0646\u0645\u0630\u062c\u0629 \u0627\u0644\u062a\u0641\u0648\u064a\u0636.<\/strong> \u0625\u0630\u0627 \u0643\u0627\u0646\u062a \u0645\u0646\u0635\u0629 CI\/CD \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0643 \u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u062a\u062d\u0643\u0645 \u0648\u0635\u0648\u0644 \u062f\u0642\u064a\u0642 \u064a\u062a\u062c\u0627\u0648\u0632 \u0645\u0627 \u064a\u0648\u0641\u0631\u0647 RBAC\u060c \u0641\u0625\u0646 \u0633\u064a\u0627\u0633\u0627\u062a Cedar \u0627\u0644\u0642\u0627\u0628\u0644\u0629 \u0644\u0644\u062a\u062d\u0644\u064a\u0644 \u0645\u0646\u0627\u0633\u0628\u0629 \u062a\u0645\u0627\u0645\u0627\u064b.<\/li>\n<\/ol>\n<h2>\u0627\u0644\u062e\u0644\u0627\u0635\u0629<\/h2>\n<p>\u0644\u0645 \u062a\u0639\u062f \u0645\u062d\u0631\u0643\u0627\u062a \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0627\u062e\u062a\u064a\u0627\u0631\u064a\u0629 \u0644\u0623\u0645\u0627\u0646 CI\/CD \u0627\u0644\u062c\u0627\u062f. \u0627\u0644\u0633\u0624\u0627\u0644 \u0644\u064a\u0633 \u0645\u0627 \u0625\u0630\u0627 \u0643\u0646\u062a \u0633\u062a\u062a\u0628\u0646\u0649 \u0648\u0627\u062d\u062f\u0629\u060c \u0628\u0644 \u0623\u064a \u0645\u062c\u0645\u0648\u0639\u0629 \u062a\u0646\u0627\u0633\u0628 \u0645\u062c\u0645\u0648\u0639\u062a\u0643 \u0628\u0634\u0643\u0644 \u0623\u0641\u0636\u0644. \u064a\u0642\u062f\u0645 OPA \u0627\u062a\u0633\u0627\u0639\u0627\u064b \u0644\u0627 \u0645\u062b\u064a\u0644 \u0644\u0647 \u0648\u0646\u0638\u0627\u0645\u0627\u064b \u0628\u064a\u0626\u064a\u0627\u064b \u0646\u0627\u0636\u062c\u0627\u064b. \u064a\u0648\u0641\u0631 Kyverno \u0623\u062f\u0646\u0649 \u062d\u0627\u062c\u0632 \u062f\u062e\u0648\u0644 \u0644\u0641\u0631\u0642 Kubernetes. Sentinel \u0647\u0648 \u0627\u0644\u062e\u064a\u0627\u0631 \u0627\u0644\u0637\u0628\u064a\u0639\u064a \u0644\u0644\u0628\u0646\u064a\u0629 \u0627\u0644\u062a\u062d\u062a\u064a\u0629 \u0627\u0644\u0645\u0631\u062a\u0643\u0632\u0629 \u0639\u0644\u0649 HashiCorp. \u064a\u062c\u0644\u0628 Cedar \u0627\u0644\u062a\u062d\u0642\u0642 \u0627\u0644\u0631\u0633\u0645\u064a \u0648\u0646\u0645\u0630\u062c\u0629 \u0627\u0644\u062a\u0641\u0648\u064a\u0636 \u0627\u0644\u0646\u0638\u064a\u0641\u0629 \u0644\u0644\u0641\u0631\u0642 \u0627\u0644\u062a\u064a \u062a\u0628\u0646\u064a \u0639\u0644\u0649 AWS.<\/p>\n<p>\u0623\u0641\u0636\u0644 \u0627\u0633\u062a\u0631\u0627\u062a\u064a\u062c\u064a\u0629 \u0633\u064a\u0627\u0633\u0627\u062a \u0647\u064a \u0627\u0633\u062a\u0631\u0627\u062a\u064a\u062c\u064a\u0629 \u0645\u062a\u0639\u062f\u062f\u0629 \u0627\u0644\u0637\u0628\u0642\u0627\u062a \u2014 \u0627\u0644\u062a\u0642\u0627\u0637 \u0627\u0644\u062a\u0647\u064a\u0626\u0627\u062a \u0627\u0644\u062e\u0627\u0637\u0626\u0629 \u0641\u064a CI \u0645\u0639 Conftest\u060c \u0648\u0625\u0646\u0641\u0627\u0630 \u0633\u064a\u0627\u0633\u0627\u062a \u0627\u0644\u0642\u0628\u0648\u0644 \u0645\u0639 Kyverno\u060c \u0648\u062d\u0648\u0643\u0645\u0629 \u0627\u0644\u0628\u0646\u064a\u0629 \u0627\u0644\u062a\u062d\u062a\u064a\u0629 \u0645\u0639 Sentinel\u060c \u0648\u0646\u0645\u0630\u062c\u0629 \u0627\u0644\u062a\u0641\u0648\u064a\u0636 \u0645\u0639 Cedar. \u0627\u0628\u062f\u0623 \u0628\u0627\u0644\u0645\u062d\u0631\u0643 \u0627\u0644\u0630\u064a \u064a\u0639\u0627\u0644\u062c \u0641\u062c\u0648\u062a\u0643 \u0627\u0644\u0623\u0643\u062b\u0631 \u0625\u0644\u062d\u0627\u062d\u0627\u064b\u060c \u0648\u0623\u062b\u0628\u062a \u0642\u064a\u0645\u062a\u0647\u060c \u062b\u0645 \u062a\u0648\u0633\u0651\u0639 \u0645\u0646 \u0647\u0646\u0627\u0643.<\/p>\n<p>\u0644\u0644\u062a\u0639\u0645\u0651\u0642 \u0623\u0643\u062b\u0631 \u0641\u064a OPA \u0648Rego\u060c \u0627\u0642\u0631\u0623 \u062f\u0644\u064a\u0644\u0646\u0627: <a href=\"https:\/\/secure-pipelines.com\/ar\/ci-cd-security\/policy-as-code-ci-cd-opa-rego-security-gates-2\/\">\u0627\u0644\u0633\u064a\u0627\u0633\u0629 \u0643\u0643\u0648\u062f \u0641\u064a CI\/CD: \u0625\u0646\u0641\u0627\u0630 \u0628\u0648\u0627\u0628\u0627\u062a \u0627\u0644\u0623\u0645\u0627\u0646 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 OPA \u0648Rego<\/a>. \u0644\u0644\u062a\u0637\u0628\u064a\u0642 \u0627\u0644\u0639\u0645\u0644\u064a \u0645\u0639 Conftest \u0641\u064a \u0623\u0646\u0628\u0648\u0628 CI\u060c \u0627\u0639\u0645\u0644 \u0639\u0644\u0649 <a href=\"https:\/\/secure-pipelines.com\/ci-cd-security\/lab-enforcing-kubernetes-policies-opa-conftest-ci-cd\/\">\u0645\u062e\u062a\u0628\u0631: \u0625\u0646\u0641\u0627\u0630 \u0633\u064a\u0627\u0633\u0627\u062a \u0646\u0634\u0631 Kubernetes \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 OPA Conftest \u0641\u064a CI\/CD<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0645\u0642\u062f\u0645\u0629: \u0644\u0645\u0627\u0630\u0627 \u062a\u064f\u0639\u062a\u0628\u0631 \u0645\u062d\u0631\u0643\u0627\u062a \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0645\u0647\u0645\u0629 \u0644\u0623\u0646\u0627\u0628\u064a\u0628 CI\/CD \u062a\u0639\u0645\u0644 \u0623\u0646\u0627\u0628\u064a\u0628 CI\/CD \u0627\u0644\u062d\u062f\u064a\u062b\u0629 \u0628\u0633\u0631\u0639\u0629 \u0643\u0628\u064a\u0631\u0629. \u062a\u064f\u0646\u0641\u0651\u0630 \u0627\u0644\u0641\u0631\u0642 \u0639\u0634\u0631\u0627\u062a \u2014 \u0648\u0623\u062d\u064a\u0627\u0646\u0627\u064b \u0645\u0626\u0627\u062a \u2014 \u0639\u0645\u0644\u064a\u0627\u062a \u0627\u0644\u0646\u0634\u0631 \u064a\u0648\u0645\u064a\u0627\u064b\u060c \u0648\u0643\u0644 \u0639\u0645\u0644\u064a\u0629 \u0646\u0634\u0631 \u062a\u062d\u0645\u0644 \u0642\u0631\u0627\u0631\u0627\u062a \u062a\u0647\u064a\u0626\u0629 \u062a\u0624\u062b\u0631 \u0639\u0644\u0649 \u0627\u0644\u0623\u0645\u0627\u0646 \u0648\u0627\u0644\u0627\u0645\u062a\u062b\u0627\u0644 \u0648\u0627\u0644\u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0627\u0644\u062a\u0634\u063a\u064a\u0644\u064a. \u064a\u0645\u0643\u0646 \u0644\u0645\u0644\u0641 Kubernetes manifest \u0648\u0627\u062d\u062f \u062e\u0627\u0637\u0626 \u0627\u0644\u062a\u0647\u064a\u0626\u0629\u060c \u0623\u0648 \u062f\u0648\u0631 IAM \u0645\u0641\u0631\u0637 \u0627\u0644\u0635\u0644\u0627\u062d\u064a\u0627\u062a \u0641\u064a Terraform\u060c \u0623\u0648 \u0635\u0648\u0631\u0629 \u062d\u0627\u0648\u064a\u0629 \u0645\u0633\u062d\u0648\u0628\u0629 \u0645\u0646 &#8230; <a title=\"\u0645\u0642\u0627\u0631\u0646\u0629 \u0645\u062d\u0631\u0643\u0627\u062a \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0641\u064a CI\/CD: OPA \u0645\u0642\u0627\u0628\u0644 Kyverno \u0645\u0642\u0627\u0628\u0644 Sentinel \u0645\u0642\u0627\u0628\u0644 Cedar\" class=\"read-more\" href=\"https:\/\/secure-pipelines.com\/ar\/ci-cd-security\/ci-cd-policy-engines-compared-opa-kyverno-sentinel-cedar\/\" aria-label=\"Read more about \u0645\u0642\u0627\u0631\u0646\u0629 \u0645\u062d\u0631\u0643\u0627\u062a \u0627\u0644\u0633\u064a\u0627\u0633\u0627\u062a \u0641\u064a CI\/CD: OPA \u0645\u0642\u0627\u0628\u0644 Kyverno \u0645\u0642\u0627\u0628\u0644 Sentinel \u0645\u0642\u0627\u0628\u0644 Cedar\">\u0627\u0642\u0631\u0623 \u0627\u0644\u0645\u0632\u064a\u062f<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26,28],"tags":[],"post_folder":[],"class_list":["post-809","post","type-post","status-publish","format-standard","hentry","category-ci-cd-security","category-pipeline-hardening"],"_links":{"self":[{"href":"https:\/\/secure-pipelines.com\/ar\/wp-json\/wp\/v2\/posts\/809","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/secure-pipelines.com\/ar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/secure-pipelines.com\/ar\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/secure-pipelines.com\/ar\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/secure-pipelines.com\/ar\/wp-json\/wp\/v2\/comments?post=809"}],"version-history":[{"count":1,"href":"https:\/\/secure-pipelines.com\/ar\/wp-json\/wp\/v2\/posts\/809\/revisions"}],"predecessor-version":[{"id":810,"href":"https:\/\/secure-pipelines.com\/ar\/wp-json\/wp\/v2\/posts\/809\/revisions\/810"}],"wp:attachment":[{"href":"https:\/\/secure-pipelines.com\/ar\/wp-json\/wp\/v2\/media?parent=809"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/secure-pipelines.com\/ar\/wp-json\/wp\/v2\/categories?post=809"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/secure-pipelines.com\/ar\/wp-json\/wp\/v2\/tags?post=809"},{"taxonomy":"post_folder","embeddable":true,"href":"https:\/\/secure-pipelines.com\/ar\/wp-json\/wp\/v2\/post_folder?post=809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}