Information
Both the Universal Control Plane (UCP) and DTR components of Docker Enterprise leverage the same authentication and authorization backplane known as eNZi. eNZi provides UCP and DTR with role-based access control functionality to enforce approved authorizations for logical access to information and system resources in accordance with applicable access control policies. These policies are defined in the System Security Plan along with organization information, application user roles, system resources and access requirements. The eNZi backplane includes its own managed user database, and also allows for LDAP integration in UCP and DTR. While role-based access control mechanisms are provided regardless of whether or not LDAP integration is enabled, it is recommended to enable LDAP integration to better meet the requirements of this control.
Satisfies: SRG-APP-000033, SRG-APP-000243, SRG-APP-000246, SRG-APP-000247, SRG-APP-000267, SRG-APP-000328, SRG-APP-000340, SRG-APP-000342, SRG-APP-000378, SRG-APP-000380, SRG-APP-000384, SRG-APP-000038, SRG-APP-000039, SRG-APP-000080, SRG-APP-000311, SRG-APP-000313, SRG-APP-000314
NOTE: Nessus has not performed this check. Please review the benchmark to ensure target compliance.
Solution
This fix only applies to the DTR component of Docker Enterprise.
Verify that the applied organization, team and user permissions in DTR are configured per the SSP.
via UI:
As a Docker EE Admin, navigate to 'Organizations' and setup the list of organizations and teams within those organizations per the requirements set forth by the SSP. Navigate to 'Users' and assign users to appropriate organizations, teams and repositories per the SSP.
via CLI:
Linux (requires curl and jq): As a Docker EE admin, execute the following commands on a machine that can communicate with the DTR management console:
AUTHTOKEN=$(curl -kLsS -u <username>:<password> 'https://[dtr_url]/auth/token' | jq -r .token)
Execute the following command to give teams in an organization access to the appropriate repositories per the System Security Plan:
curl -k -H 'Authorization: Bearer $AUTHTOKEN' -X PUT 'https://[dtr_url]/api/v0/repositories/[namespace]/[reponame]/teamAccess/[teamname]'
Execute the following commands on a machine that can communicate with the UCP management console to add/remove members to/from the team with access to these repositories as appropriate per the SSP:
AUTHTOKEN=$(curl -sk -d '{'username':'[ucp_username]','password':'[ucp_password]'}' https://[ucp_url]/auth/login | jq -r .auth_token)
Add: curl -sk -H 'Authorization: Bearer $AUTHTOKEN' -X PUT https://[ucp_url]/accounts/[orgNameOrID]/teams/[teamNameOrID]/members/[memberNameOrID]
Remove: curl -sk -H 'Authorization: Bearer $AUTHTOKEN' -X DELETE https://[ucp_url]/accounts/[orgNameOrID]/teams/[teamNameOrID]/members/[memberNameOrID]
Item Details
Category: ACCESS CONTROL, AUDIT AND ACCOUNTABILITY, CONFIGURATION MANAGEMENT, SYSTEM AND COMMUNICATIONS PROTECTION, SYSTEM AND INFORMATION INTEGRITY
References: 800-53|AC-3, 800-53|AC-3(4), 800-53|AC-4, 800-53|AC-6(8), 800-53|AC-6(10), 800-53|AC-16, 800-53|AU-10, 800-53|CM-5(1), 800-53|CM-7(2), 800-53|CM-11(2), 800-53|SC-4, 800-53|SC-5(1), 800-53|SC-5(2), 800-53|SI-11, CAT|II, CCI|CCI-000166, CCI|CCI-000213, CCI|CCI-001090, CCI|CCI-001094, CCI|CCI-001095, CCI|CCI-001314, CCI|CCI-001368, CCI|CCI-001414, CCI|CCI-001764, CCI|CCI-001812, CCI|CCI-001813, CCI|CCI-002165, CCI|CCI-002233, CCI|CCI-002235, CCI|CCI-002262, CCI|CCI-002263, CCI|CCI-002264, Rule-ID|SV-104707r1_rule, STIG-ID|DKER-EE-001180, Vuln-ID|V-95357
Control ID: 2ed1458b71ab0990c311c41d82a57918270f5a0bbec30c5e8304a93ff4d76c61