Skip to content

Commit f77ddf3

Browse files
freshness: security and subscription (#23230)
<!--Delete sections as needed --> ## Description Final freshness updates for Security and Subscription pages. Apologies ahead of time, it is a lot of file updates :') Updates include: - Major overhaul of ECI content (this could use the most review) - Fine tuning of the rest of the docs in these sections (includes consistency with headings/formatting, page structure, fixing passive voice, simplifying) - Deleted all content shortcodes 🥳 _Vale errors can mostly be ignored unless you see something glaringly wrong. I addressed all the typo/spelling ones, and added some terms to accept.txt_ ## Related issues or tickets https://docker.atlassian.net/browse/ENGDOCS-2918 ## Reviews <!-- Notes for reviewers here --> <!-- List applicable reviews (optionally @tag reviewers) --> - [ ] Technical review - [ ] Editorial review - [ ] Product review --------- Co-authored-by: Craig Osterhout <[email protected]>
1 parent 1ac38b7 commit f77ddf3

File tree

77 files changed

+2812
-3526
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+2812
-3526
lines changed

_vale/config/vocabularies/Docker/accept.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Artifactory
99
auditable
1010
autolock
1111
Azure
12+
Azure AD
1213
bootup
1314
Btrfs
1415
Bugsnag
@@ -20,6 +21,7 @@ cgroup
2021
Chrome
2122
Chrome DevTools
2223
Citrix
24+
CI/CD
2325
cli
2426
CLI
2527
CloudFront
@@ -141,6 +143,7 @@ osxfs
141143
OTel
142144
Paketo
143145
pgAdmin
146+
plist
144147
PKG
145148
Postgres
146149
PowerShell
@@ -171,6 +174,7 @@ Syft
171174
syntaxes
172175
Sysbox
173176
sysctls
177+
sysctl
174178
Sysdig
175179
systemd
176180
Testcontainers
@@ -183,6 +187,8 @@ ufw
183187
ui
184188
uid
185189
umask
190+
uncaptured
191+
Uncaptured
186192
undeterminable
187193
Unix
188194
unmanaged

content/manuals/desktop/release-notes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ We are aware of [CVE-2025-23266](https://nvd.nist.gov/vuln/detail/CVE-2025-23266
9696

9797
- Fixed an issue pulling images with zstd differential layers when the containerd image store is enabled.
9898
- Fixed a bug causing containers launching with the `--restart` flag to not restart properly when using Enhanced Container Isolation.
99-
- Improved interaction between [Kubernetes custom registry images](/manuals/desktop/features/kubernetes.md#configuring-a-custom-image-registry-for-kubernetes-control-plane-images) and Enhanced Container Isolation (ECI), so the [ECI Docker Socket image list](/enterprise/security/hardened-desktop/enhanced-container-isolation/config/#image-list) no longer needs to be manually updated when using a custom registry for Kubernetes control plane images.
99+
- Improved interaction between [Kubernetes custom registry images](/manuals/desktop/features/kubernetes.md#configuring-a-custom-image-registry-for-kubernetes-control-plane-images) and Enhanced Container Isolation (ECI), so the [ECI Docker Socket image list](/manuals/enterprise/security/hardened-desktop/enhanced-container-isolation/config.md) no longer needs to be manually updated when using a custom registry for Kubernetes control plane images.
100100
- Fixed a bug where a Docker Desktop Kubernetes cluster in kind mode fails to start after restarting Docker Desktop if the user is required to be signed in but is currently signed out.
101101
- Fixed a bug that prevented the mounting of MCP secrets into containers when [Enhanced Container Isolation](/enterprise/security/hardened-desktop/enhanced-container-isolation/) is enabled.
102102
- Fixed a bug preventing the use of `--publish-all` when `--publish` was already specified.

content/manuals/desktop/troubleshoot-and-support/troubleshoot/topics.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -491,8 +491,8 @@ To use Docker Desktop with Windows Containers, ensure that FDVDenyWriteAccess is
491491
**Computer Configuration** > **Administrative Templates** > **Windows Components** > **BitLocker Drive Encryption** > **Fixed Data Drives** > **Deny write access to fixed drives not protected by BitLocker**
492492

493493
> [!NOTE]
494-
>
495-
> Modifying Group Policy settings may require administrator privileges and should comply with your organization's IT policies. If the setting gets reset after some time this usually means that it was overriden by the centralized configuration of your IT department. Talk to them before making any changes.
494+
>
495+
> Modifying Group Policy settings may require administrator privileges and should comply with your organization's IT policies. If the setting gets reset after some time this usually means that it was overridden by the centralized configuration of your IT department. Talk to them before making any changes.
496496
497497
### `Docker Desktop Access Denied` error message when starting Docker Desktop
498498

-20.8 KB
Binary file not shown.
-29.4 KB
Binary file not shown.
-23.6 KB
Binary file not shown.
Lines changed: 69 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,121 +1,113 @@
11
---
22
title: Organization access tokens
3-
description: Learn how to create and manage organization access tokens
4-
to securely push and pull images programmatically.
5-
keywords: docker hub, security, OAT, organization access token
63
linkTitle: Organization access tokens
4+
description: Create and manage organization access tokens to securely authenticate automated systems and CI/CD pipelines with Docker Hub
5+
keywords: organization access tokens, OAT, docker hub security, programmatic access, automation
76
aliases:
87
- /security/for-admins/access-tokens/
98
---
109

1110
{{< summary-bar feature_name="OATs" >}}
1211

12+
Organization access tokens (OATs) provide secure, programmatic access to Docker Hub for automated systems, CI/CD pipelines, and other business-critical tasks. Unlike personal access tokens tied to individual users, OATs are associated with your organization and can be managed by any organization owner.
13+
1314
> [!WARNING]
1415
>
15-
> Organization access tokens (OATs) are incompatible with Docker Desktop,
16-
> [Image Access Management (IAM)](/manuals/enterprise/security/hardened-desktop/image-access-management.md), and [Registry Access Management (RAM)](/manuals/enterprise/security/hardened-desktop/registry-access-management.md).
17-
>
18-
> If you use Docker Desktop, IAM, or RAM, you must use personal
19-
> access tokens instead.
20-
21-
An organization access token (OAT) is like a [personal access token
22-
(PAT)](/security/access-tokens/), but an OAT is associated with
23-
an organization and not a single user account. Use an OAT instead of a PAT to
24-
let business-critical tasks access Docker Hub repositories without connecting
25-
the token to single user. You must have a [Docker Team or Business
26-
subscription](/subscription/core-subscription/details/) to use OATs.
27-
28-
OATs provide the following advantages:
29-
30-
- You can investigate when the OAT was last used and then disable or delete it
31-
if you find any suspicious activity.
32-
- You can limit what each OAT has access to, which limits the impact if an OAT
33-
is compromised.
34-
- All company or organization owners can manage OATs. If one owner leaves the
35-
organization, the remaining owners can still manage the OATs.
36-
- OATs have their own Docker Hub usage limits that don't count towards your
37-
personal account's limits.
38-
39-
If you have existing [service accounts](/docker-hub/service-accounts/),
40-
Docker recommends that you replace the service accounts with OATs. OATs offer
41-
the following advantages over service accounts:
42-
43-
- Access permissions are easier to manage with OATs. You can assign access
44-
permissions to OATs, while service accounts require using teams for access
45-
permissions.
46-
- OATs are easier to manage. OATs are centrally managed in the Admin Console.
47-
For service accounts, you may need to sign in to that service account to
48-
manage it. If using single sign-on enforcement and the service account is not
49-
in your IdP, you may not be able to sign in to the service account to manage
50-
it.
51-
- OATs are not associated with a single user. If a user with access to the
52-
service account leaves your organization, you may lose access to the service
53-
account. OATs can be managed by any company or organization owner.
16+
> Organization access tokens are incompatible with Docker Desktop, Image Access Management, and Registry Access Management. If you use these features, use [personal access tokens](/manuals/security/access-tokens.md) instead.
17+
18+
## Who should use organization access tokens?
19+
20+
Use OATs for automated systems that need Docker Hub access without depending on individual user accounts:
21+
22+
- CI/CD pipelines: Build and deployment systems that push and pull images
23+
- Production systems: Applications that pull images during deployment
24+
- Monitoring tools: Systems that need to check repository status or pull images
25+
- Backup systems: Tools that periodically pull images for archival
26+
- Integration services: Third-party tools that integrate with your Docker Hub repositories
27+
28+
## Key benefits
29+
30+
Benefits of using organization access tokens include:
31+
32+
- Organizational ownership: Not tied to individual users who might leave the company
33+
- Shared management: All organization owners can create and manage OATs
34+
- Separate usage limits: OATs have their own Docker Hub rate limits, not counting against personal accounts
35+
- Better security audit: Track when tokens were last used and identify suspicious activity
36+
- Granular permissions: Limit access to specific repositories and operations
37+
38+
## Prerequisites
39+
40+
To create and use organization access tokens, you must have:
41+
42+
- A Docker Team or Business subscription
43+
- Owner permissions
44+
- Repositories you want to grant access to
5445

5546
## Create an organization access token
5647

57-
> [!IMPORTANT]
58-
>
59-
> Treat access tokens like a password and keep them secret. Store your tokens
60-
> securely in a credential manager for example.
48+
Owners can create tokens with these limits:
6149

62-
Company or organization owners can create up to:
63-
- 10 OATs for organizations with a Team subscription
64-
- 100 OATs for organizations with a Business subscription
50+
- Team subscription: Up to 10 OATs per organization
51+
- Business subscription: Up to 100 OATs per organization
6552

66-
Expired tokens count towards the total amount of tokens.
53+
Expired tokens count toward your total limit.
6754

6855
To create an OAT:
6956

7057
1. Sign in to [Docker Home](https://app.docker.com/) and select your
7158
organization.
7259
1. Select **Admin Console**, then **Access tokens**.
7360
1. Select **Generate access token**.
74-
1. Add a label and optional description for your token. Use something that
75-
indicates the use case or purpose of the token.
76-
1. Select the expiration date for the token.
77-
1. Expand the **Repository** drop-down to set access permission
78-
scopes for your token. To set Repository access scopes:
79-
1. Optional. Select **Read public repositories**.
61+
1. Configure token details:
62+
- Label: Descriptive name indicating the token's purpose
63+
- Description (optional): Additional details
64+
- Expiration date: When the token should expire
65+
1. Expand the **Repository** drop-down to set access permissions:
66+
1. Optional. Select **Read public repositories** for access to public repositories.
8067
1. Select **Add repository** and choose a repository from the drop-down.
81-
1. Set the scopes for your repository &mdash; **Image Push** or
82-
**Image Pull**.
83-
1. Add more repositories as needed. You can add up to 50 repositories.
84-
1. Optional. Expand the **Organization** drop-down and select the
85-
**Allow management access to this organization's resources** checkbox. This
86-
setting enables organization management scopes for your token. The following
87-
organization management scopes are available:
68+
1. Set permissions for each repository: **Image Pull** or **Image Push**.
69+
1. Add up to 50 repositories as needed.
70+
1. Optional. Configure organization management permissions by expanding the **Organization** drop-down and selecting the **Allow management access to this organization's resources**:
8871
- **Member Edit**: Edit members of the organization
8972
- **Member Read**: Read members of the organization
9073
- **Invite Edit**: Invite members to the organization
9174
- **Invite Read**: Read invites to the organization
9275
- **Group Edit**: Edit groups of the organization
9376
- **Group Read**: Read groups of the organization
94-
1. Select **Generate token**. Copy the token that appears on the screen
95-
and save it. You won't be able to retrieve the token once you exit the
96-
screen.
77+
1. Select **Generate token**. Copy the token that appears on the screen and save it. You won't be able to retrieve the token once you exit the screen.
9778

98-
## Use an organization access token
79+
> [!IMPORTANT]
80+
>
81+
> Treat organization access tokens like passwords. Store them securely in a credential manager and never commit them to source code repositories.
9982
100-
You can use an organization access token when you sign in using Docker CLI.
83+
## Use organization access tokens
10184

102-
Sign in from your Docker CLI client with the following command, replacing
103-
`YOUR_ORG` with your organization name:
85+
Sign in to the Docker CLI using your organization access token:
10486

10587
```console
106-
$ docker login --username <YOUR_ORG>
88+
$ docker login --username <YOUR_ORGANIZATION_NAME>
89+
Password: [paste your OAT here]
10790
```
10891

109-
When prompted for a password, enter your organization access token instead of a
110-
password.
92+
When prompted for a password, enter your organization access token.
11193

11294
## Modify existing tokens
11395

114-
You can rename, update the description, update the repository access,
115-
deactivate, or delete a token as needed.
96+
To manage existing tokens:
11697

11798
1. Sign in to [Docker Home](https://app.docker.com/) and select your
11899
organization.
119100
1. Select **Admin Console**, then **Access tokens**.
120-
1. Select the actions menu in the token row, then select **Deactivate**, **Edit**, or **Delete** to modify the token. For **Inactive** tokens, you can only select **Delete**.
121-
1. If editing a token, select **Save** after specifying your modifications.
101+
1. Select the actions menu in the token row, you can:
102+
- **Edit**
103+
- **Deactivate**
104+
- **Delete**
105+
1. Select **Save** after making changes to a token.
106+
107+
## Organization access token best practices
108+
109+
- Regular token rotation: Set reasonable expiration dates and rotate tokens regularly to minimize security risks.
110+
- Principle of least privilege: Grant only the minimum repository access and permissions needed for each use case.
111+
- Monitor token usage: Regularly review when tokens were last used to identify unused or suspicious tokens.
112+
- Secure storage: Store tokens in secure credential management systems, never in plain text or source code.
113+
- Immediate revocation: Deactivate or delete tokens immediately if they're compromised or no longer needed.

0 commit comments

Comments
 (0)