Skip to content

Commit c40589e

Browse files
Merge pull request docker#10187 from traci-morrison/ucp-content-audit
Edit for content audit
2 parents b3f69bb + 45043ab commit c40589e

5 files changed

Lines changed: 93 additions & 136 deletions

File tree

_data/toc.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1667,7 +1667,7 @@ manuals:
16671667
- path: /ee/ucp/admin/configure/configure-rbac-kube/
16681668
title: Configure native Kubernetes role-based access control
16691669
- path: /ee/ucp/admin/configure/enable-audit-logging/
1670-
title: Create UCP audit logs
1670+
title: Audit logging on UCP
16711671
- path: /ee/ucp/admin/configure/enable-saml-authentication/
16721672
title: Enable SAML authentication
16731673
- path: /ee/ucp/admin/configure/integrate-saml/

ee/ucp/admin/configure/configure-rbac-kube.md

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,47 +15,42 @@ UCP 3.0 used its own role-based access control (RBAC) for Kubernetes clusters. N
1515

1616
Kubernetes RBAC is turned on by default for Kubernetes clusters when customers upgrade to UCP 3.1. See [Using RBAC Authorization](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) in the v1.11 documentation for more information about Kubernetes role-based access control.
1717

18-
Starting with UCP 3.1, Kubernetes and Swarm roles have separate views. You can view all the roles for a particular cluster under **Access Control** then **Roles**. Select Kubernetes or Swarm to view the specific roles for each.
18+
Starting with UCP 3.1, Kubernetes and Swarm roles have separate views. You can view all of the roles for a particular cluster under **Access Control** > **Roles**. Select **Kubernetes** or **Swarm** to view the specific roles for each.
1919

2020
## Creating roles
21-
22-
You create Kubernetes roles either through the CLI using `kubectl` or through the UCP web interface.
23-
24-
To create a Kubernetes role in the UCP web interface:
21+
You can create Kubernetes roles through either the CLI using [kubectl](https://kubernetes.io/docs/reference/kubectl/overview/) or the UCP user interface (the procedure that follows).
2522

2623
1. From the UCP UI, select **Access Control**.
2724
2. From the left navigation menu, select **Roles**.
2825
![Kubernetes Grants in UCP](/ee/ucp/images/v32roles.png)
2926
3. Select the **Kubernetes** tab at the top of the window.
3027
4. Select **Create** to create a Kubernetes role object in the following dialog:
3128
![Kubernetes Role Creation in UCP](/ee/ucp/images/kube-role-create.png)
32-
5. Select a namespace from the **Namespace** drop-down list. Selecting a specific namespace creates a role for use in that namespace, but selecting all namespaces creates a `ClusterRole` where you can create rules for cluster-scoped Kubernetes resources as well as namespaced resources.
29+
5. Select a namespace from the **Namespace** drop-down list. Selecting a specific namespace creates a role for use in that namespace, however selecting all namespaces creates a ClusterRole where you can create rules for cluster-scoped Kubernetes resources as well as namespaced resources.
3330
6. Provide the YAML for the role, either by entering it in the **Object YAML** editor or select **Click to upload a .yml file** to choose and upload a .yml file instead.
34-
7. When you have finished specifying the YAML, Select **Create** to complete role creation.
31+
7. Select **Create**.
3532

3633
## Creating role grants
3734

38-
Kubernetes provides 2 types of role grants:
39-
40-
- `ClusterRoleBinding` which applies to all namespaces
41-
- `RoleBinding` which applies to a specific namespace
35+
Kubernetes provides two types of role grants, **ClusterRoleBinding** (which applies to all namespaces) and **RoleBinding** (which applies to a specific namespace).
4236

43-
To create a grant for a Kubernetes role in the UCP web interface:
37+
To create a grant for a Kubernetes role in the UCP UI:
4438

45-
1. From the UCP UI, select **Access Control**.
39+
1. Select **Access Control**.
4640
2. From the left navigation menu, select **Grants**.
4741
![Kubernetes Grants in UCP](/ee/ucp/images/v32grants.png)
48-
3. Select the **Kubernetes** tab at the top of the window. All grants to Kubernetes roles can be viewed in the Kubernetes tab.
49-
4. Select **Create New Grant** to start the Create Role Binding wizard and create a new grant for a given user, team or service.
42+
3. Select the **Kubernetes** tab at the top of the window to view all of the grants available to Kubernetes roles.
43+
4. Select **Create New Grant** to start the Create Role Binding wizard and create a new grant for a given user, team, or service.
5044
![Kubernetes Create Role Binding in UCP](../../images/kube-grant-wizard.png)
51-
5. Select the subject type. Your choices are:
52-
- **All Users**
53-
- **Organizations**
54-
- **Service account**
45+
5. Select the subject type, **All Users**, **Organizations**, or **Service Account**.
5546
6. To create a user role binding, select a username from the **Users** drop-down list then select **Next**.
5647
7. Select a resource set for the subject. The **default** namespace is automatically selected. To use a different namespace, select the **Select Namespace** button next to the desired namespace. For `Cluster Role Binding`, slide the **Apply Role Binding to all namespaces** selector to the right.
5748
![Kubernetes Create User Role Binding in UCP](/ee/ucp/images/kube-grant-rolebinding.png)
58-
8. Select **Next** to continue.
59-
9. Select the **Cluster Role** from the drop-down list. If you create a `ClusterRoleBinding` (by selecting **Apply Role Binding to all namespaces**) then you may only select ClusterRoles. If you select a specific namespace, you can choose any role from that namespace or any ClusterRole.
49+
8. Select **Next**.
50+
9. Select the **Cluster Role** from the drop-down list. If you select **Apply Roles Binding to all namespaces** to create a ClusterRolebinding, only **ClusterRoles** can be selected. If, though, you select a specific namespace you can choose any role from that namespace or any ClusterRole.
6051
![Kubernetes Select Cluster Role in UCP](/ee/ucp/images/kube-grant-roleselect.png)
61-
10. Select **Create** to complete creating the grant.
52+
10. Select **Create**.
53+
54+
## Where to go next
55+
* [Using RBAC Authorization](https://kubernetes.io/docs/reference/access-authn-authz/rbac/)
56+
* [Find Kubernetes Resources](https://docs.docker.com/ee/ucp/kubernetes/kube-resources/)

ee/ucp/admin/configure/enable-audit-logging.md

Lines changed: 30 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,99 +1,76 @@
11
---
2-
title: Enable audit logging on UCP
3-
description: Learn how to enable audit logging of all activity in UCP
2+
title: Audit logging on UCP
3+
description: Learn how to enable audit logging of all activity in UCP.
44
keywords: logs, ucp, swarm, kubernetes, audits
55
redirect_from: /ee/ucp/admin/configure/create-audit-logs/
66
---
77

88
>{% include enterprise_label_shortform.md %}
99
1010
Audit logs are a chronological record of security-relevant activities by
11-
individual users, administrators or software components that have affected the
11+
individual users, administrators, or software components that have affected the
1212
system. They are focused on external user/agent actions and security rather than
1313
understanding state or events of the system itself.
1414

1515
Audit logs capture all HTTP actions (GET, PUT, POST, PATCH, DELETE) to all UCP
16-
API, Swarm API and Kubernetes API endpoints that are invoked (except for the
17-
ignored list) and sent to Docker Engine via stdout. Creating audit logs is a UCP
18-
component that integrates with Swarm, Kubernetes, and UCP APIs.
16+
API, Swarm API, and Kubernetes API endpoints that are invoked (except for the
17+
ignored list) and sent to Docker Engine through standard output (stdout). Creating audit logs is a UCP component that integrates with Swarm, Kubernetes, and UCP APIs.
1918

2019
## Logging levels
2120

22-
To allow more control to administrators over the audit logging, three audit
23-
logging levels are provided:
21+
Three audit logging levels are provided to give administrators more control:
2422

25-
- **None**: audit logging is disabled
26-
27-
- **Metadata**: includes the following:
23+
- **None:** Audit logging is disabled.
24+
- **Metadata:** Includes the following:
2825
- Method and API endpoint for the request
2926
- UCP user who made the request
3027
- Response Status (success or failure)
3128
- Timestamp of the call
3229
- Object ID of any created or updated resource (for create or update API
33-
calls). We do not include names of created or updated resources
30+
calls). The names of created or updated resources are not included.
3431
- License Key
3532
- Remote Address
36-
37-
- **Request**: includes all fields from the Metadata level as well as the
33+
- **Request:** Includes all fields from the Metadata level as well as the
3834
request payload.
3935

4036
> Note
4137
>
4238
> Once UCP audit logging has been enabled, audit logs can be found within the
4339
> container logs of the `ucp-controller` container on each UCP manager node.
44-
> Please ensure you have a
45-
> [logging driver](../../../../config/containers/logging/configure/)
46-
> configured appropriately with log rotation set as audit logging can start to
47-
> generate a lot of data.
48-
49-
## Benefits
50-
51-
You can use audit logs to help with the following use cases:
40+
> Ensure that you have a [logging driver](../../../../config/containers/logging/configure/)
41+
> configured appropriately with log rotation set, as audit logging can generate a large amount of data.
5242
53-
- **Historical troubleshooting** - Audit logs are helpful in determining a
54-
sequence of past events that explain why an issue occurred.
43+
## Benefits of audit logging
5544

56-
- **Security analysis and auditing** - Security is one of the primary uses for
57-
audit logs. A full record of all user interactions with the container
58-
infrastructure gives your security team full visibility to questionable or
59-
attempted unauthorized accesses.
60-
61-
- **Chargeback** - You can use audit logs and information about the resources to
62-
generate chargeback information.
63-
64-
- **Alerting** - If there is a watch on an event stream or a notification
65-
created by the event, alerting features can be built on top of event tools that
66-
generate alerts for ops teams (PagerDuty, OpsGenie, Slack, or custom solutions).
45+
Audit logs can be of help with historical troubleshooting, security analysis and auditing, generating chargeback information, and creating useful alerts.
6746

6847
## Enabling UCP audit logging
6948

70-
UCP audit logging can be enabled via the UCP web user interface, the UCP API or
71-
via the UCP configuration file.
49+
Enable audit logging using either the UCP UI, the UCP API, or the UCP configuration file.
7250

73-
### Enabling UCP audit logging using the web UI
51+
### Enabling UCP audit logging through the UI
7452

75-
1. Log in to the **UCP** Web User Interface
76-
2. Navigate to **Admin Settings**
77-
3. Select **Audit Logs**
78-
4. In the **Configure Audit Log Level** section, select the relevant logging
53+
1. Access the UCP UI and browse to the Admin Settings page.
54+
2. Select **Audit Logs.**
55+
3. In the **Configure Audit Log Level** section, select the relevant logging
7956
level.
8057

8158
![Enabling Audit Logging in UCP](../../images/auditlogging.png){: .with-border}
8259

83-
5. Click **Save**
60+
4. Click **Save.**
8461

8562
### Enabling UCP audit logging using the API
8663

87-
1. Download the UCP Client bundle [Download client bundle from the command line](https://success.docker.com/article/download-client-bundle-from-the-cli).
64+
1. Download the UCP Client bundle [from the command line](https://success.docker.com/article/download-client-bundle-from-the-cli).
8865

89-
2. Retrieve JSON for current audit log configuration.
66+
2. Retrieve the JSON file for the current audit log configuration.
9067

9168
```
9269
export DOCKER_CERT_PATH=~/ucp-bundle-dir/
9370
curl --cert ${DOCKER_CERT_PATH}/cert.pem --key ${DOCKER_CERT_PATH}/key.pem --cacert ${DOCKER_CERT_PATH}/ca.pem -k -X GET https://ucp-domain/api/ucp/config/logging > auditlog.json
9471
```
9572
96-
3. Open auditlog.json to modify the 'auditlevel' field to `metadata` or `request`.
73+
3. Open auditlog.json to modify the `auditlevel` field to `metadata` or `request`.
9774
9875
```
9976
{
@@ -111,7 +88,7 @@ level.
11188
11289
### Enabling UCP audit logging using the configuration file
11390
114-
Enabling UCP audit logging via the UCP configuration file can be done before
91+
Enabling UCP audit logging through the UCP configuration file can be done before
11592
or after a UCP installation. Refer to the [UCP configuration file](./ucp-configuration-file/) topic for more information.
11693
11794
The section of the UCP configuration file that controls UCP auditing logging is:
@@ -124,22 +101,20 @@ The section of the UCP configuration file that controls UCP auditing logging is:
124101
125102
The supported variables for `level` are `""`, `"metadata"` or `"request"`.
126103
127-
> Note
104+
> Important
128105
>
129106
> The `support_dump_include_audit_logs` flag specifies whether user identification information from the ucp-controller container logs is included in the support dump. To prevent this information from being sent with the support dump, make sure that `support_dump_include_audit_logs` is set to `false`. When disabled, the support dump collection tool filters out any lines from the `ucp-controller` container logs that contain the substring `auditID`.
130107
{: .important}
131108
132109
## Accessing audit logs
133110
134-
The audit logs are exposed today through the `ucp-controller` logs. You can
111+
The audit logs are exposed through the `ucp-controller` logs. You can
135112
access these logs locally through the Docker CLI or through an external
136-
container logging solution, such as [ELK](https://success.docker.com/article/elasticsearch-logstash-kibana-logging)
113+
container logging solution, such as [ELK](https://success.docker.com/article/elasticsearch-logstash-kibana-logging).
137114
138115
### Accessing audit logs using the Docker CLI
139116
140-
To access audit logs using the Docker CLI:
141-
142-
1. Source a UCP Client Bundle
117+
1. Source a UCP client bundle.
143118
2. Run `docker logs` to obtain audit logs. In the following example,
144119
we are tailing the command to show the last log entry.
145120
@@ -204,7 +179,7 @@ events and may create a large amount of log entries.
204179
205180
## API endpoint information redacted
206181
207-
Information for the following API endpoints is redacted from the audit logs for security purposes:
182+
Information for the following API endpoints is redacted from the audit logs for security purposes.
208183
209184
- `/secrets/create` (POST)
210185
- `/secrets/{id}/update` (POST)
@@ -215,5 +190,5 @@ Information for the following API endpoints is redacted from the audit logs for
215190
216191
## Where to go next
217192
218-
- [Collect UCP Cluster Metrics with Prometheus](collect-cluster-metrics.md)
193+
- [Collect UCP cluster metrics with Prometheus](collect-cluster-metrics.md)
219194
- [Learn more about the UCP Configuration File](ucp-configuration-file.md)

ee/ucp/admin/configure/run-only-the-images-you-trust.md

Lines changed: 23 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -6,55 +6,45 @@ keywords: ucp, dtr, security, trust
66

77
>{% include enterprise_label_shortform.md %}
88
9-
With Docker Universal Control Plane you can enforce applications to only use
10-
Docker images signed by UCP users you trust. When a user tries to deploy an
11-
application to the cluster, UCP checks if the application uses a Docker image
12-
that is not trusted, and won’t continue with the deployment if that’s the case.
9+
With Docker Universal Control Plane (UCP), you can enforce applications to only use Docker images signed by UCP users you trust. Each time a user attempts to deploy an application to the cluster, UCP checks whether the application is using a trusted Docker image (and will halt the deployment if that is not the case).
1310

1411
![Enforce image signing](../../images/run-only-the-images-you-trust-1.svg)
1512

16-
By signing and verifying the Docker images, you ensure that the images being
17-
used in your cluster are the ones you trust and haven’t been altered either in
18-
the image registry or on their way from the image registry to your UCP cluster.
13+
By signing and verifying Docker images, you ensure that:
1914

20-
## Example workflow
15+
* The images used in your cluster are ones that you trust.
16+
* The images have not been altered either in the image registry or on their way from the image registry to your UCP cluster.
2117

22-
Here's an example of a typical workflow:
18+
## Example workflow
2319

24-
1. A developer makes changes to a service and pushes their changes to a version
25-
control system.
26-
2. A CI system creates a build, runs tests, and pushes an image to DTR with the
27-
new changes.
28-
3. The quality engineering team pulls the image and runs more tests. If
29-
everything looks good they sign and push the image.
30-
4. The IT operations team deploys a service. If the image used for the service
31-
was signed by the QA team, UCP deploys it. Otherwise UCP refuses to deploy.
20+
1. A developer makes changes to a service and pushes the changes to a version control system.
21+
2. A continuous integration (CI) system creates a build, runs tests, and pushes an image to Docker Trusted Registry (DTR) with the new changes.
22+
3. The quality engineering team pulls the image and runs more tests. If the tests are successful, the team signs and then pushes the image.
23+
4. The IT operations team deploys a service. If the image used for the service was signed by the QA team, UCP deploys it. Otherwise, UCP refuses to deploy the image.
3224

3325
## Configure UCP
3426

35-
To configure UCP to only allow running services that use Docker images you
36-
trust, go to the UCP web UI, navigate to the **Admin Settings** page, and in
37-
the left pane, click **Docker Content Trust**.
27+
To configure UCP to only allow running services that use Docker trusted images:
28+
29+
1. Access the UCP UI and browse to the **Admin Settings** page.
30+
2. In the left navigation pane, click **Docker Content Trust**.
31+
3. Select the **Run only signed images** option.
3832

39-
Select the **Run Only Signed Images** option to only allow deploying
40-
applications if they use images you trust.
33+
![UCP settings](../../images/run-only-the-images-you-trust-2.png){: .with-border}
4134

42-
![UCP settings](../../images/run-only-the-images-you-trust-2.png){: .with-border}
35+
With this setting, UCP allows deploying any image as long as the image has
36+
been signed.
4337

44-
With this setting, UCP allows deploying any image as long as the image has
45-
been signed. It doesn't matter who signed the image.
38+
To enforce the requirement that the image be signed by specific teams, click **Add Team** and select the pertinent teams from the list.
4639

47-
To enforce that the image needs to be signed by specific teams, click **Add Team**
48-
and select those teams from the list.
40+
![UCP settings](../../images/run-only-the-images-you-trust-3.png){: .with-border}
4941

50-
![UCP settings](../../images/run-only-the-images-you-trust-3.png){: .with-border}
42+
If you specify multiple teams, the image needs to be signed by a member of each
43+
team, or by someone that is a member of all of those teams.
5144

52-
If you specify multiple teams, the image needs to be signed by a member of each
53-
team, or someone that is a member of all those teams.
45+
4. Click **Save.**
5446

55-
Click **Save** for UCP to start enforcing the policy. From now on, existing
56-
services will continue running and can be restarted if needed, but UCP will only
57-
allow deploying new services that use a trusted image.
47+
At this point, UCP starts enforcing the policy. Existing services will continue running and can be restarted if needed, however UCP only allows the deployment of new services that use a trusted image.
5848

5949
## Where to go next
6050

0 commit comments

Comments
 (0)