Skip to content

Commit

Permalink
add unauth grp restore
Browse files Browse the repository at this point in the history
  • Loading branch information
ibihim authored and openshift-cherrypick-robot committed Jun 21, 2024
1 parent 2da91a9 commit 8e9cae1
Show file tree
Hide file tree
Showing 12 changed files with 170 additions and 1 deletion.
2 changes: 2 additions & 0 deletions authentication/impersonating-system-admin.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ include::modules/authentication-api-impersonation.adoc[leveloffset=+1]
include::modules/impersonation-system-admin-user.adoc[leveloffset=+1]

include::modules/impersonation-system-admin-group.adoc[leveloffset=+1]

include::modules/unauthenticated-users-cluster-role-binding.adoc[leveloffset=+1]
3 changes: 3 additions & 0 deletions authentication/managing-oauth-access-tokens.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,6 @@ include::modules/oauth-view-details-tokens.adoc[leveloffset=+1]

// Deleting user-owned OAuth access tokens
include::modules/oauth-delete-tokens.adoc[leveloffset=+1]

// Adding unauthenticated groups to ClusterRoleBindings
include::modules/unauthenticated-users-cluster-role-binding.adoc[leveloffset=+1]
2 changes: 2 additions & 0 deletions authentication/tokens-scoping.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,5 @@ include::_attributes/common-attributes.adoc[]
toc::[]

include::modules/tokens-scoping-about.adoc[leveloffset=+1]

include::modules/unauthenticated-users-cluster-role-binding.adoc[leveloffset=+1]
2 changes: 2 additions & 0 deletions authentication/using-rbac.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,5 @@ endif::openshift-rosa[]
ifdef::openshift-dedicated[]
include::modules/osd-grant-admin-privileges.adoc[leveloffset=+1]
endif::openshift-dedicated[]

include::modules/unauthenticated-users-cluster-role-binding-con.adoc[leveloffset=+1]
9 changes: 8 additions & 1 deletion cicd/builds/triggering-builds-build-hooks.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,13 @@ include::modules/builds-triggers.adoc[leveloffset=+1]

include::modules/builds-webhook-triggers.adoc[leveloffset=+2]

include::modules/unauthenticated-users-system-webhook.adoc[leveloffset=+3]

[role="_additional-resources"]
.Additional resources

* xref:../../authentication/using-rbac.adoc#unauthenticated-users-cluster-role-bindings-concept_using-rbac[Cluster role bindings for unauthenticated groups]
include::modules/builds-using-github-webhooks.adoc[leveloffset=+3]

include::modules/builds-using-gitlab-webhooks.adoc[leveloffset=+3]
Expand All @@ -34,4 +41,4 @@ include::modules/builds-build-hooks.adoc[leveloffset=+1]

include::modules/builds-configuring-post-commit-build-hooks.adoc[leveloffset=+2]

include::modules/builds-using-cli-post-commit-build-hooks.adoc[leveloffset=+2]
include::modules/builds-using-cli-post-commit-build-hooks.adoc[leveloffset=+2]
4 changes: 4 additions & 0 deletions modules/builds-using-bitbucket-webhooks.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ The payload URL is returned as the Bitbucket Webhook URL by the `oc describe` co
https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/bitbucket
----

.Prerequisites

* `system:unauthenticated` has access to the `system:webhook` role in the required namespaces. Or, `system:unauthenticated` has access to the `system:webhook` cluster role.
.Procedure

. Configure a Bitbucket Webhook.
Expand Down
1 change: 1 addition & 0 deletions modules/builds-using-github-webhooks.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespa
.Prerequisites

* Create a `BuildConfig` from a GitHub repository.
* `system:unauthenticated` has access to the `system:webhook` role in the required namespaces. Or, `system:unauthenticated` has access to the `system:webhook` cluster role.
.Procedure

Expand Down
4 changes: 4 additions & 0 deletions modules/builds-using-gitlab-webhooks.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ The payload URL is returned as the GitLab Webhook URL by the `oc describe` comma
https://<openshift_api_host:port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/gitlab
----

.Prerequisites

* `system:unauthenticated` has access to the `system:webhook` role in the required namespaces. Or, `system:unauthenticated` has access to the `system:webhook` cluster role.
.Procedure

. Configure a GitLab Webhook.
Expand Down
29 changes: 29 additions & 0 deletions modules/unauthenticated-users-cluster-role-binding-con.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// Module included in the following assemblies:
//
// * authentication/using-rbac.adoc
// * post_installation_configuration/preparing-for-users.adoc

:_mod-docs-content-type: CONCEPT
[id="unauthenticated-users-cluster-role-bindings-concept_{context}"]
= Cluster role bindings for unauthenticated groups

[NOTE]
====
Before {product-title} 4.16, unauthenticated groups were allowed access to some cluster roles. Clusters updated from versions before {product-title} 4.16 retain this access for unauthenticated groups.
====

For security reasons {product-title} {product-version} does not allow unauthenticated groups to have default access to cluster roles.

There are use cases where it might be necessary to add `system:unauthenticated` to a cluster role.

Cluster administrators can add unauthenticated users to the following cluster roles:

* `system:scope-impersonation`
* `system:webhook`
* `system:oauth-token-deleter`
* `self-access-reviewer`
[IMPORTANT]
====
Always verify compliance with your organization's security standards when modifying unauthenticated access.
====
57 changes: 57 additions & 0 deletions modules/unauthenticated-users-cluster-role-binding.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
// Module included in the following assemblies:
//
// * authentication/impersonating-system-admin.adoc
// * authentication/tokens-scoping.adoc
// * authentication/managing-oauth-access-tokens.adoc
// * post_installation_configuration/preparing-for-users.adoc

:_mod-docs-content-type: PROCEDURE
[id="unauthenticated-users-cluster-role-bindings_{context}"]
= Adding unauthenticated groups to cluster roles

As a cluster administrator, you can add unauthenticated users to the following cluster roles in {product-title} by creating a cluster role binding. Unauthenticated users do not have access to non-public cluster roles. This should only be done in specific use cases when necessary.

You can add unauthenticated users to the following cluster roles:

* `system:scope-impersonation`
* `system:webhook`
* `system:oauth-token-deleter`
* `self-access-reviewer`
[IMPORTANT]
====
Always verify compliance with your organization's security standards when modifying unauthenticated access.
====

.Prerequisites

* You have access to the cluster as a user with the `cluster-admin` role.
* You have installed the OpenShift CLI (`oc`).
.Procedure

. Create a YAML file named `add-<cluster_role>-unauth.yaml` and add the following content:
+
[source,yaml]
----
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
name: <cluster_role>access-unauthenticated
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: <cluster_role>
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: system:unauthenticated
----
. Apply the configuration by running the following command:
+
[source,terminal]
----
$ oc apply -f add-<cluster_role>.yaml
----
54 changes: 54 additions & 0 deletions modules/unauthenticated-users-system-webhook.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
// Module included in the following assemblies:
//
// * cicd/builds/triggering-builds-build-hooks.adoc

:_mod-docs-content-type: PROCEDURE
[id="unauthenticated-users-system-webhook_{context}"]
= Adding unauthenticated users to the system:webhook role binding

As a cluster administrator, you can add unauthenticated users to the `system:webhook` role binding in {product-title} for specific namespaces. The `system:webhook` role binding allows users to trigger builds from external systems that do not use an {product-title} authentication mechanism. Unauthenticated users do not have access to non-public role bindings by default. This is a change from {product-title} versions before 4.16.

Adding unauthenticated users to the `system:webhook` role binding is required to successfully trigger builds from GitHub, GitLab, and Bitbucket.

If it is necessary to allow unauthenticated users access to a cluster, you can do so by adding unauthenticated users to the `system:webhook` role binding in each required namespace. This method is more secure than adding unauthenticated users to the `system:webhook` cluster role binding. However, if you have a large number of namespaces, it is possible to add unauthenticated users to the `system:webhook` cluster role binding which would apply the change to all namespaces.

[IMPORTANT]
====
Always verify compliance with your organization's security standards when modifying unauthenticated access.
====

.Prerequisites

* You have access to the cluster as a user with the `cluster-admin` role.
* You have installed the OpenShift CLI (`oc`).
.Procedure

. Create a YAML file named `add-webhooks-unauth.yaml` and add the following content:
+
[source,yaml]
----
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
name: webhook-access-unauthenticated
namespace: <namespace> <1>
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: "system:webhook"
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: "system:unauthenticated"
----
<1> The namespace of your `BuildConfig`.

. Apply the configuration by running the following command:
+
[source,terminal]
----
$ oc apply -f add-webhooks-unauth.yaml
----
4 changes: 4 additions & 0 deletions post_installation_configuration/preparing-for-users.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,10 @@ include::modules/rbac-cluster-role-binding-commands.adoc[leveloffset=+2]
include::modules/rbac-creating-cluster-admin.adoc[leveloffset=+2]
endif::[]

include::modules/unauthenticated-users-cluster-role-binding-con.adoc[leveloffset=+2]

include::modules/unauthenticated-users-cluster-role-binding.adoc[leveloffset=+2]

include::modules/authentication-kubeadmin.adoc[leveloffset=+1]

include::modules/authentication-remove-kubeadmin.adoc[leveloffset=+2]
Expand Down

0 comments on commit 8e9cae1

Please sign in to comment.