Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit0763d64

Browse files
authored
Q2 gitops abac app entity (#767)
* Add article for app entities GitOps ABACAdded new article for ABAC for GitOps apps and added missing/updated related content for managing apps* Add entry to home yamlUpdated examples of rules* Update gitops-abac.mdContent edits* Update gitops-abac.mdReplaced links in table with HTML links* Update gitops-abac.mdRemoved content on hierarchy from attribute descriptions based on feedback; added options to use attributes* Update gitops abac with feedbackImplemented feedback and added entry to nav yaml* Update gitops abacAdded new supported actions to gitops abac and updated app and resource management tasks* Update gitops-abac.mdAdded section on abac via terraform* Update access-control.mdChanged topic title for Classic access control to include pipelines and added related article link to Terraform doc* Update gitops-abac.mdFixed formatting issues and added rollback player option also to pause/resume rollout* Add screenshot of rule to topicAdded screenshot
1 parent0e3ba04 commit0763d64

File tree

8 files changed

+131
-9
lines changed

8 files changed

+131
-9
lines changed

‎_data/home-content.yml‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,8 +252,10 @@
252252
localurl:/docs/administration/account-user-management/add-users/
253253
-title:Set up OAuth2 for GitOps
254254
localurl:/docs/administration/account-user-management/oauth-setup/
255-
-title:Access control
255+
-title:Access control for pipelines
256256
localurl:/docs/administration/account-user-management/access-control/
257+
-title:Access control for GitOps
258+
localurl:/docs/administration/account-user-management/gitops-abac/
257259
-title:Audit
258260
localurl:/docs/administration/account-user-management/audit/
259261
-title:User settings

‎_data/nav.yml‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -542,8 +542,10 @@
542542
url:"/create-codefresh-account"
543543
-title:Adding users and teams
544544
url:"/add-users"
545-
-title:Configuring access control
545+
-title:Configuring access control for pipelines
546546
url:"/access-control"
547+
-title:Configuring access control for GitOps
548+
url:"/gitops-abac"
547549
-title:Setting up OAuth2 for GitOps
548550
url:"/oauth-setup"
549551
-title:Authorize access to organizations/projects

‎_docs/administration/account-user-management/access-control.md‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
2-
title:"Configuring access control"
3-
description:"Restrict resources in a company environment"
2+
title:"Configuring access control for pipelines"
3+
description:"Restrict resourcesto pipelinesin a company environment"
44
group:administration
55
sub_group:account-user-management
66
redirect_from:
@@ -458,5 +458,7 @@ By default, if configured for the account, users can also load pipeline definiti
458458

459459

460460
##Related articles
461+
[Codefresh Provider for Terraform](https://registry.terraform.io/providers/codefresh-io/codefresh/latest/docs){:target="\_blank"}
461462
[Codefresh installation options]({{site.baseurl}}/docs/installation/installation-options/)
462463
[Managing your Kubernetes cluster]({{site.baseurl}}/docs/deployments/kubernetes/manage-kubernetes/)
464+

‎_docs/administration/account-user-management/create-codefresh-account.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ redirect_from:
99
-/docs/create-an-account/
1010
-/docs/getting-started/
1111
-/docs/getting-started/introduction/
12+
toc:true
1213
---
1314
Before you can do create pipelines, build, and deploy applications in Codefresh, you need to create a Codefresh account.
1415

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
---
2+
title:"Access control for GitOps"
3+
description:"Restrict access to GitOps entities through ABAC"
4+
toc:true
5+
---
6+
7+
>This feature is currently in Beta.
8+
9+
Control access to entities in GitOps through ABAC (Attribute-Based Access Control). ABAC allows fine-grained access to application entities through the use of rules.
10+
For GitOps, you can currently define ABAC for application entities in the Codefresh UI or programmatically via Terraform.
11+
For more information on ABAC, see[ABAC on Wikipedia](https://en.wikipedia.org/wiki/Attribute-based_access_control){:target="\_blank"}.
12+
13+
14+
Rules define the*who*,*what*, and*where* control access to GitOps applications, through the following elements:
15+
* Teams
16+
Teams control the_who_ part of the rule.
17+
18+
* Actions
19+
Actions control the_what_ part of the rule. You need to select at least one action.
20+
21+
* Attributes
22+
Attributes control the_where_ part of the rule.
23+
Attributes are a combination of standard Kubernetes and Codefresh-specific attributes. You have Kubernetes attributes such as clusters, namespaces, and labels, and attributes unique to Codefresh such as Runtimes and Git Sources.
24+
25+
26+
##Creating a rule in Codefresh UI
27+
For each rule, you must select or define:
28+
* The team or teams the rule applies to, with at least one team being mandatory
29+
* The action or actions permitted for the entity, with at least one action being mandatory
30+
* The attribute or attributes determining where access is permitted
31+
32+
**How to**
33+
34+
1. In the Codefresh UI, on the toolbar, click the**Settings** icon.
35+
1. On the sidebar, from Access & Collaboration, select[**GitOps Permissions**](https://g.codefresh.io/account-admin/permissions/teams){:target="\_blank"}.
36+
1. To create a rule, click**Add** and define the**Teams**,**Actions**, and**Attributes** for the rule.
37+
1. To confirm, click**Add** once again.
38+
39+
{% include
40+
image.html
41+
lightbox="true"
42+
file="/images/administration/access-control/gitops/gitops-add-rule.png"
43+
url="/images/administration/access-control/gitops/gitops-add-rule.png"
44+
alt="Add rule for GitOps applications"
45+
caption="Add rule for GitOps applications"
46+
max-width="50%"
47+
%}
48+
49+
The rule you added for the entity is displayed in the GitOps Permissions page. Edit or delete the rule by clicking the respective icons.
50+
51+
##Creating a rule programmatically via Terraform
52+
You can also create rules enforcing ABAC for GitOps via Terraform.
53+
See the documentation for[codefresh_abac_rules](https://registry.terraform.io/providers/codefresh-io/codefresh/latest/docs/resources/abac_rules){:target="\_blank"}.
54+
55+
56+
57+
##GitOps Applications rule elements
58+
59+
{: .table .table-bordered .table-hover}
60+
| Rule Element| Description|
61+
| --------------| --------------|
62+
|Teams| The team or teams to which to give access to the Application Entity. See[Adding users and teams]({{site.baseurl}}/docs/administration/account-user-management/add-users/).|
63+
|Actions | The actions permitted for the application entity, and can be any or all of the following: {::nomarkdown} <ul><li><b>Refresh</b>: Allow users to manually regular refresh or hard refresh. The Refresh action is automatically disabled on selecting the Sync action which takes precedence. See <a href="https://codefresh.io/docs/docs/deployments/gitops/manage-application/#refreshhard-refresh-applications">Refresh/Hard Refresh applications</a>.</li><li><b>Sync</b>: Allow users to manually sync an application on-demand, and define the options for manual sync.<br>Selecting Sync automatically disables the Refresh action as Sync takes precedence over it. <br> See <a href="https://codefresh.io/docs/docs/deployments/gitops/manage-application/#manually-synchronize-an-application">Manually synchronize an application</a>.</li><li><b>Terminate Sync</b>: Allow users to manually stop an ongoing sync for an application. See <a href="https://codefresh.io/docs/docs/deployments/gitops/manage-application/#terminate-on-going-application-sync">Terminate on-going application sync</a></li><li><b>Rollback application</b>: Allow users to rollback the current release of an application to a previous deployment version or release in Codefresh. See <a href="https://codefresh.io/docs/docs/deployments/gitops/manage-application/#rollback-gitops-applications">Rollback GitOps applications</a>.</li><li><b>Pause rollout</b> and <b>Resume rollout</b>: Allow users to pause an ongoing rollout and resume a paused rollout either directly from the Timeline tab of the application, or through the controls in the Rollout Player. <br>See <a href="https://codefresh.io/docs/docs/deployments/gitops/manage-application/#pauseresume-ongoing-rollouts">Pause/resume ongoing rollouts</a> and <a href="https://codefresh.io/docs/docs/deployments/gitops/manage-application/#manage-an-ongoing-rollout-with-the-rollout-player">Managing an ongoing rollout with the Rollout Player</a>.</li><li><b>Promote full rollout</b>: Allow users to use the Promote Full button in the Rollout Player to skip the remaining steps in the rollout and promote to deployment. See <a href="https://codefresh.io/docs/docs/deployments/gitops/manage-application/#manage-an-ongoing-rollout-with-the-rollout-player">Managing an ongoing rollout with the Rollout Player</a>.</li><li><b>Skip current step in rollout</b>: Allow users to use the Skip Step button in the Rollout Player to skip executing the current step in the rollout. <br>See <a href="https://codefresh.io/docs/docs/deployments/gitops/manage-application/#manage-an-ongoing-rollout-with-the-rollout-player">Managing an ongoing rollout with the Rollout Player</a>.</li><b>Delete resource</b>: Allow users to delete an application resource from the Current State tab. See <a href="https://codefresh.io/docs/docs/deployments/gitops/manage-application/#delete-an-application">Delete an application</a>.</li></ul>{:/} |
64+
|Attributes |Adding attributes, either individually or in combination, allow more fine-grained access control to enforce the _where_ policies for teams and actions. <br>Single attributes are useful to grant or deny access based on a specific property. For example, allow access to application entities on a cluster or within a namespace. <br>Combinations of attributes help enforce more complex access control. For example, require both a Runtime and a Label attribute to grant access to an application entity.<br>You can also add multiple instances of the same attribute with different values. For example, multiple Label attibutes with different values to sync application entities.{::nomarkdown} <ul><li><b>Cluster</b>: Allow access to all application entities in the cluster, regardless of the namespace, Runtime, and Git Sources of specific applications.</li><li><b>Namespace</b>: Allow access to application entities only within the namespace. If users have multiple accounts on different clusters with the same namespace, they can access applications in all those namespaces.</li><li><b>Runtime</b>: Allow access to application entities associated with the defined Runtime.</li><li><b>Git Source</b>: Allow access to application entities only in the defined Git Source. A Git Source is always associated with a Runtime.</li><li><b>Label</b>: Allow access only to application entities that share the same label.</li></ul>{:/} |
65+
66+
67+
68+
69+
70+
##Examples of rules for application entities
71+
72+
###Rule: Cluster-based access to all actions
73+
This rule grants the DevOps team permission to perform all actions for application entities on the production cluster, regardless of namespaces, Runtimes, Git Sources and labels.
74+
75+
**Rule elements**
76+
* Team:`DevOps`
77+
* Actions:`All`
78+
* Attributes:`Cluster: production-cluster`
79+
80+
81+
82+
###Rule: Cluster- and namespace-based access to all actions
83+
This rule grants two different teams permissions to perform all actions for application entities deployed on a specific cluster but within a specific namespace.
84+
85+
**Rule elements**
86+
* Teams:`Product`,`Docs`
87+
* Actions:`All`
88+
* Attributes:
89+
*`Cluster: development`
90+
*`Namespace: product-sandbox`
91+
92+
93+
###Rule: Namespace- and label-based access to specific actions
94+
This rule grants the Support team permission to manually sync application entities or manually terminate on-going syncs for application entities deployed in a specific namespace, but only for those entities that share the same label.
95+
96+
**Rule elements**
97+
* Team:`Customer Support`
98+
* Actions:`Sync`,`Terminate Sync`
99+
* Attributes:
100+
*`Namespace: poc`
101+
*`Label: customer=AcmePoc`
102+
103+
104+
##Related articles
105+
[Codefresh Provider for Terraform](https://registry.terraform.io/providers/codefresh-io/codefresh/latest/docs){:target="\_blank"}
106+
[Access control for pipelines]({{site.baseurl}}/docs/administration/account-user-management/access-control/)

‎_docs/deployments/gitops/applications-dashboard.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ Here's a description of the information and actions you can see for individual a
8080
| --------------| --------------|
8181
|Application filters | Filter by a range of attributes to customize the information in the dashboard to bring you what you need. {::nomarkdown} <ul><li>Application state<br>A snapshot that displays a breakdown of the deployed applications by their health status.<br>Click a status to filter by applications that match it.<br>Codefresh tracks Argo CD's set of health statuses. See the official documentation on <a href="https://argo-cd.readthedocs.io/en/stable/operator-manual/health" target=”_blank”>Health sets</a>.</li><li>Application attributes<br>Attribute filters support multi-selection, and results are based on an OR relationship within the same filter with multiple options, and an AND relationship between filters.<br>Clicking <b>More Filters</b> gives you options to filter by Health status, Cluster names, Namespace, and Type. <br><ul><li>Application Type: Can be any of the following<ul><li>Applications: Standalone applications. See the official documentation on <a href="https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#applications" target=”_blank”>Applications</a>.</li><li>ApplicationSet: Applications created using the ApplicationSet Custom Resource (CR) template. An ApplicationSet can generate single or multiple applications. See the official documentation on <a href="https://argo-cd.readthedocs.io/en/stable/user-guide/application-set" target=”_blank”>Generating Applications with ApplicationSet</a>.</li><li>Git Source: Applications created by Codefresh that includes other applications and CI resources. See <a href="https://codefresh.io/docs/docs/installation/gitops/git-sources/">Git Sources</a>.</li></ul></li></li><li>Labels:The K8s labels defined for the applications. The list displays labels of <i>all</i> the applications, even if you have applied filters.<br>To see the available labels, select <b>Add</b>, and then select the required label and one or more values. <br>To filter by the labels, select <b>Add</b> and then <b>Apply</b>.<br> See the official documentation on <a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/labels" target=”_blank”>Labels and selectors</a>.</li></ul></ul>{:/}|
8282
|{::nomarkdown}<imgsrc="../../../../images/icons/icon-mark-favorite.png?display=inline-block">{:/}| Star applications as favorites and view only the starred applications.{::nomarkdown}<br>Select the <imgsrc="../../../../images/icons/icon-mark-favorite.png?display=inline-block"> to star the application as a favorite.<br><br>To filter by favorite applications, on the filters bar, select <imgsrc="../../../../images/icons/icon-fav-starred.png?display=inline-block">.<br>{:/} TIP: If you star applications as favorites in the GitOps Apps dashboard, you can filter by the same applications in the[DORA metrics dashboard]({{site.baseurl}}/docs/dashboards/dora-metrics/#metrics-for-favorite-applications).|
83+
8384
|Application actions| Options to monitor/manage applications through the application's context menu. {::nomarkdown}<ul><li>Quick view<br>A comprehensive read-only view of the deployment and definition information for the application.</li>{:/}See [Application Quick View](#view-deployment-configuration-info-for-selected-gitops-application) in this article.{::nomarkdown}<li>Synchronize/Sync<br>Manually synchronize the application.</li>{:/}See [Manually sync applications]({{site.baseurl}}/docs/deployments/gitops/manage-application/#manually-synchronize-an-application).{::nomarkdown}<li>Edit<br>Modify application definitions.</li>{:/}See [Edit application definitions]({{site.baseurl}}/docs/deployments/gitops/manage-application/#edit-application-definitions).{::nomarkdown}<li>Refresh and Hard Refresh: Always available in the application's toolbar. <ul><li>Refresh: Retrieve desired (Git) state, compare with the live (cluster) state, and refresh the application to sync with the desired state.</li><li>Hard Refresh: Refresh the application to sync with the Git state, while removing the cache.</li></ul>See <a href="https://codefresh.io/docs/docs/deployments/gitops/manage-application/#refreshhard-refresh-gitops-applications">Refresh/hard refresh GitOps applications</a>.{:/} |
8485

8586

@@ -243,6 +244,7 @@ What can you do with application resources?
243244
*[Events](#events-for-application-resources)
244245

245246

247+
246248
###View modes for application resources
247249

248250
The Current State tab supports Tree and List view formats.
@@ -282,6 +284,7 @@ The Tree view is designed to impart key information at a glance. Review the sect
282284
**Context menu**
283285
Every resource has a context menu that opens on clicking the three dots on the right of the resource. The options available differ according to the type of resource.
284286

287+
285288
>**TIP**:
286289
If you have deep links configured for applications/resources for Hybrid GitOps Runtimes, these are also displayed in the context menu. To configure deep links in Codefresh, see[(Hybrid GitOps) Configure Deep Links to applications & resources]({{site.baseurl}}/docs/installation/gitops/monitor-manage-runtimes/#hybrid-gitops-configure-deep-links-to-applications--resources).
287290

@@ -388,6 +391,7 @@ caption="Current State filtered by IgnoreExtraneous resources"
388391
max-width="50%"
389392
%}
390393

394+
391395
###Delete application resources
392396
Delete specific resources in an application directly from the Codefresh UI.
393397

‎_docs/deployments/gitops/manage-application.md‎

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ toc: true
88

99
Application creation and deployment is one part of the continuous deployment/delivery process. An equally important part is optimizing deployed applications when needed.
1010

11+
>**NOTE**:
12+
The actions you can perform depend on the permissions assigned to you.
13+
14+
1115
*[Edit applications](#edit-application-definitions)
1216
Optimize deployed applications by changing application definitions when needed.
1317

@@ -20,6 +24,7 @@ Application creation and deployment is one part of the continuous deployment/del
2024
*[Refresh applications](#refreshhard-refresh-gitops-applications)
2125
Manually refresh applications with a single-click, as an alternative to manually synchronizing them.
2226

27+
2328
*[Rollback applications](#rollback-gitops-applications)
2429
Rollback applications to previous deployment versions.
2530

@@ -34,7 +39,6 @@ Application creation and deployment is one part of the continuous deployment/del
3439

3540

3641

37-
3842
##Edit application definitions
3943
Update General or Advanced configuration settings for a deployed application through the Configuration tab. Once the application is deployed to the cluster, the Configuration tab is available on selecting the application in the GitOps Apps dashboard.
4044

@@ -118,12 +122,10 @@ You can also synchronize _application resources_ with sync statuses such as `Ser
118122

119123
**How to**
120124
1. In the Codefresh UI, from Ops in the sidebar, select[GitOps Apps](https://g.codefresh.io/2.0/applications-dashboard/list){:target="\_blank"}.
121-
1. Sync an application:
122-
* Select the application to sync, and do one of the following:
125+
1. To sync an application, select the application to sync, and do one of the following:
123126
* From the context menu on the right, select**Synchronize**.
124127
* On the top-right, click**Synchronize**.
125-
126-
Sync a resource:
128+
1. To sync a resource:
127129
* Click the application with the resource to sync.
128130
* In the**Current State** tab, open the context menu of the resource, and then select**Sync**.
129131

@@ -232,6 +234,7 @@ For example, if you made changes to `api` resources or `audit` resources, type `
232234
{:/}
233235

234236

237+
235238
##Terminate on-going sync for GitOps applications
236239
Manually terminate an on-going synchronization process for the application. You may need to terminate an on-going sync that remains indefinitely as Syncing, or because you have detected problems in the current deployment
237240
Terminating a sync operation reverts the deployment to the previously deployed version or image.
@@ -251,8 +254,10 @@ Terminating a sync operation reverts the deployment to the previously deployed v
251254
%}
252255

253256

257+
254258
##Refresh/hard refresh GitOps applications
255259

260+
256261
As an alternative to manually syncing an application, either refresh or hard refresh the application. Both options are always available in the application toolbar.
257262

258263
1. In the Codefresh UI, from Ops in the sidebar, select[GitOps Apps](https://g.codefresh.io/2.0/applications-dashboard/list){:target="\_blank"}.
67.5 KB
Loading

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp