diff --git a/.gitignore b/.gitignore index 9be03bd..c6f5093 100644 --- a/.gitignore +++ b/.gitignore @@ -208,4 +208,168 @@ jspm_packages *.tgz # Yarn Integrity file -.yarn-integrity \ No newline at end of file +.yarn-integrity + +### Ruby ### +*.gem +*.rbc +/.config +/coverage/ +/InstalledFiles +/pkg/ +/spec/reports/ +/spec/examples.txt +/test/tmp/ +/test/version_tmp/ +/tmp/ + +# Used by dotenv library to load environment variables. +# .env + +## Specific to RubyMotion: +.dat* +.repl_history +build/ +*.bridgesupport +build-iPhoneOS/ +build-iPhoneSimulator/ + +## Specific to RubyMotion (use of CocoaPods): +# +# We recommend against adding the Pods directory to your .gitignore. However +# you should judge for yourself, the pros and cons are mentioned at: +# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control +# +# vendor/Pods/ + +## Documentation cache and generated files: +/.yardoc/ +/_yardoc/ +/doc/ +/rdoc/ + +## Environment normalization: +/.bundle/ +/vendor/bundle +/lib/bundler/man/ + +# for a library or gem, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# Gemfile.lock +# .ruby-version +# .ruby-gemset + +# unless supporting rvm < 1.11.0 or doing something fancy, ignore this: +.rvmrc + +### RubyMine ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff: +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/dictionaries + +# Sensitive or high-churn files: +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.xml +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml + +# Gradle: +.idea/**/gradle.xml +.idea/**/libraries + +# CMake +cmake-build-debug/ + +# Mongo Explorer plugin: +.idea/**/mongoSettings.xml + +## File-based project format: +*.iws + +## Plugin-specific files: + +# IntelliJ +/out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +### RubyMine+all ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff: +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/dictionaries + +# Sensitive or high-churn files: +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.xml +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml + +# Gradle: +.idea/**/gradle.xml +.idea/**/libraries + +# CMake +cmake-build-debug/ + +# Mongo Explorer plugin: +.idea/**/mongoSettings.xml + +## File-based project format: +*.iws + +## Plugin-specific files: + +# IntelliJ +/out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +### RubyMine+all Patch ### +# Ignores the whole idea folder +# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360 + +.idea/ + + +profile-attribute.yml +ucp-bundle* \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 87bc267..9b3335a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,10 +4,10 @@ By licensing this project under the CC0 Public Domain, we've made it easy to mak ## Reporting issues -Much of this content is based on the existing documentation provided at https://docs.docker.com/. Bear in mind that this repository is not meant to house issues specific to the Docker docs site. Please refer to the public source repo at https://github.com/docker/docker.github.io for any issues related to those docs. +Much of this content is based on the existing documentation provided at https://docs.docker.com/. Bear in mind that this repository is not meant to house issues specific to the Docker docs site. Please refer to the public source repo at https://github.com/docker/docker.github.io for any issues related to those docs. We do, however, maintain a subset of compliance documentation for docs.docker.com in the [`docs/`](https://github.com/docker/compliance/tree/17.06/docs/compliance) directory. Issues related to those docs can be submitted in this repository. -Instead, this project should be used to report issues specific to wording in the narratives, typos, bugs in the nlp tool, and/or content/feature requests. +This project should be used to report issues specific to wording in the narratives, typos, bugs in any of the tooling, and/or content/feature requests. ## Submitting pull requests -To keep things simple, we're encouraging folks to adopt the forking workflow. Pull requests should be submitted on a separate branch from your own fork of the repository. Any updates and commentary should be clear and concise. If you're looking to make changes to the `component.yaml` files, please try to limit each narrative's text block line length to 80 characters. There are various tools and editor extensions that can help automate this. \ No newline at end of file +To keep things simple, we're encouraging folks to adopt the forking workflow. Pull requests should be submitted on a separate branch from your own fork of the repository. Any updates and commentary should be clear and concise. If you're looking to make changes to the `component.yaml` files, please try to limit each narrative's text block line length to 80 characters. There are various tools and editor extensions that can help automate this. diff --git a/README.md b/README.md index ebb8cb8..ebf85a0 100644 --- a/README.md +++ b/README.md @@ -1,59 +1,111 @@ # Docker Enterprise Edition Compliance Controls [![CircleCI](https://circleci.com/gh/docker/compliance/tree/master.svg?style=svg&circle-token=daeaf5acd7ac08000ea727cbf8ec9baa8ded8da4)](https://circleci.com/gh/docker/compliance/tree/master) [![codecov](https://codecov.io/gh/docker/compliance/branch/master/graph/badge.svg?token=WiRPQcno3c)](https://codecov.io/gh/docker/compliance) -****Updates for the 17.06 release (UCP 2.2/DTR 2.3) are being developed in the [`17.06`](https://github.com/docker/compliance/tree/17.06) branch** +This repository contains compliance information and complementary tooling for [Docker Enterprise Edition (EE)](https://www.docker.com/enterprise-edition) as it pertains to [NIST 800-53](https://nvd.nist.gov/800-53) Rev. 4 security controls at the [FedRAMP](https://www.fedramp.gov/) Moderate and High baselines. This data adheres to the [OpenControl](http://open-control.org/) schema for building compliance documentation and can be used to support your own authority to operate (ATO) review process. The system security plan (SSP) documentation that can be generated from this content can be used to assist your organization in authorizing Docker Enterprise Edition on both on-premises/private cloud infrastructures and in public cloud providers. -This repository contains compliance information for [Docker Enterprise Edition (EE)](https://www.docker.com/enterprise-edition) at the Basic, Standard and Advanced tiers as it pertains to NIST-800-53 Rev 4 security controls at the [FedRAMP](https://www.fedramp.gov/) Moderate and High baselines. This data adheres to the [OpenControl](http://open-control.org/) schema for building compliance documentation and can be used to support your own authority to operate (ATO) review process. The documentation generated from this content can be used to assist your organization in authorizing Docker Enterprise Edition in both on-premises/private cloud infrastructure and in public cloud providers. +> **DISCLAIMER:** This content is provided for informational purposes only and has not been vetted by any third-party security assessors. You are solely responsible for developing, implementing, and managing your applications and/or subscriptions running on your own platform in compliance with applicable laws, regulations, and contractual obligations. The documentation is provided "as-is" and without any warranty of any kind, whether express, implied or statutory, and Docker, Inc. expressly disclaims all warranties for non-infringement, merchantability or fitness for a particular purpose. -> This content is provided for informational purposes only and has not been vetted by any third-party security assessors. You are solely responsible for developing, implementing, and managing your applications and/or subscriptions running on your own platform in compliance with applicable laws, regulations, and contractual obligations. The documentation is provided "as-is" and without any warranty of any kind, whether express, implied or statutory, and Docker, Inc. expressly disclaims all warranties for non-infringement, merchantability or fitness for a particular purpose. +## Overview -Docker also provides pre-built System Security Plan (SSP) templates for authorizing Docker Enterprise Edition on various FedRAMP P-ATO'd IaaS providers, as indicated in the table below. These can be obtained by contacting [compliance@docker.com](mailto:compliance@docker.com). These templates are **not** the official cloud providers' SSP templates but rather show both the controls inherited from that IaaS provider's P-ATO and the controls applicable to Docker Enterprise Edition. When conducting an ATO, it is still your responsibility to request the provider's official SSP package as appropriate and conduct your own security analysis. +In order to satisfy the entirety of applicable security controls included in this repository, you must have installed all of the components of Docker Enterprise Edition Advanced. This includes Docker EE Engine, Docker Trusted Registry and Universal Control Plane. Each component is associated with a single `component.yaml` text file which contains the pre-written security narratives. These components, and the versions at which the security narratives are currently based, are listed in the table below: -|Provider|Format|Baselines|Status| -|--------|------|---------|------| -|[Microsoft Azure Government](https://azure.microsoft.com/en-us/overview/clouds/government/)|[Azure Blueprint](https://docs.microsoft.com/en-us/azure/azure-government/documentation-government-plan-compliance) (.docx)|Moderate
High
DoD L4
DoD L5|Available
Coming Soon
Coming Soon
Coming Soon| -|[AWS GovCloud](https://aws.amazon.com/govcloud-us/)|TBD|Moderate|Coming soon| +|Component Name|Folder|Version| +|--------------|------|-------| +|Docker EE Engine|[`opencontrol/components/Engine-EE/`](opencontrol/components/Engine-EE)|17.06-ee| +|Docker Trusted Registry (DTR)|[`opencontrol/components/DTR/`](opencontrol/components/DTR)|2.3| +|Docker Security Scanning (DSS)|[`opencontrol/components/DSS/`](opencontrol/components/DSS)|2.3| +|Universal Control Plane (UCP)|[`opencontrol/components/UCP/`](opencontrol/components/UCP)|2.2| +|Authentication and Authorization Service (eNZi)|[`opencontrol/components/eNZi/`](opencontrol/components/eNZi)|2.2| -Note that even if a pre-built template for Docker EE is not available for your chosen cloud provider, you can still use the OpenControl-formatted content in this repository to generate your own SSP templates. Much of the content in this repository is identical to that which is provided in the pre-built templates. +> **NOTE:** Both the UCP and DTR components leverage the eNZi service component for authentication and authorization across an entire Docker Enterprise Edition Advanced cluster. -## Usage +You can download this security content for previously released versions of Docker EE, UCP and DTR on our [Releases](https://github.com/docker/compliance/releases) page. -In order to generate the documentation appropriate to your system, you can either download and install the [Compliance Masonry](https://github.com/opencontrol/compliance-masonry/) command-line tool on to your local workstation or run the official [Compliance Masonry Docker image](https://store.docker.com/community/images/opencontrolorg/compliance-masonry) at the root of the `examples/opencontrol/DockerEE-Moderate-ATO` directory as follows: +### Roles and responsibilities matrix -```sh -docker run --rm -v "$PWD":/opencontrol -w /opencontrol opencontrolorg/compliance-masonry get -docker run --rm -v "$PWD":/opencontrol -w /opencontrol opencontrolorg/compliance-masonry docs gitbook FedRAMP-moderate -``` +One or more control originations have been denoted for each component security control. These roles have been defined as follows: - Refer to the Compliance Masonry [usage instructions](https://github.com/opencontrol/compliance-masonry/blob/master/docs/usage.md) for more info on the various CLI options. The [`examples/DockerEE-Moderate-ATO`](https://github.com/docker/compliance/tree/master/examples/opencontrol/DockerEE-Moderate-ATO) directory contains an example use of this tooling. +|Control Origination|Definition|Example| +|-------------------|----------|-------| +|Service provider corporate|A control that originates from agency's corporate network|DNS from the corporate network provides address resolution services for the information system and the service offering| +|Docker EE system|A control specific to Docker EE|Docker EE LDAP configuration| +|Service provider hybrid|A control that makes use of both corporate controls and additional controls specific to Docker EE|There are scans of the corporate network infrastructure; scans of Docker images via DTR would be included| +|Configured by customer|A control where the Docker EE end-user's application needs to apply a configuration in order to meet the control requirement|User profiles, policy/audit configurations, enable/disabling key switches (e.g., enable/disable http or https, etc), entering an IP range specific to the end-user's organization are configurable by the customer| +|Provided by customer|A control where the Docker EE end-user's application needs to provide additional hardware or software in order to meet the control requirement|The customer provides a SAML SSO solution to implement two-factor authentication| +|Shared|A control that is managed and implemented partially by the Docker EE system and partially by the Docker EE end-user|Security awareness training must be conducted by both the Docker EE operators and end-users| +|Inherited from pre-existing Provisional Authorization|A control that is inherited from another CSP system that has already received a Provisional Authorization|Docker EE inherites PE controls from an IaaS provider| -In order to meet all of the applicable security controls included in this repository, you must have Docker Enterprise Edition at the Advanced tier and at the versions specified in the table below. The control guidance is separated in to the following components: +## Generating SSP docs for Docker EE -|Component Name|Folder|Version| -|--------------|------|-------| -|Docker EE Engine|[`opencontrol/components/Engine-EE/`](https://github.com/docker/compliance/tree/master/opencontrol/components/Engine-EE)|17.03.0-ee| -|Docker Trusted Registry (DTR)|[`opencontrol/components/DTR/`](https://github.com/docker/compliance/tree/master/opencontrol/components/DTR)|2.2| -|Docker Security Scanning (DSS)|[`opencontrol/components/DSS/`](https://github.com/docker/compliance/tree/master/opencontrol/components/DSS)|2.2| -|Universal Control Plane (UCP)|[`opencontrol/components/UCP/`](https://github.com/docker/compliance/tree/master/opencontrol/components/UCP)|2.1| -|Authentication and Authorization Service (eNZi)|[`opencontrol/components/eNZi/`](https://github.com/docker/compliance/tree/master/opencontrol/components/eNZi)|2.1| +The [Compliance Masonry](https://github.com/opencontrol/compliance-masonry/) command-line tool is required to generate SSP documentation based on the pre-written Docker EE narratives in this repository. You can either download and run the Compliance Masonry tool directly from your local workstation or run it with Docker. + +The [`examples/opencontrol/DockerEE-Moderate-ATO`](examples/opencontrol/DockerEE-Moderate-ATO) folder contains an example that you can use as a starting point for generating an SSP at the FedRAMP Moderate baseline. It also includes additional placeholder `component.yaml` files that can be used to document your organization's adherence to the appropriate controls and that which aren't satisfied by the functionality of Docker Enterprise Edition. These have been organized in to separate directories representing each control family (e.g. `AC_Policy/`, `MA_POLICY/`, etc). + +### Download and run Compliance Masonry + +You can download the [Compliance Masonry](https://github.com/opencontrol/compliance-masonry/) command-line tool for your specific OS from the releases page [here](https://github.com/opencontrol/compliance-masonry/releases). + +After you've cloned or downloaded the contents of this repository to your machine, you can generate your SSP docs based on the [DockerEE-Moderate-ATO](examples/opencontrol/DockerEE-Moderate-ATO) example as follows: + +1. Navigate to directory containing the example + + ```sh + cd examples/opencontrol/DockerEE-Moderate-ATO + ``` + +2. Get Compliance Masonry dependencies + + ```sh + compliance-masonry get + ``` + + or with Docker: + + ```sh + docker run --rm -v "$PWD":/opencontrol -w /opencontrol opencontrolorg/compliance-masonry get + ``` + +3. Generate SSP as a GitBook at the FedRAMP Moderate baseline + + ```sh + compliance-masonry docs gitbook FedRAMP-moderate + ``` + + or with Docker: + + ```sh + docker run --rm -v "$PWD":/opencontrol -w /opencontrol opencontrolorg/compliance-masonry docs gitbook FedRAMP-moderate + ``` + +If you prefer to generate a Word doc based on the official FedRAMP SSP template, you can follow the instructions at https://github.com/opencontrol/fedramp-templater. + +## Precompiled SSP templates for Docker EE + +Docker also provides precompiled System Security Plan (SSP) templates for authorizing Docker Enterprise Edition on various FedRAMP P-ATO'd IaaS providers, as indicated in the table below. These can be obtained by contacting [compliance@docker.com](mailto:compliance@docker.com). These templates are **not** the official cloud providers' SSP templates but rather highlight both the controls inherited from that IaaS provider's P-ATO and the controls applicable to Docker Enterprise Edition Advanced. When conducting an ATO, it is still your responsibility to request the provider's official SSP package as appropriate and conduct your own security analysis and audit. + +|Provider|Format|Baselines|Status|Last Updated| +|--------|------|---------|------|------------| +|[Microsoft Azure Government](https://azure.microsoft.com/en-us/overview/clouds/government/)|[Azure Blueprint](https://docs.microsoft.com/en-us/azure/azure-government/documentation-government-plan-compliance) (.docx)|Moderate
High
DoD L4
DoD L5|Available
Coming Soon
Coming Soon
Coming Soon|December 2016| + +Note that even if a precompiled template for Docker EE is not available for your chosen cloud provider, you can still use the OpenControl-formatted content in this repository to generate your own SSP templates. Much of the content in this repository is identical to that which is provided in the pre-built templates. This repository also contains the most up-to-date information on Docker EE and that which may not be reflected in the last update to the pre-built SSP templates. -> Both the UCP and DTR components leverage the eNZi authentication and authorization service component for authentication and authorization across an entire Docker Enterprise Edition cluster at the Standard and Advanced tiers. +## InSpec profiles for Docker EE -Each component is associated with a single `component.yaml` file which contain the actual security narratives. +The [`validation/inspec/`](validation/inspec/) directory contains [InSpec](https://inspec.io) audit profiles for Docker EE. These can be used to continuously audit a running Docker EE cluster and validate its configuration against applicable controls at both the FedRAMP Moderate and High baselines. -Bear in mind that you'll also need to include your own `component.yaml` files that reflect your organization's adherence to the appropriate controls and that which aren't covered by the functionality of Docker Enterprise Edition. Typically these are organized in separate component directories for each control familiy (e.g. `AC_Policy/`, `MA_POLICY/`, etc). Refer to the [`examples/opencontrol/DockerEE-Moderate-ATO`](https://github.com/docker/compliance/tree/master/examples/opencontrol/DockerEE-Moderate-ATO) directory for an example of this. +Instructions for using these profiles can be found in the [`validation/inspec/`](validation/inspec) directory. -## Developing +## Contributing to Docker compliance resources -Refer to the [Contributing Guide](https://github.com/docker/compliance/blob/master/CONTRIBUTING.md) for instructions on contributing to this project. +Refer to the [Contributing Guide](CONTRIBUTING.md) for instructions on contributing to this project. -### Component Validation +### Component validation The OpenControl schema is defined by the [Kwalify](http://www.kuwata-lab.com/kwalify/) schema validator and YAML parser. Each component definition in the Docker Enterprise Edition Advanced tier is tested against this schema using the [PyKwalify](https://github.com/Grokzen/pykwalify) Python port of the Kwalify specification. The Dockerfile in the root of this repository is used only by CircleCI for running the component tests within a container. -### Natural Language Processing [Experimental] +### Natural language processing [experimental] Thorough documentation of the relevant security controls for each of the Docker EE components is a critical aspect of this project. It's imperative that not only is each control satisfied, but that the contents of the actual narratives match that which is defined by NIST 800-53. As such, we've started to experiment with natural language processing tooling. We've included a set of utilities in the project backed by [Microsoft Cognitive Services](https://www.microsoft.com/cognitive-services) that demonstrate ways that the security assessment process can be enhanced with artificial intelligence. -The [`nlp/`](https://github.com/docker/compliance/tree/master/nlp) directory contains a few utilities that we've developed. Contributions welcome! +The [`nlp/`](nlp) directory contains a few utilities that we've developed. Contributions welcome! The potential use cases for natural language processing in documentation efforts are pretty wide-ranging. As such, our goal with this example is to open the door to new and exciting ways to build security and compliance documentation. diff --git a/docs/compliance/reference/800-53/ac.md b/docs/compliance/reference/800-53/ac.md index 62f0830..dc79261 100644 --- a/docs/compliance/reference/800-53/ac.md +++ b/docs/compliance/reference/800-53/ac.md @@ -37,31 +37,29 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
-service provider system specific
+service provider hybrid
#### Implementation Details
-
-To assist the organization in meeting the requirements of -this control, one can control which users and teams are allowed to -create and manipulate Docker Enterprise Edition resources. By default, no one +
+To assist the organization in meeting the requirements of this +control, one can control which users and teams are allowed to create +and manipulate Docker Enterprise Edition resources. By default, no one can make changes to the cluster. Permissions can be granted and managed to enforce fine-grained access control. Supporting documentation can found at the following resources:
@@ -111,18 +109,18 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
-configured by customer
service provider system specific
+service provider hybrid
#### Implementation Details
-
+
To assist the organization in meeting the requirements of this control, an external identity management system (such as Microsoft's Active Directory or an LDAP endpoint) can be configured as mandated by @@ -131,7 +129,7 @@ Supporting documentation can be found at the following resources:
@@ -156,54 +154,54 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
-service provider system specific
+service provider hybrid
Universal Control Plane (UCP) complete
-service provider system specific
+service provider hybrid
Authentication and Authorization Service (eNZi) complete
-configured by customer
service provider system specific
+service provider hybrid
#### Implementation Details
-
+ -
+ -
+
To assist the organization in meeting the requirements of this control, an external identity management system (such as Microsoft's Active Directory or an LDAP endpoint) can be configured as mandated by @@ -212,7 +210,7 @@ Supporting documentation can be found at the following resources:
@@ -236,19 +234,19 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) -none
-configured by customer
service provider system specific
+complete
+service provider hybrid
#### Implementation Details
-
+
Using Docker Enterprise Edition's LDAP integration capabilities, one can disable and/or remove temporary and emergency accounts in a connected directory service (such as Active Directory) after an @@ -258,7 +256,7 @@ Supporting documentation can be found at the following resources:
@@ -282,19 +280,19 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) -none
-configured by customer
service provider system specific
+complete
+service provider hybrid
#### Implementation Details
-
+
Using Docker Enterprise Edition's LDAP integration capabilities, one can automatically disable inactive accounts in a connected directory service (such as Active Directory). When a user is removed from LDAP, @@ -303,7 +301,7 @@ Supporting documentation can be found at the following resources:
@@ -328,18 +326,18 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
-service provider system specific
+service provider hybrid
#### Implementation Details
-
+ @@ -379,18 +378,18 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
-configured by customer
service provider system specific
+service provider hybrid
#### Implementation Details
-
+
To assist the organization in meeting the requirements of this control, Docker Enterprise Edition can be configured to enforce automated session termination of users after an organization-defined time period @@ -435,52 +434,52 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
-service provider system specific
+service provider hybrid
Universal Control Plane (UCP) complete
-service provider system specific
+service provider hybrid
Authentication and Authorization Service (eNZi) complete
-service provider system specific
+service provider hybrid
#### Implementation Details
-
+
To assist the organization in meeting the requirements of this control, supporting documentation can be found at the following resources:
-
+
To assist the organization in meeting the requirements of this control, supporting documentation can be found at the following resources:
-
+
To assist the organization in meeting the requirements of this control, Docker Enterprise Edition supports various levels of user permissions and role-based access control enforcements. Administrator @@ -490,13 +489,12 @@ manage the Universal Control Plane and underlying Docker Swarm Mode cluster. Supporting documentation can be found at the following resources: -UCP: @@ -532,18 +530,18 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
-configured by customer
service provider system specific
+service provider hybrid
#### Implementation Details
-
+
To assist the organization in meeting the requirements of this control, users and/or groups synchronized to Docker Enterprise Edition via LDAP can be configured at the directory service. @@ -569,20 +567,21 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
-configured by customer
service provider system specific
+service provider hybrid
#### Implementation Details
-
+
Users and/or groups synchronized to Docker Enterprise Edition via -LDAP can be configured at the directory service. +LDAP can be configured at the directory service to ensure shared/group +account credentials are terminated when members leave the group.
@@ -605,18 +604,18 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
-configured by customer
service provider system specific
+service provider hybrid
#### Implementation Details
-
+
Information system accounts synchronized to Docker Enterprise Edition via LDAP can be configured at the directory service to meet this requirement as necessary. @@ -646,48 +645,48 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
-service provider system specific
+service provider hybrid
Docker Enterprise Edition Engine complete
-service provider system specific
+service provider hybrid
Universal Control Plane (UCP) complete
-service provider system specific
+service provider hybrid
Authentication and Authorization Service (eNZi) complete
-configured by customer
service provider system specific
+service provider hybrid
#### Implementation Details
-
+ -
+
To assist the organization in meeting the requirements of this control, Docker Enterprise Edition can be configured to aggregate container and daemon events via a number of logging drivers. @@ -701,7 +700,7 @@ Supporting documentation can be found at the following resources:
-
+ -
+
To assist the organization in meeting the requirements of this control, when Docker Enterprise Edition is configured for LDAP integration, one can refer to the directory service's existing @@ -743,21 +746,22 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
-configured by customer
service provider system specific
+service provider hybrid
#### Implementation Details
-
+
To assist the organization in meeting the requirements of this control, users and/or groups synchronized to Docker Enterprise Edition -via LDAP can be managed at the directory service. +via LDAP can be managed at the directory service and disabled if +posing a significant risk.
@@ -780,30 +784,30 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
-service provider system specific
+Docker EE system
Universal Control Plane (UCP) complete
-service provider system specific
+Docker EE system
Authentication and Authorization Service (eNZi) complete
-service provider system specific
+Docker EE system
#### Implementation Details
-
+ -
+ -
+
One can control which users and teams can create and manipulate Docker Enterprise Edition resources. By default, no one can make changes to the cluster. Permissions can be granted and managed to enforce fine-grained access control. The eNZi component facilitates -authorizations as dictated by the system's administrators. +authorizations as dictated by the system's administrators. Supporting +documentation can be found at the following resources: + + + +
@@ -966,46 +983,46 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
-service provider system specific
+Docker EE system
Docker Enterprise Edition Engine complete
-configured by customer
service provider system specific
+service provider hybrid
Universal Control Plane (UCP) complete
-service provider system specific
+Docker EE system
#### Implementation Details
-
+ -
-Docker Enterprise Edition can be configured to control the flow of information -that originates from applications running in containers. Supporting -documentation can be found at the following resources: +
+Docker Enterprise Edition can be configured to control the flow of +information that originates from applications running in containers. +Supporting documentation can be found at the following resources:
    @@ -1014,17 +1031,17 @@ documentation can be found at the following resources:
-
+
Supporting documentation to configure Universal Control Plane to meet the requirements of this control can be found at the following resources:
-
+
Supporting documentation to configure Universal Control Plane to meet the requirements of this control can be found at the following resources:
-
+
Supporting documentation to configure Universal Control Plane to meet the requirements of this control can be found at the following resources:
-
+
All of the event types indicated by this control are logged by the backend ucp-controller service within Universal Control Plane. In addition, each container created on a Universal Control Plane cluster @@ -112,7 +115,7 @@ can be referenced at the following resources:
@@ -147,36 +150,36 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
-service provider system specific
+Docker EE system
shared
Docker Enterprise Edition Engine complete
-service provider system specific
+Docker EE system
shared
Universal Control Plane (UCP) complete
-service provider system specific
+Docker EE system
shared
Authentication and Authorization Service (eNZi) complete
-service provider system specific
+Docker EE system
shared
#### Implementation Details
-
+
Docker Trusted Registry generates all of the audit record information indicated by this control. A sample audit event has been provided below: @@ -186,7 +189,7 @@ based auth suceeded","remote_addr":"192.168.33.1:55905","time":"2016-11-09T22:41:01Z","type":"auth ok","username":"dockeruser"}
-
+
Both Universal Control Plane and Docker Trusted Registry are pre-configured to take advantage of Docker Enterprise Edition's built-in logging mechanisms. A sample audit event recorded by Docker @@ -205,7 +208,7 @@ Additional documentation can be referenced at the following resource:
-
+
Universal Control Plane generates all of the audit record information indicated by this control. A sample audit event has been provided below: @@ -215,7 +218,7 @@ based auth suceeded","remote_addr":"192.168.33.1:55905","time":"2016-11-09T22:41:01Z","type":"auth ok","username":"dockeruser"}
-
+
Docker Enterprise Edition generates all of the audit record information indicated by this control. A sample audit event has been provided below: @@ -246,30 +249,30 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
-service provider system specific
+Docker EE system
shared
Docker Enterprise Edition Engine complete
-service provider system specific
+Docker EE system
shared
Universal Control Plane (UCP) complete
-service provider system specific
+Docker EE system
shared
#### Implementation Details
-
+
Universal Control Plane can be configured to log data to a remote logging stack, which in turn, sends the Docker Trusted Registry backend container audit records to the remote logging stack. The @@ -279,11 +282,11 @@ information can be found at the following resource:
-
+
Docker Enterprise Edition can be configured with various logging drivers to send audit events to an external logging stack. The logging stack can subsequently be used to interpolate the information defined @@ -296,7 +299,7 @@ documentation can be found at the following resource:
-
+
Universal Control Plane can be configured to log data to a remote logging stack. The logging stack can subsequently be used to interpolate the information defined by this control from the logged @@ -305,7 +308,7 @@ resource:
@@ -330,30 +333,30 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
-service provider system specific
+Docker EE system
shared
Docker Enterprise Edition Engine complete
-service provider system specific
+Docker EE system
shared
Universal Control Plane (UCP) complete
-service provider system specific
+Docker EE system
shared
#### Implementation Details
-
+
Universal Control Plane can be configured to log data to a remote logging stack, which in turn, sends the Docker Trusted Registry backend container audit records to the remote logging stack. The @@ -363,11 +366,11 @@ information can be found at the following resource:
-
+
Docker Enterprise Edition can be configured with various logging drivers to send audit events to an external logging stack. The logging stack can subsequently be used to interpolate the information defined @@ -380,7 +383,7 @@ documentation can be found at the following resource:
-
+
Universal Control Plane can be configured to log data to a remote logging stack. The logging stack can subsequently be used to interpolate the information defined by this control from the logged @@ -389,7 +392,7 @@ resource:
@@ -438,12 +441,12 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
-service provider system specific
+Docker EE system
shared
Docker Enterprise Edition Engine complete
-service provider system specific
+Docker EE system
shared
Universal Control Plane (UCP) @@ -455,13 +458,13 @@ Responsible role(s) - Docker system #### Implementation Details
-
+
Universal Control Plane can be configured to log data to a remote logging stack, which in turn, sends the Docker Trusted Registry backend container audit records to the remote logging stack. The @@ -471,11 +474,11 @@ found at the following resources:
-
+
Docker Enterprise Edition can be configured with various logging drivers to send audit events to an external logging stack. The logging stack can be used to interpolate the information defined by this @@ -489,7 +492,7 @@ resources:
-
+
Universal Control Plane can be configured to log data to a remote logging stack. The logging stack can subsequently be configured to alert individuals in the event of log processing failures. Additional @@ -497,7 +500,7 @@ information can be found at the following resources:
@@ -522,30 +525,30 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
-service provider system specific
+Docker EE system
shared
Docker Enterprise Edition Engine complete
-service provider system specific
+Docker EE system
shared
Universal Control Plane (UCP) complete
-service provider system specific
+Docker EE system
shared
#### Implementation Details
-
+
Universal Control Plane can be configured to log data to a remote logging stack, which in turn, sends the Docker Trusted Registry backend container audit records to the remote logging stack. The @@ -555,11 +558,11 @@ found at the following resources:
-
+
Docker Enterprise Edition can be configured with various logging drivers to send audit events to an external logging stack. The logging stack can subsequently be configured to warn the organization when the @@ -572,7 +575,7 @@ the following resources:
-
+
Universal Control Plane can be configured to log data to a remote logging stack. The logging stack can subsequently be configured to warn the organization when the allocated log storage is full. @@ -580,7 +583,7 @@ Additional information can be found at the following resources:
@@ -605,30 +608,30 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
-service provider system specific
+Docker EE system
shared
Docker Enterprise Edition Engine complete
-service provider system specific
+Docker EE system
shared
Universal Control Plane (UCP) complete
-service provider system specific
+Docker EE system
shared
#### Implementation Details
-
+
Universal Control Plane can be configured to log data to a remote logging stack, which in turn, sends the Docker Trusted Registry backend container audit records to the remote logging stack. The @@ -638,11 +641,11 @@ the following resources:
-
+
Docker Enterprise Edition can be configured with various logging drivers to send audit events to an external logging stack. The logging stack can subsequently be configured to warn the organization @@ -655,7 +658,7 @@ the following resources:
-
+
Universal Control Plane can be configured to log data to a remote logging stack. The logging stack can subsequently be configured to warn the organization when audit log failures occur. Additional @@ -663,7 +666,7 @@ information can be found at the following resources:
@@ -742,30 +745,30 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
-service provider system specific
+Docker EE system
shared
Docker Enterprise Edition Engine complete
-service provider system specific
+Docker EE system
shared
Universal Control Plane (UCP) complete
-service provider system specific
+Docker EE system
shared
#### Implementation Details
-
+
Universal Control Plane can be configured to log data to a remote logging stack, which in turn, sends the Docker Trusted Registry backend container audit records to the remote logging stack. The @@ -775,11 +778,11 @@ following resources:
-
+
Docker Enterprise Edition can be configured with various logging drivers to send audit events to an external logging stack. The organization can subsequently centrally review and analyze all of the @@ -792,7 +795,7 @@ following resources:
-
+
Universal Control Plane can be configured to log data to a remote logging stack. The organization can subsequently centrally review and analyze all of the Docker EE audit records. Additional information can @@ -800,7 +803,7 @@ be found at the following resources:
@@ -888,31 +891,31 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) -complete
-service provider system specific
+ +Docker EE system
shared
Docker Enterprise Edition Engine complete
-service provider system specific
+Docker EE system
shared
Universal Control Plane (UCP) complete
-service provider system specific
+Docker EE system
shared
#### Implementation Details
-
+
Universal Control Plane can be configured to log data to a remote logging stack, which in turn, sends the Docker Trusted Registry backend container audit records to the remote logging stack. The @@ -924,11 +927,11 @@ The underlying operating system chosen to support Docker Trusted Registry should be certified to ensure that logs are not altered during generation and transmission to a remote logging stack.
-
+
Docker Enterprise Edition can be configured with various logging drivers to send audit events to an external logging stack. The logging stack can subsequently be used to facilitate the audit reduction and @@ -938,13 +941,12 @@ can be found at the following resources: The underlying operating system chosen to support Docker Enterprise Edition should be certified to ensure that logs are not altered during generation and transmission to a remote logging stack. -
-
+
Universal Control Plane can be configured to log data to a remote logging stack. The logging stack can subsequently be used to facilitate the audit reduction and report generation requirements of @@ -955,7 +957,7 @@ The underlying operating system chosen to support Universal Control Plane should be certified to ensure that logs are not altered during generation and transmission to a remote logging stack.
@@ -980,30 +982,30 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
-service provider system specific
+Docker EE system
shared
Docker Enterprise Edition Engine complete
-service provider system specific
+Docker EE system
shared
Universal Control Plane (UCP) complete
-service provider system specific
+Docker EE system
shared
#### Implementation Details
-
+
Universal Control Plane can be configured to log data to a remote logging stack, which in turn, sends the Docker Trusted Registry backend container audit records to the remote logging stack. The @@ -1013,11 +1015,11 @@ at the following resources:
-
+
Docker Enterprise Edition can be configured with various logging drivers to send audit events to an external logging stack. The logging stack can subsequently be configured to parse information by @@ -1030,7 +1032,7 @@ at the following resources:
-
+
Universal Control Plane can be configured to log data to a remote logging stack. The logging stack can subsequently be configured to parse information by organization-defined audit fields. Additional @@ -1038,7 +1040,7 @@ information can be found at the following resources:
@@ -1077,46 +1079,44 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
-configured by customer
+service provider hybrid
Docker Enterprise Edition Engine complete
-configured by customer
+service provider hybrid
Universal Control Plane (UCP) complete
-configured by customer
+service provider hybrid
#### Implementation Details
-
+
Docker Trusted Registry uses the system clock of the underlying operating system on which it runs. This behavior cannot be modified.The underlying operating system on which Docker Trusted Registry runs should be configured such that its system clock uses Coordinated Universal Time (UTC) as indicated by this control. Refer to the operating system's instructions for doing so.
-
+
Docker Enterprise Edition uses the system clock of the underlying -operating system on which it runs. This behavior cannot be modified. -The underlying operating system on which Docker Enterprise Edition +operating system on which it runs. This behavior cannot be modified.The underlying operating system on which Docker Enterprise Edition runs should be configured such that its system clock uses Coordinated Universal Time (UTC) as indicated by this control. Refer to the operating system's instructions for doing so. -
-
+
Universal Control Plane uses the system clock of the underlying operating system on which it runs. This behavior cannot be modified.The underlying operating system on which Universal Control Plane runs should be configured such that its system clock uses Coordinated @@ -1148,30 +1148,30 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
-service provider system specific
+service provider hybrid
Docker Enterprise Edition Engine complete
-service provider system specific
+service provider hybrid
Universal Control Plane (UCP) complete
-service provider system specific
+service provider hybrid
#### Implementation Details
-
+
The underlying operating system on which Docker Trusted Registry runs should be configured such that its system clock compares itself with an authoritative time source as indicated by this control. This can be @@ -1184,22 +1184,20 @@ time period. This can be accomplished by utilizing the Network Time Protocol (NTP). Refer to the operating system's instructions for doing so.
-
+
The underlying operating system on which Docker Enterprise Edition runs should be configured such that its system clock compares itself with an authoritative time source as indicated by this control. This can be accomplished by utilizing the Network Time Protocol (NTP). Refer to -the operating system's instructions for doing so. -The underlying operating system on which Docker Enterprise Edition +the operating system's instructions for doing so.The underlying operating system on which Docker Enterprise Edition runs should be configured such that its system clock synchronizes itself to an authoritative time source as defined by part (a) of this control any time the time difference exceeds that of the organization-defined time period. This can be accomplished by utilizing the Network Time Protocol (NTP). Refer to the operating system's instructions for doing so. -
-
+
The underlying operating system on which Universal Control Plane runs should be configured such that its system clock compares itself with an authoritative time source as indicated by this control. This can be @@ -1243,30 +1241,30 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
-service provider system specific
+service provider hybrid
Docker Enterprise Edition Engine complete
-service provider system specific
+service provider hybrid
Universal Control Plane (UCP) complete
-service provider system specific
+service provider hybrid
#### Implementation Details
-
+
By default, Docker Trusted Registry is configured to use the underlying logging capabilities of Docker Enterprise Edition. As such, on the underlying Linux operating system, only root and sudo users and @@ -1278,7 +1276,7 @@ logging stack. In this case, the organization is responsible for configuring the remote logging stack per the provisions of this control.
-
+
On the underlying Linux operating system supporting Docker Enterprise Edition, only root and sudo users and users that have been added to the "docker" group have the ability to access the logs generated by @@ -1286,8 +1284,12 @@ UCP backend service containers. Should the organization decide to configure Docker Enterprise Edition to use a logging driver other than the default json-file driver, the organization is subsequently responsible for configuring the chosen logging stack per the -provisions of this control. Additional information can be found at the -following resources: +provisions of this control. In addition, for Linux operating systems +supporting Docker Enterprise Edition that use the systemd daemon, it +is imperative that the Journal is secured per the requirements of this +control. The same applies for Linux operating systems supporting +Docker Enterprise Edition that instead use upstart. Additional +information can be found at the following resources:
    @@ -1295,7 +1297,7 @@ following resources:
-
+
By default, Universal Control Plane is configured to use the underlying logging capabilities of Docker Enterprise Edition. As such, on the underlying Linux operating system, only root and sudo users and @@ -1338,42 +1340,43 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
-service provider system specific
+service provider hybrid
Docker Enterprise Edition Engine complete
-service provider system specific
+service provider hybrid
Universal Control Plane (UCP) complete
-service provider system specific
+service provider hybrid
#### Implementation Details
-
+
Docker Trusted Registry resides as an Application on a Universal -Control Plane cluster, acan be configured to send logs to a remote -logging stack. Additional information can be found at the following -resources: +Control Plane cluster, and can be configured to send logs to a remote +logging stack. The logging stack can subsequently be configured to +back up audit records per the schedule defined by this control. +Additional information can be found at the following resources:
-
+
Docker Enterprise Edition can be configured to use a logging driver that can subsequently meet the backup requirements of this control. Additional information can be found at the following resources: @@ -1384,14 +1387,15 @@ Additional information can be found at the following resources:
-
+
Universal Control Plane can be configured to send logs to a remote -logging stack. Additional information can be found at the following -resources: +logging stack. The logging stack can subsequently be configured to +back up audit records per the schedule defined by this control. +Additional information can be found at the following resources:
@@ -1416,36 +1420,43 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
-service provider system specific
+service provider hybrid
Docker Enterprise Edition Engine complete
-service provider system specific
+service provider hybrid
+ + +Universal Control Plane (UCP) +complete
+service provider hybrid
#### Implementation Details
-
+
Docker Trusted Registry resides as an Application on a Universal -Control Plane cluster, acan be configured to send logs to a remote -logging stack. Additional information can be found at the following -resources: +Control Plane cluster, and can be configured to send logs to a remote +logging stack. The logging stack can subsequently be configured to +meet the encryption mechanisms required by this control. Additional +information can be found at the following resources:
-
+
Docker Enterprise Edition can be configured to use a logging driver that can subsequently meet the encryption mechanisms required by this control. Additional information can be found at the following @@ -1456,6 +1467,18 @@ resources:
  • https://docs.docker.com/engine/admin/logging/overview/
  • +
    +
    +Universal Control Plane can be configured to send logs to a remote +logging stack. The logging stack can subsequently be configured to +meet the encryption mechanisms required by this control. Additional +information can be found at the following resources: + + + +
    @@ -1508,18 +1531,18 @@ Responsible role(s) - Docker system Docker Enterprise Edition Engine complete
    -service provider system specific
    +Docker EE system
    #### Implementation Details
    -
    +
    Docker Enterprise Edition includes functionality known as Docker Content Trust which allows one to cryptographically sign Docker images. It enforces client-side signing and verification of image tags @@ -1612,44 +1635,45 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +Docker EE system
    service provider corporate
    service provider hybrid
    shared
    Docker Enterprise Edition Engine complete
    -service provider system specific
    +service provider hybrid
    shared
    Universal Control Plane (UCP) complete
    -service provider system specific
    +service provider hybrid
    shared
    #### Implementation Details
    -
    +
    The organization will be responsible for meeting the requirements of this control. To assist with these requirements, Docker Trusted Registry resides as an Application on a Universal Control Plane cluster, and as such, can be configured to send logs to a remote -logging stack. Additional information can be found at the following -resources: +logging stack. This logging stack can subsequently be configured to +retain logs for the duration required by this control. Additional +information can be found at the following resources:
    -
    +
    The organization will be responsible for meeting the requirements of this control. To assist with these requirements, Docker Enterprise Edition can be configured to use a logging driver that stores data in @@ -1662,15 +1686,17 @@ information can be found at the following resources:
    -
    +
    The organization will be responsible for meeting the requirements of this control. To assist with these requirements, Universal Control -Plane can be configured to send logs to a remote logging stack. -Additional information can be found at the following resources: +Plane can be configured to send logs to a remote logging stack. This +logging stack can subsequently be configured retain logs for the +duration required by this control. Additional information can be found +at the following resources:
    @@ -1710,74 +1736,84 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +Docker EE system
    shared
    Docker Enterprise Edition Engine complete
    -service provider system specific
    +Docker EE system
    shared
    Universal Control Plane (UCP) complete
    -service provider system specific
    +Docker EE system
    shared
    #### Implementation Details
    -
    +
    All of the event types indicated by AU-2 a. are logged by a combination of the backend services within Universal Control Plane and -Docker Trusted Registry. Additional information can be found at the -following resources: +Docker Trusted Registry. The underlying Linux operating system +supporting DTR can be configured to audit Docker-specific events with +the auditd daemon. Refer to the specific Linux distribution in use for +instructions on configuring this service. Additional information can +be found at the following resources: Using auditd on the Linux operating system supporting DTR, the organization can configure audit rules to select which Docker-specific events are to be audited. Refer to the specific Linux distribution in use for instructions on configuring this service.
    -
    +
    Both Universal Control Plane and Docker Trusted Registry backend service containers, all of which reside on Docker Enterprise Edition, log all of the event types indicated by this AU-2 a. These and other application containers that reside on Docker Enterprise Edition can be -configured to log data via an appropriate Docker logging driver. -Additional information can be found at the following resources: +configured to log data via an appropriate Docker logging driver. The +underlying Linux operating system supporting Docker Enterprise Edition +can be configured to audit Docker-specific events with the auditd +daemon. Refer to the specific Linux distribution in use for +instructions on configuring this service. Additional information can +be found at the following resources: Using auditd on the Linux operating system supporting CS Docker Engine, the organization can configure audit rules to select which Docker-specific events are to be audited. Refer to the specific Linux distribution in use for instructions on configuring this service. -
    -
    +
    All of the event types indicated by AU-2 a. are logged by the backend ucp-controller service within Universal Control Plane. In addition, each container created on a Universal Control Plane cluster logs event -data. Additional information can be found at the following resources: +data. The underlying Linux operating system supporting UCP can be +configured to audit Docker-specific events with the auditd daemon. +Refer to the specific Linux distribution in use for instructions on +configuring this service. Additional information can be found at the +following resources: Using auditd on the Linux operating system supporting UCP, the organization can configure audit rules to select which Docker-specific events are to be audited. Refer to the specific Linux distribution in use for instructions on configuring this service.
    @@ -1802,42 +1838,44 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +Docker EE system
    shared
    Docker Enterprise Edition Engine complete
    -service provider system specific
    +Docker EE system
    shared
    Universal Control Plane (UCP) complete
    -service provider system specific
    +Docker EE system
    shared
    #### Implementation Details
    -
    +
    Docker Trusted Registry resides as an Application on a Universal Control Plane cluster, and as such, can be configured to send logs to -a remote logging stack. Additional information can be found at the -following resources: +a remote logging stack. This logging stack can subsequently be used to +compile audit records in to a system-wide audit trail that is +time-correlated per the requirements of this control. Additional +information can be found at the following resources:
    -
    +
    Docker Enterprise Edition can be configured with various logging drivers to send audit events to an external logging stack. This logging stack can subsequently be used to compile audit records in to @@ -1851,14 +1889,16 @@ resources:
    -
    +
    Universal Control Plane can be configured to send logs to a remote -logging stack. Additional information can be found at the following -resources: +logging stack. This logging stack can subsequently be used to compile +audit records in to a system-wide audit trail that is time-correlated +per the requirements of this control. Additional information can be +found at the following resources:
    @@ -1893,42 +1933,43 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +service provider hybrid
    shared
    Docker Enterprise Edition Engine complete
    -service provider system specific
    +service provider hybrid
    shared
    Universal Control Plane (UCP) complete
    -service provider system specific
    +service provider hybrid
    shared
    #### Implementation Details
    -
    +
    Docker Trusted Registry resides as an Application on a Universal Control Plane cluster, and as such, can be configured to send logs to -a remote logging stack. Additional information can be found at the -following resources: +a remote logging stack. This logging stack can subsequently be used to +meet the requirements of this control. Additional information can be +found at the following resources:
    -
    +
    Docker Enterprise Edition can be configured with various logging drivers to send audit events to an external logging stack. This logging stack can subsequently be used to meet the requirements of @@ -1941,14 +1982,15 @@ resources:
    -
    +
    Universal Control Plane can be configured to send logs to a remote -logging stack. Additional information can be found at the following -resources: +logging stack. This logging stack can subsequently be used to meet the +requirements of this control. Additional information can be found at +the following resources:
    diff --git a/docs/compliance/reference/800-53/ca.md b/docs/compliance/reference/800-53/ca.md index 03fff86..2d765df 100644 --- a/docs/compliance/reference/800-53/ca.md +++ b/docs/compliance/reference/800-53/ca.md @@ -201,43 +201,7 @@ The organization develops a continuous monitoring strategy and implements a cont #### Control Information -Responsible role(s) - Docker system - - - - - - - - - - - - -
    ComponentImplementation Status(es)Control Origin(s)
    Docker Enterprise Edition Enginecomplete
    service provider system specific
    - -#### Implementation Details - - - -
    -
    -The CIS Docker Benchmark can be used as a baseline for securing Docker -Enterprise Edition and for helping the organization meet the -continuous monitoring requirements of this control. Additional -information can be found at the following resources: - - - - -
    -
    +Responsible role(s) - Organization ### CA-7 (1) Independent Assessment diff --git a/docs/compliance/reference/800-53/cm.md b/docs/compliance/reference/800-53/cm.md index d534294..b1207f5 100644 --- a/docs/compliance/reference/800-53/cm.md +++ b/docs/compliance/reference/800-53/cm.md @@ -37,26 +37,26 @@ Responsible role(s) - Docker system Docker Enterprise Edition Engine complete
    -service provider system specific
    +service provider hybrid
    shared
    #### Implementation Details
    -
    -The CIS Docker Benchmark can be used as a baseline for securing Docker -Enterprise Edition and for helping the organization meet the -configurmation management requirements of this control. Additional +
    +The CIS Docker Benchmark can be used as a baseline for securing +Docker Enterprise Edition and for helping the organization meet the +configuration management requirements of this control. Additional information can be found at the following resources: @@ -83,26 +83,26 @@ Responsible role(s) - Docker system Docker Enterprise Edition Engine complete
    -service provider system specific
    +service provider hybrid
    shared
    #### Implementation Details
    -
    +
    The CIS Docker Benchmark can be used as a baseline for securing Docker Enterprise Edition and for helping the organization meet the -configurmation management requirements of this control. Additional +configuration management requirements of this control. Additional information can be found at the following resources: @@ -134,26 +134,26 @@ Responsible role(s) - Docker system Docker Enterprise Edition Engine complete
    -service provider system specific
    +service provider hybrid
    shared
    #### Implementation Details
    -
    -The CIS Docker Benchmark can be used as a baseline for securing Docker -Enterprise Edition and for helping the organization meet the +
    +The CIS Docker Benchmark can be used as a baseline for securing +Docker Enterprise Edition and for helping the organization meet the configurmation management requirements of this control. Additional information can be found at the following resources: @@ -180,20 +180,20 @@ Responsible role(s) - Docker system Docker Enterprise Edition Engine complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    -The CIS Docker Benchmark can be used as a baseline for securing Docker -Enterprise Edition and for helping the organization meet the +
    +The CIS Docker Benchmark can be used as a baseline for securing +Docker Enterprise Edition and for helping the organization meet the configurmation management requirements of this control. CIS regularly updates their benchmark to reflect the latest updates in the stable release of Docker Engine. Various configuration management tools such @@ -204,7 +204,7 @@ information can be found at the following resources: @@ -231,18 +231,18 @@ Responsible role(s) - Docker system Docker Enterprise Edition Engine complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    The CIS Docker Benchmark can be used as a baseline for securing Docker Enterprise Edition and for helping the organization meet the configurmation management requirements of this control. CIS regularly @@ -256,7 +256,7 @@ found at the following resources: @@ -316,18 +316,18 @@ Responsible role(s) - Docker system Docker Enterprise Edition Engine complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    The CIS Docker Benchmark can be used as a baseline for securing Docker Enterprise Edition and for helping the organization meet the configurmation management change control requirements of this control. @@ -335,7 +335,7 @@ Additional information can be found at the following resources: @@ -370,18 +370,18 @@ Responsible role(s) - Docker system Docker Enterprise Edition Engine complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    The CIS Docker Benchmark can be used as a baseline for securing Docker Enterprise Edition and for helping the organization meet the configurmation management change control requirements of this control. @@ -393,7 +393,7 @@ be found at the following resources: @@ -420,18 +420,18 @@ Responsible role(s) - Docker system Docker Enterprise Edition Engine complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    The CIS Docker Benchmark can be used as a baseline for securing Docker Enterprise Edition and for helping the organization meet the configurmation management change control requirements of this control. @@ -443,7 +443,7 @@ be found at the following resources: @@ -500,18 +500,18 @@ Responsible role(s) - Docker system Docker Enterprise Edition Engine complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    The CIS Docker Benchmark can be used as a baseline for securing Docker Enterprise Edition and for helping the organization meet the cryptography management requirements of this control. Additional @@ -519,7 +519,7 @@ information can be found at the following resources: @@ -586,45 +586,44 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +Docker EE system
    Universal Control Plane (UCP) complete
    -service provider system specific
    +Docker EE system
    #### Implementation Details
    -
    + -
    +
    Role-based access control can be configured within Universal Control Plane to meet the requirements of this control. Additional information can be found at the following resources: @@ -651,18 +650,18 @@ Responsible role(s) - Docker system Docker Enterprise Edition Engine complete
    -service provider system specific
    +Docker EE system
    #### Implementation Details
    -
    +
    The CIS Docker Benchmark can be used as a baseline for securing Docker Enterprise Edition and for helping the organization meet the system change requirements of this control. Additional information can @@ -670,7 +669,7 @@ be found at the following resources: @@ -697,30 +696,30 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +service provide hybrid
    shared
    Docker Enterprise Edition Engine complete
    -service provider system specific
    +service provide hybrid
    shared
    Universal Control Plane (UCP) complete
    -service provider system specific
    +service provide hybrid
    shared
    #### Implementation Details
    -
    +
    Docker Content Trust is a capability provided by Docker Enterprise Edition that enforces client-side signing and verification of Docker image tags. It provides the ability to use digital signatures for data @@ -737,28 +736,29 @@ Additional information can be found at teh following resources:
    -
    +
    Before installing Docker Enterprise Edition, ensure that your supporting Linux operating system's packager manager supports package signature verification and that it is enabled. It is also required -that you import the Docker public key for CS packages so as to +that you import the Docker public key for EE packages so as to retrieve the validated and signed package from Docker, Inc. Refer to your Linux OS documentation for instructions on completing the above steps. -In addition, Docker Content Trust is a capability provided by CS -Docker Engine that enforces client-side signing and verification of -Docker image tags. It provides the ability to use digital signatures -for data sent to and received from Docker Trusted Registry and the -public Docker Store. These signatures allow client-side verification -of the integrity and publisher of specific image tags. When enabling -Docker Content Trust in Docker Enterprise Edition you can enforce the -use of signed Docker images. Additional information can be found at -the following resources: +In addition, Docker Content Trust is a capability provided by Docker +Engine that enforces client-side signing and verification of Docker +image tags. It provides the ability to use digital signatures for data +sent to and received from Docker Trusted Registry and the public +Docker Store. These signatures allow client-side verification of the +integrity and publisher of specific image tags. When enabling Docker +Content Trust in Docker Enterprise Edition you can enforce the use of +signed Docker images. Additional information can be found at the +following resources:
      @@ -766,24 +766,23 @@ the following resources:
    -
    -Docker Content Trust is a capability provided by Docker Enterprise Edition -that enforces client-side signing and verification of Docker image -tags. It provides the ability to use digital signatures for data sent -to and received from Docker Trusted Registry and the public Docker -Store. These signatures allow client-side verification of the +
    +Docker Content Trust is a capability provided by Docker Enterprise +Edition that enforces client-side signing and verification of Docker +image tags. It provides the ability to use digital signatures for data +sent to and received from Docker Trusted Registry and the public +Docker Store. These signatures allow client-side verification of the integrity and publisher of specific image tags. All Universal Control Plane Docker images are officially signed and verified by Docker, Inc. When configuring Universal Control Plane, you should enforce applications to only use Docker images signed by trusted UCP users -within your organization. Additional information can be found at the following resources: +within your organization. Additional information can be found at the +following resources:
    @@ -858,47 +857,63 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +service provider hybrid
    Docker Enterprise Edition Engine complete
    -service provider system specific
    +service provider hybrid
    Universal Control Plane (UCP) complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    The organization is responsible for meeting the requirements of this control. To assist with these requirements, the organization can incorporate the use of an external configuration management system to -meet the requirements of this control. -
    -
    -The organization is responsible for meeting the requirements of this -control. The organization can incorporate the use of an external -configuration management system to meet the requirements of this -control. +meet the requirements of this control. Docker Trusted Registry's +configuration can also be backed up and stored an appropriate location +per the requirements of this control. Additional documenation can be +found at the following resources: + + + +
    +
    +The organization can incorporate the use of an external configuration +management system to meet the requirements of this control.
    -
    +
    The organization is responsible for meeting the requirements of this - control. To assist with these requirements, the organization can - incorporate the use of an external configuration management system to - meet the requirements of this control. +control. To assist with these requirements, the organization can +incorporate the use of an external configuration management system to +meet the requirements of this control. Universal Control Plane's +configuration can also be managed, backed up and stored in another +location per the requirements of this control. Additional documentation +can be found at the following resources: + + + +
    @@ -924,7 +939,41 @@ The organization: #### Control Information -Responsible role(s) - Organization +Responsible role(s) - Docker system + + + + + + + + + + + + +
    ComponentImplementation Status(es)Control Origin(s)
    Docker Enterprise Edition Enginecomplete
    service provider hybrid
    + +#### Implementation Details + + + +
    +
    +To help the organization meet the requirements of this control, the +latest CIS Docker Benchmark can be used as a secure configuration +baseline. Additional information can be found at the following +resources: + + + + +
    +
    ### CM-7 (1) Periodic Review @@ -938,7 +987,34 @@ The organization: #### Control Information -Responsible role(s) - Organization +Responsible role(s) - Docker system + + + + + + + + + + + + +
    ComponentImplementation Status(es)Control Origin(s)
    Universal Control Plane (UCP)complete
    Docker EE system
    service provider corporate
    service provider hybrid
    + +#### Implementation Details + + + +
    +
    +To help the organization meet the requirements of this control, +Universal Control Plane includes a robust access control model to +disable any functionality as mandated by this control. +
    +
    ### CM-7 (2) Prevent Program Execution @@ -959,48 +1035,47 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +Docker EE system
    Docker Enterprise Edition Engine complete
    -service provider system specific
    +Docker EE system
    Universal Control Plane (UCP) complete
    -service provider system specific
    +Docker EE system
    #### Implementation Details
    -
    +
    The organization can define a list of allowed base Docker images and make them available via Docker Trusted Registry. The organization can also prevent users from being able to pull Docker images from untrusted sources.
    -
    +
    In order to restrict which Docker images can be used to deploy -applications to Docker Enterprise Edition, the organization must define a list -of allowed base Docker images and make them available via Docker -Trusted Registry. The organization must also prevent users from being -able to pull Docker images from untrusted sources. - +applications to Docker Enterprise Edition, the organization can define +a list of allowed base Docker images and make them available via +Docker Trusted Registry. The organization can also prevent users from +being able to pull Docker images from untrusted sources.
    -
    +
    In order to restrict which Docker images can be used to deploy -applications to Universal Control Plane, the organization must define a +applications to Universal Control Plane, the organization can define a list of allowed base Docker images and make them available via Docker -Trusted Registry. The organization must also prevent users from being +Trusted Registry. The organization can also prevent users from being able to pull Docker images from untrusted sources.
    @@ -1054,34 +1129,34 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +service provider hybrid
    shared
    Docker Enterprise Edition Engine complete
    -service provider system specific
    +service provider hybrid
    shared
    Universal Control Plane (UCP) complete
    -service provider system specific
    +service provider hybrid
    shared
    #### Implementation Details
    -
    +
    The organization is responsible for meeting the requirements of this control. To assist with these requirements, the organization can define a list of allowed base Docker images and make them available -via Docker Trusted Registry. The organization must also prevent users +via Docker Trusted Registry. The organization can also prevent users from being able to pull Docker images from untrusted sources.The organization is responsible for meeting the requirements of this control. To assist with these requirements, the organization can configure its systems to ensure that only approved Docker images are @@ -1089,17 +1164,16 @@ stored in Docker Trusted Registry. This can be accomplished by using Docker Content Trust to sign Docker images which can subsequently be stored in Docker Trusted Registry.
    -
    +
    The organization is responsible for meeting the requirements of this control. To assist with these requirements and in order to restrict -which Docker images can be used to deploy applications to CS Docker +which Docker images can be used to deploy applications to Docker EE Engine, the organization must define a list of allowed base Docker images and make them available via Docker Trusted Registry. The organization must also prevent users from being able to pull Docker images from untrusted sources. -
    -
    +
    The organization is responsible for meeting the requirements of this control. To assist with these requirements and in order to restrict which Docker images can be used to deploy applications to Universal @@ -1117,7 +1191,7 @@ following resources:
    @@ -1267,18 +1341,18 @@ Responsible role(s) - Docker system Docker Enterprise Edition Engine complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    The CIS Docker Benchmark can be used as a baseline for securing Docker Enterprise Edition and for helping the organization meet the configuration management plan requirements of this control. Additional @@ -1286,7 +1360,7 @@ information can be found at the following resources: @@ -1353,18 +1427,18 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +service provider hybrid
    shared
    #### Implementation Details
    -
    +
    The organization is responsible for meeting the requirements of this control. To assist with these requirements, the organization can define a list of allowed base Docker images and make them available @@ -1392,22 +1466,21 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +service provider hybrid
    shared
    #### Implementation Details
    -
    -The organization is responsible for meeting the requirements of this -control. To assist with these requirements, the organization can -define a list of allowed base Docker images and make them available -via Docker Trusted Registry. The organization can also prevent users +
    +The organization can define a list of allowed base Docker images and +make them available via Docker Trusted Registry to meet the +requirements of this contorl. The organization can also prevent users from being able to pull Docker images from untrusted sources.
    diff --git a/docs/compliance/reference/800-53/cp.md b/docs/compliance/reference/800-53/cp.md index d66c7c3..4b28944 100644 --- a/docs/compliance/reference/800-53/cp.md +++ b/docs/compliance/reference/800-53/cp.md @@ -513,24 +513,24 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +Docker EE system
    Universal Control Plane (UCP) complete
    -service provider system specific
    +Docker EE system
    #### Implementation Details
    -
    +
    Docker Trusted Registry maintains its cluster state via an internal key-value store. This, and other DTR transactions can be backed up and recovered. Additional information can be found at the following @@ -538,12 +538,12 @@ resources:
    -
    +
    Universal Control Plane maintains its cluster state via an internal key-value store. This, and other UCP transactions can be backed up and recovered. Additional information can be found at the following @@ -551,7 +551,7 @@ resources: diff --git a/docs/compliance/reference/800-53/ia.md b/docs/compliance/reference/800-53/ia.md index 42c2567..04d8b7a 100644 --- a/docs/compliance/reference/800-53/ia.md +++ b/docs/compliance/reference/800-53/ia.md @@ -47,28 +47,34 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
    -service provider system specific
    +Docker EE system
    shared
    #### Implementation Details
    -
    -Docker Enterprise Edition can be configured to identify and authenticate -users via it's integrated support for LDAP. Users and groups managed -within the organization's LDAP directory service (e.g. Active -Directory) can be synchronized to UCP and DTR on a regular interval. When a -user is removed from the LDAP-backed directory, that user becomes -inactive within UCP and DTR. In addition, UCP and DTR teams can be mapped to groups -synchronized via LDAP. When a user is added/removed to/from the LDAP -group, that same user is automatically added/removed to/from the UCP and DTR -team. Instructions for configuring LDAP integration can be found at -https://docs.docker.com/datacenter/ucp/2.0/guides/configuration/integrate-with-ldap/. +
    +Docker Enterprise Edition can be configured to identify and +authenticate users via it's integrated support for LDAP. Users and +groups managed within the organization's LDAP directory service (e.g. +Active Directory) can be synchronized to UCP and DTR on a regular +interval. When a user is removed from the LDAP-backed directory, that +user becomes inactive within UCP and DTR. In addition, UCP and DTR +teams can be mapped to groups synchronized via LDAP. When a user is +added/removed to/from the LDAP group, that same user is automatically +added/removed to/from the UCP and DTR team. Additional information can +be found at the following resources: + + + +
    @@ -131,49 +137,49 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +service provider hybrid
    Universal Control Plane (UCP) complete
    -service provider system specific
    +service provider hybrid
    Authentication and Authorization Service (eNZi) complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, Docker Trusted Registry requires individual users to be authenticated in order to gain access to the system. Any permissions granted to the team(s) that which the user is a member are subsequently applied.
    -
    +
    The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, Universal Control Plane requires individual users to be authenticated in order to gain access to the system. Any permissions granted to the team(s) that which the user is a member are subsequently applied.
    -
    +
    The organization is responsible for meeting the requirements of this -control. To assist with meeting these requirements, Docker Enterprise Edition -requires individual users to be authenticated in order to gain access -to the system. Any permissions granted to the team(s) that which the -user is a member are subsequently applied. +control. To assist with meeting these requirements, Docker Enterprise +Edition requires individual users to be authenticated in order to gain +access to the system. Any permissions granted to the team(s) that +which the user is a member are subsequently applied.
    @@ -216,22 +222,22 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
    -service provider system specific
    +Docker EE system
    #### Implementation Details
    -
    -Docker Enterprise Edition integrates with LDAP for authenticating users to an -external directory service. You should configure your external -directory service for ensuring that you are protected against replay -attacks. +
    +Docker Enterprise Edition integrates with LDAP for authenticating +users to an external directory service. You should configure your +external directory service for ensuring that you are protected against +replay attacks.
    @@ -254,22 +260,22 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
    -service provider system specific
    +Docker EE system
    #### Implementation Details
    -
    -Docker Enterprise Edition integrates with LDAP for authenticating users to an -external directory service. You should configure your external -directory service for ensuring that you are protected against replay -attacks. +
    +Docker Enterprise Edition integrates with LDAP for authenticating +users to an external directory service. You should configure your +external directory service for ensuring that you are protected against +replay attacks.
    @@ -332,55 +338,58 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +Docker EE system
    Docker Enterprise Edition Engine complete
    -service provider system specific
    +Docker EE system
    Universal Control Plane (UCP) complete
    -service provider system specific
    +Docker EE system
    #### Implementation Details
    -
    +
    Docker Trusted Registry replicas reside on Universal Control Plane worker nodes. In order for UCP worker nodes to join a Universal Control Plane cluster, they must be identified and authenticated via a worker token. Additional Docker Trusted Registry replicas can only be added after a UCP administrator user has authenticated in to the UCP cluster and when mutual TLS authentication between the UCP worker and -manager nodes has been established. Reference documentation can be -found at -https://docs.docker.com/datacenter/dtr/2.1/guides/install/#/step-7-join-replicas-to-the-cluster. -
    -
    -In order for other CS Engine nodes to be able to join a cluster -managed by Universal Control Plane, they must be identified and -authenticated via either a manager or worker token. Use of the token -includes trust on first use mutual TLS. +manager nodes has been established. Additional information can be found at the following resources: + + +
    -
    +
    +In order for other Docker EE engine nodes to be able to join a +cluster managed by Universal Control Plane, they must be identified +and authenticated via either a manager or worker token. Use of the +token includes trust on first use mutual TLS. +
    +
    In order for nodes to join a Universal Control Plane cluster, they must be identified and authenticated via either a manager or worker token. Additional information can be found at the following resources:
    @@ -446,34 +455,34 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external -directory service integrated with Docker Enterprise Edition via LDAP can be -configured to prevent the reuse of user identifiers for a specified -period of time. Refer to your directory service's documentation for -configuring thisThe organization is responsible for meeting the requirements of this +directory service integrated with Docker Enterprise Edition via LDAP +can be configured to prevent the reuse of user identifiers for a +specified period of time. Refer to your directory service's +documentation for configuring this.The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external -directory service integrated with Docker Enterprise Edition via LDAP can be -configured to prevent the reuse of user identifiers for a specified -period of time. Refer to your directory service's documentation for -configuring this.The organization is responsible for meeting the requirements of this +directory service integrated with Docker Enterprise Edition via LDAP +can be configured to prevent the reuse of user identifiers for a +specified period of time. Refer to your directory service's +documentation for configuring this.The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external -directory service integrated with Docker Enterprise Edition via LDAP can be -configured to prevent the reuse of user identifiers for a specified -period of time. Refer to your directory service's documentation for -configuring this. +directory service integrated with Docker Enterprise Edition via LDAP +can be configured to prevent the reuse of user identifiers for a +specified period of time. Refer to your directory service's +documentation for configuring this.
    @@ -526,23 +535,23 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external -directory service integrated with Docker Enterprise Edition via LDAP can be -configured to uniquely identify each individual according to the -requirements of this control. Refer to your directory service's +directory service integrated with Docker Enterprise Edition via LDAP +can be configured to uniquely identify each individual according to +the requirements of this control. Refer to your directory service's documentation for configuring this.
    @@ -608,65 +617,65 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external -directory service integrated with Docker Enterprise Edition via LDAP can be -configured to establish initial authenticator content according to the -requirements of this control. Refer to your directory service's +directory service integrated with Docker Enterprise Edition via LDAP +can be configured to establish initial authenticator content according +to the requirements of this control. Refer to your directory service's documentation for configuring this.The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external -directory service integrated with Docker Enterprise Edition via LDAP can be -configured to enforce strength requirements for authenticators +directory service integrated with Docker Enterprise Edition via LDAP +can be configured to enforce strength requirements for authenticators according to the requirements of this control. Refer to your directory service's documentation for configuring this.The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external -directory service integrated with Docker Enterprise Edition via LDAP can be -configured to distribute, redistribute, and revoke authenticators -according to the requirements of this control. Refer to your directory -service's documentation for configuring this.The organization is responsible for meeting the requirements of this +directory service integrated with Docker Enterprise Edition via LDAP +can be configured to distribute, redistribute, and revoke +authenticators according to the requirements of this control. Refer to +your directory service's documentation for configuring this.The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external -directory service integrated with Docker Enterprise Edition via LDAP can be -configured to change default authenticator content according to the -requirements of this control. Refer to your directory service's +directory service integrated with Docker Enterprise Edition via LDAP +can be configured to change default authenticator content according to +the requirements of this control. Refer to your directory service's documentation for configuring this.The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external -directory service integrated with Docker Enterprise Edition via LDAP can be -configured to set minimum and maximum lifetime restrictions and reuse -conditions for authenticators according to the requirements of this -control. Refer to your directory service's documentation for +directory service integrated with Docker Enterprise Edition via LDAP +can be configured to set minimum and maximum lifetime restrictions and +reuse conditions for authenticators according to the requirements of +this control. Refer to your directory service's documentation for configuring this.The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external -directory service integrated with Docker Enterprise Edition via LDAP can be -configured to refresh authenticators at a regular cadence according to -the requirements of this control. Refer to your directory service's -documentation for configuring this.The organization is responsible for meeting the requirements of this +directory service integrated with Docker Enterprise Edition via LDAP +can be configured to refresh authenticators at a regular cadence +according to the requirements of this control. Refer to your directory +service's documentation for configuring this.The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external -directory service integrated with Docker Enterprise Edition via LDAP can be -configured to protect authenticator content from unauthorized +directory service integrated with Docker Enterprise Edition via LDAP +can be configured to protect authenticator content from unauthorized disclosure or modification according to the requirements of this control. Refer to your directory service's documentation for configuring this.The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external -directory service integrated with Docker Enterprise Edition via LDAP can be -configured to implement specific security safeguards to protect +directory service integrated with Docker Enterprise Edition via LDAP +can be configured to implement specific security safeguards to protect authentications according to the requirements of this control. Refer to your directory service's documentation for configuring this.The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external -directory service integrated with Docker Enterprise Edition via LDAP can be -configured to change authenticators for group or role accounts when -membership to those groups or roles changes according to the +directory service integrated with Docker Enterprise Edition via LDAP +can be configured to change authenticators for group or role accounts +when membership to those groups or roles changes according to the requirements of this control. Refer to your directory service's documentation for configuring this.
    @@ -699,18 +708,18 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    An external directory service integrated with Docker Enterprise Edition via LDAP can be configured to enforce minimum password complexity requirements. Refer to your directory service's @@ -763,30 +772,30 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +Docker EE system
    Universal Control Plane (UCP) complete
    -service provider system specific
    +Docker EE system
    Authentication and Authorization Service (eNZi) complete
    -service provider system specific
    +Docker EE system
    #### Implementation Details
    -
    +
    Docker Trusted Registry includes a Docker volume which holds the root key material for the DTR root CA that issues certificats. In addition Universal Control Plane contains two, built-in root certificate @@ -812,13 +821,16 @@ subsequently grants that user access to Docker Trusted Registry, it is attached to that user's Universal Control Plane profile. Bundles/keys can be revoked by an Administrator or the user themselves. The cluster's internal certificates can also be revoked and updated. -Instructions for doing so can be found at -https://docs.docker.com/datacenter/ucp/2.0/guides/configuration/#/replace-the-server-certificates. -In addition, Docker Trusted Registry's server certificates can be -replaced by following the instructions at -https://docs.docker.com/datacenter/dtr/2.1/guides/configure/. +Additional information can be found at the following resources: + + + +
    -
    +
    Universal Control Plane contains two, built-in root certificate authorities. One CA is used for signing client bundles generated by users. The other CA is used for TLS communication between UCP cluster @@ -841,11 +853,11 @@ can be found at the following resources:
    -
    +
    All users within a Docker Enterprise Edition cluster can create a client certificate bundle for authenticating in to the cluster from the Docker client tooling. When a user attempts to authenticate in to @@ -897,18 +909,18 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external directory service integrated with Docker Enterprise Edition via LDAP can be @@ -947,23 +959,24 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external -directory service integrated with Docker Enterprise Edition via LDAP can be -configured to protect authenticators as required by this control. -Refer to your directory service's documentation for configuring this. +directory service integrated with Docker Enterprise Edition via LDAP +can be configured to protect authenticators as required by this +control. Refer to your directory service's documentation for +configuring this.
    @@ -1076,29 +1089,29 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +Docker EE system
    Universal Control Plane (UCP) complete
    -service provider system specific
    +Docker EE system
    #### Implementation Details
    -
    +
    Docker Trusted Registry obscures all feedback of authentication information during the authentication process. This includes both authentication via the web UI and the CLI.
    -
    +
    Universal Control Plane obscures all feedback of authentication information during the authentication process. This includes both authentication via the web UI and the CLI. @@ -1124,30 +1137,30 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +Docker EE system
    Universal Control Plane (UCP) complete
    -service provider system specific
    +Docker EE system
    #### Implementation Details
    -
    +
    All access to Docker Trusted Registry is protected with Transport Layer Security (TLS) 1.2 with the AES-GCM cipher. This includes both SSH access to the individual UCP nodes and CLI-/web-based access to the UCP management functions with mutual TLS and HTTPS respectively.
    -
    +
    All access to Universal Control Plane is protected with Transport Layer Security (TLS) 1.2 with the AES GCM cipher. This includes both SSH access to the individual UCP nodes and CLI-/web-based access to @@ -1174,29 +1187,29 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +Docker EE system
    Universal Control Plane (UCP) complete
    -service provider system specific
    +Docker EE system
    #### Implementation Details
    -
    +
    Users managed by Docker Trusted Registry can be grouped per the requirements of the organization and as defined by this control. This can include groupings for non-organizational users.
    -
    +
    Users managed by Universal Control Plane can be grouped per the requirements of the organization and as defined by this control. This can include groupings for non-organizational users. @@ -1232,22 +1245,22 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    -An external directory service integrated with Docker Enterprise Edition via -LDAP can be configured to meet the FICAM requirements as indicated by -this control. Refer to your directory service's documentation for -configuring this. +
    +An external directory service integrated with Docker Enterprise +Edition via LDAP can be configured to meet the FICAM requirements as +indicated by this control. Refer to your directory service's +documentation for configuring this.
    @@ -1270,22 +1283,22 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external -directory service integrated with Docker Enterprise Edition via LDAP can be -configured to meet the FICAM requirements as indicated by this +directory service integrated with Docker Enterprise Edition via LDAP +can be configured to meet the FICAM requirements as indicated by this control. Refer to your directory service's documentation for configuring this.
    @@ -1310,22 +1323,22 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external -directory service integrated with Docker Enterprise Edition via LDAP can be -configured to meet the FICAM requirements as indicated by this +directory service integrated with Docker Enterprise Edition via LDAP +can be configured to meet the FICAM requirements as indicated by this control. Refer to your directory service's documentation for configuring this.
    diff --git a/docs/compliance/reference/800-53/ra.md b/docs/compliance/reference/800-53/ra.md index 8ab77bc..f8634f9 100644 --- a/docs/compliance/reference/800-53/ra.md +++ b/docs/compliance/reference/800-53/ra.md @@ -102,31 +102,32 @@ Responsible role(s) - Docker system Docker Security Scanning (DSS) complete
    -service provider system specific
    +service provider hybrid
    Docker Trusted Registry (DTR) complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    -To assist the orgnization in meeting the requirements of this control, the Docker Security Scanning (DSS) component of Docker Trusted Registry -(DTR) that is included with the Docker Enterprise Edition Advanced -tier can be used to scan Docker images for vulnerabilities against -known vulnerability databases. Scans can be triggered either manually -or when Docker images are pushed to DTR. +
    +To assist the orgnization in meeting the requirements of this +control, the Docker Security Scanning (DSS) component of Docker +Trusted Registry (DTR) that is included with the Docker Enterprise +Edition Advanced tier can be used to scan Docker images for +vulnerabilities against known vulnerability databases. Scans can be +triggered either manually or when Docker images are pushed to DTR.
    -
    +
    The Docker Security Scanning tool allows for the scanning of Docker images in Docker Trusted Registry against the Common Vulnerabilities and Exposures (CVE) dictionary. @@ -152,29 +153,30 @@ Responsible role(s) - Docker system Docker Security Scanning (DSS) complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    To assist the orgnization in meeting the requirements of this control, the Docker Security Scanning component of Docker Trusted Registry (DTR) that is included with the Docker Enterprise Edition Advanced tier compiles a bill of materials (BOM) for each Docker image that it scans. DSS is also synchronized to an aggregate listing of known vulnerabilities that is compiled from both the MITRE and NVD CVE -databases. Additional information can be found at the following resources: +databases. Additional information can be found at the following +resources: @@ -200,31 +202,31 @@ Responsible role(s) - Docker system Docker Security Scanning (DSS) complete
    -service provider system specific
    +service provider hybrid
    Docker Trusted Registry (DTR) complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    To assist the orgnization in meeting the requirements of this control, the Docker Security Scanning component of Docker Trusted Registry (DTR) that is included with the Docker Enterprise Edition Advanced tier identifies vulnerabilities in a Docker image and marks them against predefined criticality levels; critical major and minor.
    -
    +
    The Docker Security Scanning tool allows for the scanning of Docker images in Docker Trusted Registry against the Common Vulnerabilities and Exposures (CVE).' dictionary @@ -260,18 +262,18 @@ Responsible role(s) - Docker system Docker Security Scanning (DSS) complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    Only the appropriate users that the organization has provided Docker Trusted Registry access to are able to view and interpret vulnerability scan results. @@ -297,18 +299,18 @@ Responsible role(s) - Docker system Docker Security Scanning (DSS) complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    For each Docker image pushed to Docker Trusted Registry at a given time, Docker Security Scaninng retains a list of vulnerabilities detected. The DTR API can be queried to retrieve the vulnerability @@ -325,7 +327,35 @@ The organization reviews historic audit logs to determine if a vulnerability ide #### Control Information -Responsible role(s) - Organization +Responsible role(s) - Docker system + + + + + + + + + + + + +
    ComponentImplementation Status(es)Control Origin(s)
    Docker Security Scanning (DSS)complete
    service provider hybrid
    + +#### Implementation Details + + + +
    +
    +Docker Security Scanning maintains a historical bill-of-materials +(BOM) for all Docker images that are scanned. Results of previous +vulnerability scans can be reviewed and audited per the requirements +of this control. +
    +
    ### RA-5 (10) Correlate Scanning Information diff --git a/docs/compliance/reference/800-53/sa.md b/docs/compliance/reference/800-53/sa.md index c878bd2..2e3d101 100644 --- a/docs/compliance/reference/800-53/sa.md +++ b/docs/compliance/reference/800-53/sa.md @@ -324,30 +324,30 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +service provider hybrid
    Docker Enterprise Edition Engine complete
    -service provider system specific
    +service provider hybrid
    Universal Control Plane (UCP) complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    +
    Docker Content Trust gives you the ability to verify both the integrity and the publisher of all the data received from a Docker Trusted Registry over any channel. It allows operations with a remote @@ -358,7 +358,7 @@ client-side verification of the integrity and publisher of specific image tags. Docker Trusted Registry includes an integrated imaging signing service.
    -
    +
    Docker Content Trust gives you the ability to verify both the integrity and the publisher of all the data received from a Docker Trusted Registry over any channel. It allows operations with a remote @@ -367,9 +367,8 @@ tags. It provides for the ability to use digital signatures for data sent to and receive from remote DTR instances. These signatures allow client-side verification of the integrity and publisher of specific image tags. -
    -
    +
    The organization is responsible for meeting the requirements of this control. To assist with these requirements, Docker Content Trust gives you the ability to verify both the integrity and the publisher of all @@ -384,7 +383,7 @@ Additional information can be found at the following resources:
    diff --git a/docs/compliance/reference/800-53/sc.md b/docs/compliance/reference/800-53/sc.md index 57076fc..f301dbe 100644 --- a/docs/compliance/reference/800-53/sc.md +++ b/docs/compliance/reference/800-53/sc.md @@ -47,24 +47,24 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +Docker EE system
    Universal Control Plane (UCP) complete
    -service provider system specific
    +Docker EE system
    #### Implementation Details
    -
    +
    Docker Trusted Registry is made up of a number of backend services that provide for both user functionality (including user interface services) and system management functionality. Each of these services @@ -73,12 +73,12 @@ found at the following resources:
    -
    +
    Universal Control Plane is made up of a number of backend services that provide for both user functionality (including user interface services) and system management functionality. Each of these services @@ -87,7 +87,7 @@ found at the following resources: @@ -443,18 +443,18 @@ Responsible role(s) - Docker system Docker Enterprise Edition Engine complete
    -service provider system specific
    +Docker EE system
    #### Implementation Details
    -
    +
    Docker Enterprise Edition is designed to run application containers whose content can be completely isolated/segregated from other application containers within the same node/cluster. This is @@ -621,24 +621,23 @@ Responsible role(s) - Docker system Docker Enterprise Edition Engine complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    -Docker Enterprise Edition can be installed on the following operating systems: -CentOS 7.1+, Red Hat Enterprise Linux 7.0+, Ubuntu 14.04 LTS+, and -SUSE Linux Enterprise 12+. In order to meet the requirements of this -control, reference the chosen operating system's documentation to -ensure it is configured in FIPS mode. - +
    +Docker Enterprise Edition can be installed on the following operating +systems: CentOS 7.1+, Red Hat Enterprise Linux 7.0+, Ubuntu 14.04 +LTS+, SUSE Linux Enterprise 12+ and Windows Server 2016+. In order to +meet the requirements of this control, reference the chosen operating +system's documentation to ensure it is configured in FIPS mode.
    @@ -671,24 +670,23 @@ Responsible role(s) - Docker system Docker Enterprise Edition Engine complete
    -service provider system specific
    +service provider hybrid
    #### Implementation Details
    -
    -Docker Enterprise Edition can be installed on the following operating systems: -CentOS 7.1+, Red Hat Enterprise Linux 7.0+, Ubuntu 14.04 LTS+, and -SUSE Linux Enterprise 12+. In order to meet the requirements of this -control, reference the chosen operating system's documentation to -ensure it is configured in FIPS mode. - +
    +Docker Enterprise Edition can be installed on the following operating +systems: CentOS 7.1+, Red Hat Enterprise Linux 7.0+, Ubuntu 14.04 +LTS+, SUSE Linux Enterprise 12+ and Windows Server 2016+. In order to +meet the requirements of this control, reference the chosen operating +system's documentation to ensure it is configured in FIPS mode.
    @@ -908,30 +906,30 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +Docker EE system
    Docker Enterprise Edition Engine complete
    -service provider system specific
    +Docker EE system
    Universal Control Plane (UCP) complete
    -service provider system specific
    +Docker EE system
    #### Implementation Details
    -
    +
    All remote access sessions to Docker Trusted Registry are protected with Transport Layer Security (TLS) 1.2 with the AES GCM cipher. This is included at both the HTTPS application layer for access to the DTR @@ -939,14 +937,13 @@ user interface and for command-line based connections to the registry. In addition to this, all communication to DTR is enforced by way of two-way mutual TLS authentication.
    -
    -All remote access sessions to Docker Enterprise Edition are protected with -Transport Layer Security (TLS) 1.2 with the AES GCM cipher. In -addition to this, all communication to and between Docker Enterprise Editions -is enforced by way of two-way mutual TLS authentication. - +
    +All remote access sessions to Docker Enterprise Edition are protected +with Transport Layer Security (TLS) 1.2 with the AES GCM cipher. In +addition to this, all communication to and between Docker Enterprise +Editions is enforced by way of two-way mutual TLS authentication.
    -
    +
    All remote access sessions to Universal Control Plane are protected with Transport Layer Security (TLS) 1.2 with the AES GCM cipher. This is included at both the HTTPS application layer for access to the UCP @@ -975,18 +972,18 @@ Responsible role(s) - Docker system Authentication and Authorization Service (eNZi) complete
    -service provider system specific
    +Docker EE system
    #### Implementation Details
    -
    +
    Docker Enterprise Edition invalidates session identifiers upon user logout per the requirements of this control.
    @@ -1071,18 +1068,18 @@ Responsible role(s) - Docker system Docker Enterprise Edition Engine complete
    -service provider system specific
    +Docker EE system
    #### Implementation Details
    -
    +
    All remote access sessions to Docker Enterprise Edition are protected with Transport Layer Security (TLS) 1.2 with the AES GCM cipher. In addition to this, all communication to/from and between Docker @@ -1090,7 +1087,6 @@ Enterprise Edition nodes is enforced by way of two-way mutual TLS authentication. All Swarm Mode manager nodes in a Docker Enterprise Edition cluster store state metadata and user secrets encrypted at rest using the AES GCM cipher. -
    @@ -1113,30 +1109,30 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +Docker EE system
    Docker Enterprise Edition Engine complete
    -service provider system specific
    +Docker EE system
    Universal Control Plane (UCP) complete
    -service provider system specific
    +Docker EE system
    #### Implementation Details
    -
    +
    All remote access sessions to Docker Trusted Registry are protected with Transport Layer Security (TLS) 1.2 with the AES GCM cipher. This is included at both the HTTPS application layer for access to the DTR @@ -1144,14 +1140,13 @@ user interface and for command-line based connections to the registry. In addition to this, all communication to DTR is enforced by way of two-way mutual TLS authentication.
    -
    -All remote access sessions to Docker Enterprise Edition are protected with -Transport Layer Security (TLS) 1.2 with the AES GCM cipher. In -addition to this, all communication to and between Docker Enterprise Editions -is enforced by way of two-way mutual TLS authentication. - +
    +All remote access sessions to Docker Enterprise Edition are protected +with Transport Layer Security (TLS) 1.2 with the AES GCM cipher. In +addition to this, all communication to and between Docker Enterprise +Editions is enforced by way of two-way mutual TLS authentication.
    -
    +
    All remote access sessions to Universal Control Plane are protected with Transport Layer Security (TLS) 1.2 with the AES GCM cipher. This is included at both the HTTPS application layer for access to the UCP diff --git a/docs/compliance/reference/800-53/si.md b/docs/compliance/reference/800-53/si.md index 61bdd1d..81463dc 100644 --- a/docs/compliance/reference/800-53/si.md +++ b/docs/compliance/reference/800-53/si.md @@ -148,24 +148,23 @@ Responsible role(s) - Docker system Docker Enterprise Edition Engine complete
    -service provider system specific
    +Docker EE system
    #### Implementation Details
    -
    +
    Docker Enterprise Edition packages for supported underlying operating systems can only be obtained from Docker, Inc. The Docker EE repositories from which Docker EE packages are obtained are protected with official GPG keys. Each Docker package is also validated with a signature definition. -
    @@ -849,43 +848,42 @@ Responsible role(s) - Docker system Docker Trusted Registry (DTR) complete
    -service provider system specific
    +Docker EE system
    Docker Enterprise Edition Engine complete
    -service provider system specific
    +Docker EE system
    Universal Control Plane (UCP) complete
    -service provider system specific
    +Docker EE system
    #### Implementation Details
    -
    +
    All error messages generated via the configured logging mechanism of Docker Trusted Registry are displayed such that they meet the requirements of this control. Only users that are authorized the appropriate level of access can view these error messages.
    -
    +
    All error messages generated via the logging mechanisms of the Docker Enterprise Edition engine are displayed such that they meet the requirements of this control. Only users that are authorized the appropriate level of access can view these error messages. -
    -
    +
    All error messages generated via the configured logging mechanism of Universal Control Plane are displayed such that they meet the requirements of this control. Only users that are authorized the @@ -1010,25 +1008,24 @@ Responsible role(s) - Docker system Docker Enterprise Edition Engine complete
    -configured by customer
    +service provider hybrid
    #### Implementation Details
    -
    -Docker Enterprise Edition can be installed on the following operating systems: -CentOS 7.1+, Red Hat Enterprise Linux 7.0+, Ubuntu 14.04 LTS+, and -SUSE Linux Enterprise 12+. In order to meet the requirements of this -control, reference the chosen operating system's security -documentation for information regarding the protection of memory from -unauthorized code execution. - +
    +Docker Enterprise Edition can be installed on the following operating +systems: CentOS 7.1+, Red Hat Enterprise Linux 7.0+, Ubuntu 14.04 +LTS+, SUSE Linux Enterprise 12+ and Windows Server 2016+. In order to +meet the requirements of this control, reference the chosen operating +system's security documentation for information regarding the +protection of memory from unauthorized code execution.
    diff --git a/opencontrol.yaml b/opencontrol.yaml index 780cf80..bdc9744 100644 --- a/opencontrol.yaml +++ b/opencontrol.yaml @@ -1,15 +1,16 @@ schema_version: "1.0.0" -name: Docker Datacenter +name: Docker Enterprise Edition metadata: description: | - Docker Enterprise Edition is an integrated solution for developers and IT + 'Docker Enterprise Edition (EE) is an integrated solution for developers and IT operations to collaborate as part of the enterprise software supply chain. It is an enterprise-grade secure container orchestration and application - management platform built and maintained by Docker, Inc. Docker Enterprise - Edition (Advanced) is made up of five core components: Docker Enterprise + management platform built and maintained by Docker, Inc. The compliance + documentation defined by this system has been mapped to five components of + the Docker Enterprise Edition stack as follows: Docker Enterprise Edition Engine, Docker Trusted Registry (DTR), Universal Control Plane (UCP), integrated authentication and authorization service (eNZi) and Docker - Security Scanning (DSS). + Security Scanning (DSS).' maintainers: - andrew.weiss@docker.com components: diff --git a/opencontrol/components/DSS/component.yaml b/opencontrol/components/DSS/component.yaml index aa4a836..2b89939 100644 --- a/opencontrol/components/DSS/component.yaml +++ b/opencontrol/components/DSS/component.yaml @@ -3,7 +3,7 @@ schema_version: 3.1.0 name: Docker Security Scanning (DSS) references: - name: DSS Documentation - path: https://docs.docker.com/datacenter/dtr/2.2/guides/user/manage-images/scan-images-for-vulnerabilities/ + path: https://docs.docker.com/datacenter/dtr/2.3/guides/admin/configure/set-up-vulnerability-scans/ type: URL satisfies: - control_key: RA-5 (1) @@ -11,14 +11,15 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | - 'To assist the orgnization in meeting the requirements of this control, the Docker Security Scanning (DSS) component of Docker Trusted Registry - (DTR) that is included with the Docker Enterprise Edition Advanced - tier can be used to scan Docker images for vulnerabilities against - known vulnerability databases. Scans can be triggered either manually - or when Docker images are pushed to DTR.' + 'To assist the orgnization in meeting the requirements of this + control, the Docker Security Scanning (DSS) component of Docker + Trusted Registry (DTR) that is included with the Docker Enterprise + Edition Advanced tier can be used to scan Docker images for + vulnerabilities against known vulnerability databases. Scans can be + triggered either manually or when Docker images are pushed to DTR.' standard_key: NIST-800-53 - control_key: RA-5 (2) @@ -26,7 +27,7 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | 'To assist the orgnization in meeting the requirements of this @@ -35,10 +36,15 @@ satisfies: Advanced tier compiles a bill of materials (BOM) for each Docker image that it scans. DSS is also synchronized to an aggregate listing of known vulnerabilities that is compiled from both the MITRE and NVD CVE - databases. Additional information can be found at the following resources: + databases. Additional information can be found at the following + resources: - - https://docs.docker.com/datacenter/dtr/2.2/guides/admin/configure/set-up-vulnerability-scans/ + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/configure/set-up-vulnerability-scans/ - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Image_Scanning' + parameters: + - key: "RA-5(2)" + text: | + "FedRAMP requirement: prior to a new scan" standard_key: NIST-800-53 - control_key: RA-5 (3) @@ -46,7 +52,7 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | 'To assist the orgnization in meeting the requirements of this @@ -61,12 +67,19 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | 'Only the appropriate users that the organization has provided Docker Trusted Registry access to are able to view and interpret vulnerability scan results.' + parameters: + - key: "RA-5(5)-1" + text: | + "FedRAMP requirement: operating systems, databases, web applications" + - key: "RA-5(5)-2" + text: | + "FedRAMP requirement: all scans" standard_key: NIST-800-53 - control_key: RA-5 (6) @@ -74,7 +87,7 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | 'For each Docker image pushed to Docker Trusted Registry at a given @@ -83,3 +96,17 @@ satisfies: scan results over a period of time for a given Docker image such that the results can be compared per the requirements of this control.' standard_key: NIST-800-53 + + - control_key: RA-5 (8) + covered_by: [] + implementation_statuses: + - complete + control_origins: + - service provider hybrid + narrative: + - text: | + 'Docker Security Scanning maintains a historical bill-of-materials + (BOM) for all Docker images that are scanned. Results of previous + vulnerability scans can be reviewed and audited per the requirements + of this control.' + standard_key: NIST-800-53 diff --git a/opencontrol/components/DTR/component.yaml b/opencontrol/components/DTR/component.yaml index 16873ad..4713227 100644 --- a/opencontrol/components/DTR/component.yaml +++ b/opencontrol/components/DTR/component.yaml @@ -3,27 +3,31 @@ schema_version: 3.1.0 name: Docker Trusted Registry (DTR) references: - name: Docker Trusted Registry Documentation - path: https://docs.docker.com/docker-trusted-registry/ + path: https://docs.docker.com/datacenter/dtr/2.3/guides/ type: URL satisfies: - control_key: AC-2 (1) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - text: | 'To assist the organization in meeting the requirements of this control, supporting documentation for managing users and teams can found at the following resources: - - https://docs.docker.com/datacenter/dtr/2.2/guides/admin/manage-users/create-and-manage-users/ - - https://docs.docker.com/datacenter/dtr/2.2/guides/admin/manage-users/create-and-manage-teams/' + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/manage-users/create-and-manage-users/ + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/manage-users/create-and-manage-teams/' standard_key: NIST-800-53 - control_key: AC-2 (7) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - key: a text: | @@ -31,21 +35,30 @@ satisfies: control, supporting documentation can be found at the following resources: - - https://docs.docker.com/datacenter/dtr/2.2/guides/admin/manage-users/permission-levels/' + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/manage-users/permission-levels/' standard_key: NIST-800-53 - control_key: AC-2 (12) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - text: | 'To assist the organization in meeting the requirements of this control, supporting documentation can be found at the following resources: - - https://docs.docker.com/datacenter/dtr/2.2/guides/admin/monitor-and-troubleshoot/ - - https://docs.docker.com/datacenter/dtr/2.2/guides/admin/monitor-and-troubleshoot/troubleshoot-with-logs/' + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/monitor-and-troubleshoot/ + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/monitor-and-troubleshoot/troubleshoot-with-logs/' + parameters: + - key: "AC-2(12)(a)" + text: | + "customer-defined atypical use" + - key: "AC-2(12)(b)" + text: | + "at a minimum, the ISSO and/or similar role within the organization" standard_key: NIST-800-53 - control_key: AC-3 @@ -53,7 +66,7 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | 'One can control which users and teams can create and manipulate @@ -62,24 +75,30 @@ satisfies: fine-grained access control. Supporting documentation can be found at the following resources: - - https://docs.docker.com/datacenter/dtr/2.2/guides/admin/manage-users/ - - https://docs.docker.com/datacenter/dtr/2.2/guides/admin/manage-users/permission-levels/ + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/manage-users/ + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/manage-users/permission-levels/ - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Securing_Docker_Datacenter_and_Security_Best_Practices#Organizations_.E2.80.94_RBAC' standard_key: NIST-800-53 - control_key: AC-4 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'Supporting documentation to configure Docker Trusted Registry to meet the requirements of this control can be found at the following resources: - - https://docs.docker.com/datacenter/dtr/2.2/guides/architecture/ - - https://docs.docker.com/datacenter/dtr/2.2/guides/admin/install/system-requirements/#/ports-used + - https://docs.docker.com/datacenter/dtr/2.3/guides/architecture/ + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/install/system-requirements/#/ports-used - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Docker_Datacenter_Best_Practices_and_Design_Considerations#Infrastructure_Considerations' + parameters: + - key: "AC-4" + text: | + "customer-defined information flow control policies" standard_key: NIST-800-53 - control_key: AC-4 (8) @@ -87,32 +106,50 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific - - configured by customer + - shared narrative: - text: | 'Supporting documentation to configure Docker Trusted Registry to meet the requirements of this control can be found at the following resources: - - https://docs.docker.com/datacenter/dtr/2.2/guides/architecture/ - - https://docs.docker.com/datacenter/dtr/2.2/guides/admin/install/system-requirements/#/ports-used + - https://docs.docker.com/datacenter/dtr/2.3/guides/architecture/ + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/install/system-requirements/#/ports-used - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Docker_Datacenter_Best_Practices_and_Design_Considerations#Infrastructure_Considerations' + parameters: + - key: "AC-4(8)(a)" + text: | + "FedRAMP assignment: security policy filters inherent in boundary + protection devices such as gateways, routers, guards, encrypted + tunnels, firewalls" + - key: "AC-4(8)(b)" + text: | + "FedRAMP assignment: information containing PII or organization + sensitive information types" standard_key: NIST-800-53 - control_key: AC-4 (21) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - text: | 'Supporting documentation to configure Docker Trusted Registry to meet the requirements of this control can be found at the following resources: - - https://docs.docker.com/datacenter/dtr/2.2/guides/architecture/ - - https://docs.docker.com/datacenter/dtr/2.2/guides/admin/install/system-requirements/#/ports-used + - https://docs.docker.com/datacenter/dtr/2.3/guides/architecture/ + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/install/system-requirements/#/ports-used - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Docker_Datacenter_Best_Practices_and_Design_Considerations#Infrastructure_Considerations' + parameters: + - key: "AC-4(21)-1" + text: | + "customer-defined mechanisms and/or techniques" + - key: "AC-4(21)-2" + text: | + "customer-defined required separation by types of information" standard_key: NIST-800-53 - control_key: AC-5 @@ -120,7 +157,7 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | 'To assist the organization in meeting the requirements of this @@ -130,15 +167,84 @@ satisfies: enforce fine-grained access control. Supporting documentation can be found at the following resources: - - https://docs.docker.com/datacenter/dtr/2.2/guides/admin/manage-users/ - - https://docs.docker.com/datacenter/dtr/2.2/guides/admin/manage-users/permission-levels/ + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/manage-users/ + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/manage-users/permission-levels/ - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Securing_Docker_Datacenter_and_Security_Best_Practices#Organizations_.E2.80.94_RBAC' + parameters: + - key: "AC-5(a)" + text: | + "customer-defined duties of individuals" + standard_key: NIST-800-53 + + - control_key: AC-6 (10) + covered_by: [] + implementation_statuses: + - complete + control_origins: + - Docker EE system + narrative: + - text: | + 'One can control which users and teams can create and manipulate + Docker Trusted Registry resources and prevent non-privileged users + from executing privileged functions per the requirements of this + control. By default, no one can make changes to the cluster. + Permissions can be granted and managed to enforce fine-grained access + control. Supporting documentation for the configuration of this + functionality can be found at the following resources: + + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/manage-users/ + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/manage-users/permission-levels/' + standard_key: NIST-800-53 + + - control_key: AC-14 + covered_by: [] + implementation_statuses: + - complete + control_origins: + - Docker EE system + narrative: + - text: | + 'To help the organization meet the requirements of this control, a + review of actions allowed by unauthenticated users can be performed + within Docker Trusted Registry.' + parameters: + - key: "AC-14(a)" + text: | + "customer-defined user actions" + standard_key: NIST-800-53 + + - control_key: AC-17 + covered_by: [] + implementation_statuses: + - complete + control_origins: + - service provider hybrid + narrative: + - text: | + 'To help the organization meet the requirements of this control, + Docker Trusted Registry can be configured to allow/prohibit remote + access.' + standard_key: NIST-800-53 + + - control_key: AC-17 (1) + covered_by: [] + implementation_statuses: + - complete + control_origins: + - Docker EE system + narrative: + - text: | + 'Docker Trusted Registry logs and controls all local and remote + access events. In addition, auditing can be configured on the + underlying operating system to meet this control.' standard_key: NIST-800-53 - control_key: AC-17 (2) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'All remote access sessions to Docker Trusted Registry are protected @@ -151,20 +257,29 @@ satisfies: - control_key: AC-17 (3) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - text: | 'A combination of managed load balancers, firewalls and access control lists, and virtual networking resources can be used to ensure traffic destined for Docker Trusted Registry replicas is routed through managed network access control points.' + parameters: + - key: "AC-17(3)" + text: | + "customer-defined" standard_key: NIST-800-53 - control_key: AC-17 (9) covered_by: [] - implementation_status: complete - control_origin: "configured by customer" + implementation_statuses: + - complete + control_origins: + - service provider hybrid + - configured by customer narrative: - text: | 'Built-in firewall technology in Docker Trusted Registry's underlying @@ -172,27 +287,101 @@ satisfies: connections to the host. In addition, UCP slave nodes running Docker Trusted Registry replicas can be paused or drained, which subsequently stops sessions to the DTR replica.' + parameters: + - key: "AC-17(9)" + text: | + "FedRAMP requirement: no greater than fifteen minutes" + standard_key: NIST-800-53 + + - control_key: AC-20 + covered_by: [] + implementation_statuses: + - complete + control_origins: + - service provider hybrid + narrative: + - text: | + 'To help the organization meet the requirements of this control, one + can control which external systems can access Docker Trusted Registry.' + standard_key: NIST-800-53 + + - control_key: AC-20 (1) + covered_by: [] + implementation_statuses: + - complete + control_origins: + - service provider hybrid + narrative: + - text: | + 'To help the organization meet the requirements of this control, one + can control which external systems can access Docker Trusted Registry.' + standard_key: NIST-800-53 + + - control_key: AC-21 + covered_by: [] + implementation_statuses: + - complete + control_origins: + - service provider hybrid + - shared + narrative: + - text: | + 'To help the organization meet the requirements of this control, one + can validate the assigned roles and access levels within Docker + Trusted Registry to control information sharing.' + parameters: + - key: "AC-21(a)" + text: | + "customer-defined information sharing circumstances" + - key: "AC-21(b)" + text: | + "customer-defined automated mechanisms or manual processes" standard_key: NIST-800-53 - control_key: AU-2 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider corporate + - Docker EE system + - service provider hybrid + - shared narrative: - key: a text: | 'All of the event types indicated by this control are logged by a combination of the backend ucp-controller service within Universal Control Plane and the backend services that make up Docker Trusted - Registry. Additional documentation can be found at the following resource: - - - https://docs.docker.com/datacenter/dtr/2.2/guides/admin/monitor-and-troubleshoot/' + Registry. Additional documentation can be found at the following + resource: + + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/monitor-and-troubleshoot/ + - https://docs.docker.com/datacenter/dtr/2.3/guides/architecture/#dtr-internal-components + - https://docs.docker.com/datacenter/ucp/2.2/guides/architecture/#ucp-internal-components' + parameters: + - key: "AU-2(a)" + text: | + "FedRAMP requirement: successful and unsuccessful account logon + events, account management events, object access, policy change, + privileged functions, process tracking, and system events. For Web + applications: all administrator activity, authentication checks, + authorization checks, data deletions, data access, data changes, and + permission changes" + - key: "AU-2(d)" + text: | + "FedRAMP requirement: organization-defined subset of the auditable + events defined in AU-2-a. to be audited continually for each + identified event" standard_key: NIST-800-53 - control_key: AU-3 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system + - shared narrative: - text: | 'Docker Trusted Registry generates all of the audit record information @@ -207,8 +396,11 @@ satisfies: - control_key: AU-3 (1) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system + - shared narrative: - text: | 'Universal Control Plane can be configured to log data to a remote @@ -218,7 +410,15 @@ satisfies: defined by this control from the logged audit records. Additional information can be found at the following resource: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-3(1)" + text: | + "FedRAMP requirement: session, connection, trasaction, or activity + duration; for client-server transactions, the number of bytes received + and bytes sent, additional informational messages to diagnose or + identify the event, characteristics that describe or identify the + object or resource being acted upon" standard_key: NIST-800-53 - control_key: AU-3 (2) @@ -226,7 +426,8 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | 'Universal Control Plane can be configured to log data to a remote @@ -236,13 +437,20 @@ satisfies: defined by this control from the logged audit records. Additional information can be found at the following resource: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-3(2)" + text: | + "all network, data storage, and computing devices" standard_key: NIST-800-53 - control_key: AU-5 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system + - shared narrative: - text: | 'Universal Control Plane can be configured to log data to a remote @@ -252,7 +460,15 @@ satisfies: the event of log processing failures. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-5(a)" + text: | + "customer-defined personnel or roles" + - key: "AU-5(b)" + text: | + "FedRAMP requirement: low-impact: overwrite oldest audit records; + moderate-impact: shut down" standard_key: NIST-800-53 - control_key: AU-5 (1) @@ -260,7 +476,8 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | 'Universal Control Plane can be configured to log data to a remote @@ -270,7 +487,17 @@ satisfies: when the allocated log storage is full. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-5(1)-1" + text: | + "appropriate service team personnel, customer-defined personnel" + - key: "AU-5(1)-2" + text: | + "24 hours, customer-defined time period" + - key: "AU-5(1)-3" + text: | + "a service team defined percentage, customer-defined percentage" standard_key: NIST-800-53 - control_key: AU-5 (2) @@ -278,7 +505,8 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | 'Universal Control Plane can be configured to log data to a remote @@ -288,7 +516,18 @@ satisfies: when audit log failures occur. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-5(2)-1" + text: | + "real-time" + - key: "AU-5(2)-2" + text: | + "appropriate service team personnel" + - key: "AU-5(2)-3" + text: | + "events defined by each service team, audit failure events requiring + real-time alerts, as defined by organization audit policy" standard_key: NIST-800-53 - control_key: AU-6 (4) @@ -296,7 +535,8 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | 'Universal Control Plane can be configured to log data to a remote @@ -306,13 +546,16 @@ satisfies: Docker EE audit records. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' standard_key: NIST-800-53 - control_key: AU-7 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuess: + - complete + control_origins: + - Docker EE system + - shared narrative: - key: a text: | @@ -323,7 +566,7 @@ satisfies: reduction and report generation requirements of this control. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' - key: b text: | 'The underlying operating system chosen to support Docker Trusted @@ -333,8 +576,11 @@ satisfies: - control_key: AU-7 (1) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system + - shared narrative: - text: | 'Universal Control Plane can be configured to log data to a remote @@ -344,13 +590,19 @@ satisfies: organization-defined audit fields. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-7(1)" + text: | + "customer-defined audit fields within audit records" standard_key: NIST-800-53 - control_key: AU-8 covered_by: [] - implementation_status: complete - control_origin: "configured by customer" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - key: a text: | @@ -362,12 +614,18 @@ satisfies: should be configured such that its system clock uses Coordinated Universal Time (UTC) as indicated by this control. Refer to the operating system's instructions for doing so.' + parameters: + - key: "AU-8(b)" + text: | + "millisecond precision" standard_key: NIST-800-53 - control_key: AU-8 (1) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - key: a text: | @@ -385,18 +643,31 @@ satisfies: time period. This can be accomplished by utilizing the Network Time Protocol (NTP). Refer to the operating system's instructions for doing so.' + parameters: + - key: "AU-8(1)(a)-1" + text: | + "FedRAMP requirement: at least hourly" + - key: "AU-8(1)(a)-2" + text: | + "FedRAMP requirement: authoritative time source: + http://tf.nist.gov/tf-cgi/servers.cgi" + - key: "AU-8(1)(b)" + text: | + "customer-defined" standard_key: NIST-800-53 - control_key: AU-9 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - text: | 'By default, Docker Trusted Registry is configured to use the underlying logging capabilities of Docker Enterprise Edition. As such, on the underlying Linux operating system, only root and sudo users and - users that have been added to the 'docker' group have the ability to + users that have been added to the ''docker'' group have the ability to access the logs generated by UCP backend service containers. In addition, only UCP Administrator users can change the logging endpoint of the system should it be decided that logs be sent to a remote @@ -407,19 +678,23 @@ satisfies: - control_key: AU-9 (2) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - text: | 'Docker Trusted Registry resides as an Application on a Universal - Control Plane cluster, acan be configured to send logs to a remote - logging stack. Additional information can be found at the following - resources: - - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/ + Control Plane cluster, and can be configured to send logs to a remote + logging stack. The logging stack can subsequently be configured to + back up audit records per the schedule defined by this control. + Additional information can be found at the following resources: - The logging stack can subsequently be configured to back up audit - records per the schedule defined by this control.' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-9(2)" + text: | + "FedRAMP requirement: at least weekly" standard_key: NIST-800-53 - control_key: AU-9 (3) @@ -427,63 +702,76 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | 'Docker Trusted Registry resides as an Application on a Universal - Control Plane cluster, acan be configured to send logs to a remote - logging stack. Additional information can be found at the following - resources: - - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/ + Control Plane cluster, and can be configured to send logs to a remote + logging stack. The logging stack can subsequently be configured to + meet the encryption mechanisms required by this control. Additional + information can be found at the following resources: - The logging stack can subsequently be configured to meet the - encryption mechanisms required by this control.' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' standard_key: NIST-800-53 - control_key: AU-11 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider corporate + - Docker EE system + - service provider hybrid + - shared narrative: - text: | 'The organization will be responsible for meeting the requirements of this control. To assist with these requirements, Docker Trusted Registry resides as an Application on a Universal Control Plane cluster, and as such, can be configured to send logs to a remote - logging stack. Additional information can be found at the following - resources: - - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/ + logging stack. This logging stack can subsequently be configured to + retain logs for the duration required by this control. Additional + information can be found at the following resources: - This logging stack can subsequently be configured to retain logs for - the duration required by this control.' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-11" + text: | + "FedRAMP requirement: at least one year" standard_key: NIST-800-53 - control_key: AU-12 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system + - shared narrative: - key: a text: | 'All of the event types indicated by AU-2 a. are logged by a combination of the backend services within Universal Control Plane and - Docker Trusted Registry. Additional information can be found at the - following resources: + Docker Trusted Registry. The underlying Linux operating system + supporting DTR can be configured to audit Docker-specific events with + the auditd daemon. Refer to the specific Linux distribution in use for + instructions on configuring this service. Additional information can + be found at the following resources: - - https://docs.docker.com/datacenter/dtr/2.1/guides/monitor-troubleshoot/ - - The underlying Linux operating system supporting DTR can be configured - to audit Docker-specific events with the auditd daemon. Refer to the - specific Linux distribution in use for instructions on configuring - this service.' + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/monitor-and-troubleshoot/' - key: b text: | 'Using auditd on the Linux operating system supporting DTR, the organization can configure audit rules to select which Docker-specific events are to be audited. Refer to the specific Linux distribution in use for instructions on configuring this service.' + parameters: + - key: "AU-12(a)" + text: | + "FedRAMP requirement: at least every 3 years" + - key: "AU-12(b)" + text: | + "customer-defined personnel or roles" standard_key: NIST-800-53 - control_key: AU-12 (1) @@ -491,19 +779,25 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | 'Docker Trusted Registry resides as an Application on a Universal Control Plane cluster, and as such, can be configured to send logs to - a remote logging stack. Additional information can be found at the - following resources: - - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/ + a remote logging stack. This logging stack can subsequently be used to + compile audit records in to a system-wide audit trail that is + time-correlated per the requirements of this control. Additional + information can be found at the following resources: - This logging stack can subsequently be used to compile audit records - in to a system-wide audit trail that is time-correlated per the - requirements of this control.' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-12(1)-1" + text: | + "all network, data storage, and computing devices" + - key: "AU-12(1)-2" + text: | + "1 millisecond, organization-defined level of tolerance" standard_key: NIST-800-53 - control_key: AU-12 (3) @@ -511,39 +805,57 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid + - shared narrative: - text: | 'Docker Trusted Registry resides as an Application on a Universal Control Plane cluster, and as such, can be configured to send logs to - a remote logging stack. Additional information can be found at the - following resources: - - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/ + a remote logging stack. This logging stack can subsequently be used to + meet the requirements of this control. Additional information can be + found at the following resources: - This logging stack can subsequently be used to meet the requirements - of this control.' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-12(3)-1" + text: | + "service team members with audit configuration responsibilities" + - key: "AU-12(3)-2" + text: | + "all network, data storage, and computing devices" + - key: "AU-12(3)-3" + text: | + "changes to the thread environment, organization-defined threat + situations" + - key: "AU-12(3)-4" + text: | + "risk-based assessment, organization-defined time thresholds" standard_key: NIST-800-53 - control_key: CM-5 (1) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'Role-based access control can be configured within Docker Trusted Registry to meet the requirements of this control. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/dtr/2.2/guides/admin/manage-users/ - - https://docs.docker.com/datacenter/dtr/2.2/guides/admin/manage-users/permission-levels/ + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/manage-users/ + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/manage-users/permission-levels/ - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Organizations_.E2.80.94_RBAC' standard_key: NIST-800-53 - control_key: CM-5 (3) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provide hybrid + - shared narrative: - text: | 'Docker Content Trust is a capability provided by Docker Enterprise @@ -560,25 +872,43 @@ satisfies: Additional information can be found at teh following resources: - https://docs.docker.com/engine/security/trust/content_trust/ - - https://docs.docker.com/datacenter/ucp/2.1/guides/user/content-trust/manage-trusted-repositories/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/run-only-the-images-you-trust/ + - https://docs.docker.com/datacenter/dtr/2.3/guides/user/manage-images/sign-images/manage-trusted-repositories/' + parameters: + - key: "CM-5(3)" + text: | + "customer-defined software" standard_key: NIST-800-53 - control_key: CM-6 (1) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - text: | 'The organization is responsible for meeting the requirements of this control. To assist with these requirements, the organization can incorporate the use of an external configuration management system to - meet the requirements of this control.' + meet the requirements of this control. Docker Trusted Registry''s + configuration can also be backed up and stored an appropriate location + per the requirements of this control. Additional documenation can be + found at the following resources: + + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/backups-and-disaster-recovery/' + parameters: + - key: "CM-6(1)" + text: | + "customer-defined information system components" standard_key: NIST-800-53 - control_key: CM-7 (2) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'The organization can define a list of allowed base Docker images and @@ -589,15 +919,18 @@ satisfies: - control_key: CM-7 (5) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid + - shared narrative: - key: a text: | 'The organization is responsible for meeting the requirements of this control. To assist with these requirements, the organization can define a list of allowed base Docker images and make them available - via Docker Trusted Registry. The organization must also prevent users + via Docker Trusted Registry. The organization can also prevent users from being able to pull Docker images from untrusted sources.' - key: b text: | @@ -607,12 +940,20 @@ satisfies: stored in Docker Trusted Registry. This can be accomplished by using Docker Content Trust to sign Docker images which can subsequently be stored in Docker Trusted Registry.' + parameters: + - key: "CM-7(5)(a)" + text: | + "customer-defined software programs authorized to execute on the + information system" standard_key: NIST-800-53 - control_key: CM-11 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid + - shared narrative: - key: b text: | @@ -621,6 +962,16 @@ satisfies: define a list of allowed base Docker images and make them available via Docker Trusted Registry. The organization can also prevent users from being able to pull Docker images from untrusted sources.' + parameters: + - key: "CM-11(a)" + text: | + "customer-defined policies" + - key: "CM-11(b)" + text: | + "customer-defined methods" + - key: "CM-11(c)" + text: | + "FedRAMP requirement: continuously (via CM-7(5))" standard_key: NIST-800-53 - control_key: CM-11 (1) @@ -628,21 +979,27 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid + - shared narrative: - key: b text: | - 'The organization is responsible for meeting the requirements of this - control. To assist with these requirements, the organization can - define a list of allowed base Docker images and make them available - via Docker Trusted Registry. The organization can also prevent users + 'The organization can define a list of allowed base Docker images and + make them available via Docker Trusted Registry to meet the + requirements of this contorl. The organization can also prevent users from being able to pull Docker images from untrusted sources.' + parameters: + - key: "CM-11(1)" + text: | + "organization-defined personnel or roles" standard_key: NIST-800-53 - control_key: CP-10 (2) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'Docker Trusted Registry maintains its cluster state via an internal @@ -650,14 +1007,16 @@ satisfies: recovered. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/dtr/2.2/guides/admin/backups-and-disaster-recovery/ + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/backups-and-disaster-recovery/ - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Docker_EE_Best_Practices_and_Design_Considerations#DTR_Backup' standard_key: NIST-800-53 - control_key: IA-2 (5) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - text: | 'The organization is responsible for meeting the requirements of this @@ -669,8 +1028,10 @@ satisfies: - control_key: IA-3 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'Docker Trusted Registry replicas reside on Universal Control Plane @@ -679,15 +1040,17 @@ satisfies: worker token. Additional Docker Trusted Registry replicas can only be added after a UCP administrator user has authenticated in to the UCP cluster and when mutual TLS authentication between the UCP worker and - manager nodes has been established. Reference documentation can be - found at - https://docs.docker.com/datacenter/dtr/2.1/guides/install/#/step-7-join-replicas-to-the-cluster.' + manager nodes has been established. Additional information can be found at the following resources: + + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/install/#step-7-join-replicas-to-the-cluster' standard_key: NIST-800-53 - control_key: IA-5 (2) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - key: a text: | @@ -722,20 +1085,21 @@ satisfies: 'When a client bundle has been generated or an existing public key has been added for a particular Universal Control Plane user which subsequently grants that user access to Docker Trusted Registry, it is - attached to that user's Universal Control Plane profile. Bundles/keys + attached to that user''s Universal Control Plane profile. Bundles/keys can be revoked by an Administrator or the user themselves. The - cluster's internal certificates can also be revoked and updated. - Instructions for doing so can be found at - https://docs.docker.com/datacenter/ucp/2.0/guides/configuration/#/replace-the-server-certificates. - In addition, Docker Trusted Registry's server certificates can be - replaced by following the instructions at - https://docs.docker.com/datacenter/dtr/2.1/guides/configure/.' + cluster''s internal certificates can also be revoked and updated. + Additional information can be found at the following resources: + + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/use-your-own-tls-certificates/ + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/configure/use-your-own-tls-certificates/' standard_key: NIST-800-53 - control_key: IA-6 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'Docker Trusted Registry obscures all feedback of authentication @@ -745,8 +1109,10 @@ satisfies: - control_key: IA-7 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'All access to Docker Trusted Registry is protected with Transport @@ -757,8 +1123,10 @@ satisfies: - control_key: IA-8 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'Users managed by Docker Trusted Registry can be grouped per the @@ -768,8 +1136,10 @@ satisfies: - control_key: RA-5 (1) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - text: | 'The Docker Security Scanning tool allows for the scanning of Docker @@ -779,8 +1149,10 @@ satisfies: - control_key: RA-5 (3) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - text: | 'The Docker Security Scanning tool allows for the scanning of Docker @@ -790,8 +1162,10 @@ satisfies: - control_key: SA-10 (1) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - text: | 'Docker Content Trust gives you the ability to verify both the @@ -807,8 +1181,10 @@ satisfies: - control_key: SC-2 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'Docker Trusted Registry is made up of a number of backend services @@ -817,14 +1193,16 @@ satisfies: operates independently of one another. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/dtr/2.2/guides/architecture/ + - https://docs.docker.com/datacenter/dtr/2.3/guides/architecture/ - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Docker_EE_Best_Practices_and_Design_Considerations#Docker_Trusted_Registry' standard_key: NIST-800-53 - control_key: SC-23 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'All remote access sessions to Docker Trusted Registry are protected @@ -837,8 +1215,10 @@ satisfies: - control_key: SC-28 (1) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'All remote access sessions to Docker Trusted Registry are protected @@ -847,6 +1227,13 @@ satisfies: user interface and for command-line based connections to the registry. In addition to this, all communication to DTR is enforced by way of two-way mutual TLS authentication.' + parameters: + - key: "SC-28(1)-1" + text: | + "customer data" + - key: "SC-28(1)-2" + text: | + "CSP servers" standard_key: NIST-800-53 - control_key: SI-11 @@ -854,12 +1241,16 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | 'All error messages generated via the configured logging mechanism of Docker Trusted Registry are displayed such that they meet the requirements of this control. Only users that are authorized the appropriate level of access can view these error messages.' + parameters: + - key: "SI-11(b)" + text: | + "authorized service personnel and CSP users" standard_key: NIST-800-53 diff --git a/opencontrol/components/Engine-EE/component.yaml b/opencontrol/components/Engine-EE/component.yaml index 62eed09..d802828 100644 --- a/opencontrol/components/Engine-EE/component.yaml +++ b/opencontrol/components/Engine-EE/component.yaml @@ -23,18 +23,25 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - key: a text: | - To assist the organization in meeting the requirements of this + 'To assist the organization in meeting the requirements of this control, Docker Enterprise Edition can be configured to aggregate container and daemon events via a number of logging drivers. Supporting documentation can be found at the following resources: - https://docs.docker.com/engine/admin/logging/view_container_logs/ - https://docs.docker.com/engine/admin/logging/overview/ - - https://docs.docker.com/engine/admin/logging/log_tags/ + - https://docs.docker.com/engine/admin/logging/log_tags/' + parameters: + - key: "AC-2(12)(a)" + text: | + "customer-defined atypical use" + - key: "AC-2(12)(b)" + text: | + "at a minimum, the ISSO and/or similar role within the organization" standard_key: NIST-800-53 - control_key: AC-4 @@ -42,16 +49,19 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific - - configured by customer + - service provider hybrid narrative: - text: | - Docker Enterprise Edition can be configured to control the flow of information - that originates from applications running in containers. Supporting - documentation can be found at the following resources: + 'Docker Enterprise Edition can be configured to control the flow of + information that originates from applications running in containers. + Supporting documentation can be found at the following resources: - https://docs.docker.com/engine/userguide/networking/ - - http://success.docker.com/Datacenter/Apply/Docker_Reference_Architecture%3A_Designing_Scalable%2C_Portable_Docker_Container_Networks + - http://success.docker.com/Datacenter/Apply/Docker_Reference_Architecture%3A_Designing_Scalable%2C_Portable_Docker_Container_Networks' + parameters: + - key: "AC-4" + text: | + "customer-defined information flow control policies" standard_key: NIST-800-53 - control_key: AC-4 (8) @@ -59,11 +69,10 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific - - configured by customer + - service provider hybrid narrative: - text: | - Docker Enterprise Edition can be configured to control the flow of + 'Docker Enterprise Edition can be configured to control the flow of information that originates from applications running in containers per organization-defined security policy filters. Supporting documentation can be found at the following resources: @@ -73,8 +82,18 @@ satisfies: There are also third-party behavioral activity monitoring tools (e.g. Sysdig Falco ) that can be used - alongside Docker Enterprise Edition to satisfy this control's - requirements. + alongside Docker Enterprise Edition to satisfy this control''s + requirements.' + parameters: + - key: "AC-4(8)(a)" + text: | + "FedRAMP assignment: security policy filters inherent in boundary + protection devices such as gateways, routers, guards, encrypted + tunnels, firewalls" + - key: "AC-4(8)(b)" + text: | + "FedRAMP assignment: information containing PII or organization + sensitive information types" standard_key: NIST-800-53 - control_key: AC-4 (21) @@ -82,16 +101,54 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific - - configured by customer + - service provider hybrid narrative: - text: | - Docker Enterprise Edition can be configured to separate the flow of + 'Docker Enterprise Edition can be configured to separate the flow of information that originates from applications running in containers. Supporting documentation can be found at the following resources: - https://docs.docker.com/engine/userguide/networking/ - - http://success.docker.com/Datacenter/Apply/Docker_Reference_Architecture%3A_Designing_Scalable%2C_Portable_Docker_Container_Networks + - http://success.docker.com/Datacenter/Apply/Docker_Reference_Architecture%3A_Designing_Scalable%2C_Portable_Docker_Container_Networks' + parameters: + - key: "AC-4(21)-1" + text: | + "customer-defined mechanisms and/or techniques" + - key: "AC-4(21)-2" + text: | + "customer-defined required separation by types of information" + standard_key: NIST-800-53 + + - control_key: AC-14 + covered_by: [] + implementation_statuses: + - complete + control_origins: + - Docker EE system + narrative: + - text: | + 'To help the organization meet the requirements of this control, one + can restrict membership to the 'docker' group on underlying Linux + hosts or the local "Administrators" group (and any other groups + defined within 'daemon.json') on underlying Windows Server 2016 hosts + to only authorized users.' + parameters: + - key: "AC-14(a)" + text: | + "customer-defined user actions" + standard_key: NIST-800-53 + + - control_key: AC-17 + covered_by: [] + implementation_statuses: + - complete + control_origins: + - service provider hybrid + narrative: + - text: | + 'To help the organization meet the requirements of this control, + Docker Enterprise Edition can be configured to allow/prohibit remote + access to the Engine.' standard_key: NIST-800-53 - control_key: AC-17 (1) @@ -99,12 +156,12 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | - Docker Enterprise Edition logs and controls all local and remote + 'Docker Enterprise Edition logs and controls all local and remote access events. In addition, auditing can be configured on the - underlying operating system to meet this control. + underlying operating system to meet this control.' standard_key: NIST-800-53 - control_key: AC-17 (2) @@ -112,13 +169,13 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | - All remote access sessions to Docker Enterprise Edition are protected + 'All remote access sessions to Docker Enterprise Edition are protected with Transport Layer Security (TLS) 1.2. In addition to this, all communication to Docker Enterprise Edition is enforced by way of - two-way mutual TLS authentication. + two-way mutual TLS authentication.' standard_key: NIST-800-53 - control_key: AC-17 (3) @@ -126,13 +183,17 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | - A combination of managed load balancers, firewalls and access control + 'A combination of managed load balancers, firewalls and access control lists, and virtual networking resources can be used to ensure traffic - destined for Docker Enterprise Edition is routed through managed network access - control points. + destined for Docker Enterprise Edition is routed through managed + network access control points.' + parameters: + - key: "AC-17(3)" + text: | + "customer-defined" standard_key: NIST-800-53 - control_key: AC-17 (9) @@ -140,16 +201,21 @@ satisfies: implementation_statuses: - complete control_origins: + - service provider hybrid - configured by customer narrative: - text: | - Built-in firewall technology in Docker Enterprise Edition's underlying - operating system can be used to force the disconnection of remote - connections to the host. In addition, Docker Enterprise Edition provides the - option to pause or drain a node in the cluster, which subsequently - stops and/or removes sessions to the node. Individual services and/or - applications running on Docker Enterprise Edition can also be stopped and/or - removed. + 'Built-in firewall technology in Docker Enterprise Edition's + underlying operating system can be used to force the disconnection of + remote connections to the host. In addition, Docker Enterprise Edition + provides the option to pause or drain a node in the cluster, which + subsequently stops and/or removes sessions to the node. Individual + services and/or applications running on Docker Enterprise Edition can + also be stopped and/or removed.' + parameters: + - key: "AC-17(9)" + text: | + "FedRAMP requirement: no greater than fifteen minutes" standard_key: NIST-800-53 - control_key: AU-2 @@ -157,11 +223,12 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid + - shared narrative: - key: a text: | - Both Universal Control Plane and Docker Trusted Registry backend + 'Both Universal Control Plane and Docker Trusted Registry backend service containers, all of which reside on Docker Enterprise Edition, log all of the event types indicated by this control (as explained by their component narratives). These and other application containers @@ -169,7 +236,7 @@ satisfies: via an appropriate Docker logging driver. Instructions for configuring logging drivers can be found at the following resource: - - https://docs.docker.com/engine/admin/logging/overview/ + - https://docs.docker.com/engine/admin/logging/overview/' standard_key: NIST-800-53 - control_key: AU-3 @@ -177,11 +244,12 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | - Both Universal Control Plane and Docker Trusted Registry are - pre-configured to take advantage of Docker Enterprise Edition's + 'Both Universal Control Plane and Docker Trusted Registry are + pre-configured to take advantage of Docker Enterprise Edition''s built-in logging mechanisms. A sample audit event recorded by Docker Enterprise Edition has been provided below: @@ -192,7 +260,7 @@ satisfies: Additional documentation can be referenced at the following resource: - - https://docs.docker.com/engine/admin/logging/overview/ + - https://docs.docker.com/engine/admin/logging/overview/' standard_key: NIST-800-53 - control_key: AU-3 (1) @@ -200,16 +268,25 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | - Docker Enterprise Edition can be configured with various logging + 'Docker Enterprise Edition can be configured with various logging drivers to send audit events to an external logging stack. The logging stack can subsequently be used to interpolate the information defined by this control from the logged audit records. Additional documentation can be found at the following resource: - - https://docs.docker.com/engine/admin/logging/overview/ + - https://docs.docker.com/engine/admin/logging/overview/' + parameters: + - key: "AU-3(1)" + text: | + "FedRAMP requirement: session, connection, trasaction, or activity + duration; for client-server transactions, the number of bytes received + and bytes sent, additional informational messages to diagnose or + identify the event, characteristics that describe or identify the + object or resource being acted upon" standard_key: NIST-800-53 - control_key: AU-3 (2) @@ -217,16 +294,21 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | - Docker Enterprise Edition can be configured with various logging + 'Docker Enterprise Edition can be configured with various logging drivers to send audit events to an external logging stack. The logging stack can subsequently be used to interpolate the information defined by this control from the logged audit records. Additional documentation can be found at the following resource: - - https://docs.docker.com/engine/admin/logging/overview/ + - https://docs.docker.com/engine/admin/logging/overview/' + parameters: + - key: "AU-3(2)" + text: | + "all network, data storage, and computing devices" standard_key: NIST-800-53 - control_key: AU-5 @@ -234,17 +316,26 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | - Docker Enterprise Edition can be configured with various logging + 'Docker Enterprise Edition can be configured with various logging drivers to send audit events to an external logging stack. The logging stack can be used to interpolate the information defined by this control and also be configured to alert on any audit processing failures. Additional information can be found at the following resources: - - https://docs.docker.com/engine/admin/logging/overview/ + - https://docs.docker.com/engine/admin/logging/overview/' + parameters: + - key: "AU-5(a)" + text: | + "customer-defined personnel or roles" + - key: "AU-5(b)" + text: | + "FedRAMP requirement: low-impact: overwrite oldest audit records; + moderate-impact: shut down" standard_key: NIST-800-53 - control_key: AU-5 (1) @@ -252,16 +343,27 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | - Docker Enterprise Edition can be configured with various logging + 'Docker Enterprise Edition can be configured with various logging drivers to send audit events to an external logging stack. The logging stack can subsequently be configured to warn the organization when the allocated log storage is full. Additional information can be found at the following resources: - - https://docs.docker.com/engine/admin/logging/overview/ + - https://docs.docker.com/engine/admin/logging/overview/' + parameters: + - key: "AU-5(1)-1" + text: | + "appropriate service team personnel, customer-defined personnel" + - key: "AU-5(1)-2" + text: | + "24 hours, customer-defined time period" + - key: "AU-5(1)-3" + text: | + "a service team defined percentage, customer-defined percentage" standard_key: NIST-800-53 - control_key: AU-5 (2) @@ -269,16 +371,28 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | - Docker Enterprise Edition can be configured with various logging + 'Docker Enterprise Edition can be configured with various logging drivers to send audit events to an external logging stack. The logging stack can subsequently be configured to warn the organization when audit log failures occur. Additional information can be found at the following resources: - - https://docs.docker.com/engine/admin/logging/overview/ + - https://docs.docker.com/engine/admin/logging/overview/' + parameters: + - key: "AU-5(2)-1" + text: | + "real-time" + - key: "AU-5(2)-2" + text: | + "appropriate service team personnel" + - key: "AU-5(2)-3" + text: | + "events defined by each service team, audit failure events requiring + real-time alerts, as defined by organization audit policy" standard_key: NIST-800-53 - control_key: AU-6 (4) @@ -286,16 +400,17 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | - Docker Enterprise Edition can be configured with various logging + 'Docker Enterprise Edition can be configured with various logging drivers to send audit events to an external logging stack. The organization can subsequently centrally review and analyze all of the Docker EE audit records. Additional information can be found at the following resources: - - https://docs.docker.com/engine/admin/logging/overview/ + - https://docs.docker.com/engine/admin/logging/overview/' standard_key: NIST-800-53 - control_key: AU-7 @@ -303,22 +418,23 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - key: a text: | - Docker Enterprise Edition can be configured with various logging + 'Docker Enterprise Edition can be configured with various logging drivers to send audit events to an external logging stack. The logging stack can subsequently be used to facilitate the audit reduction and report generation requirements of this control. Additional information can be found at the following resources: - - https://docs.docker.com/engine/admin/logging/overview/ + - https://docs.docker.com/engine/admin/logging/overview/' - key: b text: | - The underlying operating system chosen to support Docker Enterprise + 'The underlying operating system chosen to support Docker Enterprise Edition should be certified to ensure that logs are not altered during - generation and transmission to a remote logging stack. + generation and transmission to a remote logging stack.' standard_key: NIST-800-53 - control_key: AU-7 (1) @@ -326,16 +442,21 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | - Docker Enterprise Edition can be configured with various logging + 'Docker Enterprise Edition can be configured with various logging drivers to send audit events to an external logging stack. The logging stack can subsequently be configured to parse information by organization-defined audit fields. Additional information can be found at the following resources: - - https://docs.docker.com/engine/admin/logging/overview/ + - https://docs.docker.com/engine/admin/logging/overview/' + parameters: + - key: "AU-7(1)" + text: | + "customer-defined audit fields within audit records" standard_key: NIST-800-53 - control_key: AU-8 @@ -343,18 +464,22 @@ satisfies: implementation_statuses: - complete control_origins: - - configured by customer + - service provider hybrid narrative: - key: a text: | - Docker Enterprise Edition uses the system clock of the underlying - operating system on which it runs. This behavior cannot be modified. + 'Docker Enterprise Edition uses the system clock of the underlying + operating system on which it runs. This behavior cannot be modified.' - key: b text: | - The underlying operating system on which Docker Enterprise Edition + 'The underlying operating system on which Docker Enterprise Edition runs should be configured such that its system clock uses Coordinated Universal Time (UTC) as indicated by this control. Refer to the - operating system's instructions for doing so. + operating system's instructions for doing so.' + parameters: + - key: "AU-8(b)" + text: | + "millisecond precision" standard_key: NIST-800-53 - control_key: AU-8 (1) @@ -362,24 +487,35 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - key: a text: | - The underlying operating system on which Docker Enterprise Edition runs should + 'The underlying operating system on which Docker Enterprise Edition runs should be configured such that its system clock compares itself with an authoritative time source as indicated by this control. This can be accomplished by utilizing the Network Time Protocol (NTP). Refer to - the operating system's instructions for doing so. + the operating system's instructions for doing so.' - key: b text: | - The underlying operating system on which Docker Enterprise Edition + 'The underlying operating system on which Docker Enterprise Edition runs should be configured such that its system clock synchronizes itself to an authoritative time source as defined by part (a) of this control any time the time difference exceeds that of the organization-defined time period. This can be accomplished by utilizing the Network Time Protocol (NTP). Refer to the operating - system's instructions for doing so. + system's instructions for doing so.' + parameters: + - key: "AU-8(1)(a)-1" + text: | + "FedRAMP requirement: at least hourly" + - key: "AU-8(1)(a)-2" + text: | + "FedRAMP requirement: authoritative time source: + http://tf.nist.gov/tf-cgi/servers.cgi" + - key: "AU-8(1)(b)" + text: | + "customer-defined" standard_key: NIST-800-53 - control_key: AU-9 @@ -387,26 +523,24 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | - On the underlying Linux operating system supporting Docker Enterprise + 'On the underlying Linux operating system supporting Docker Enterprise Edition, only root and sudo users and users that have been added to the "docker" group have the ability to access the logs generated by UCP backend service containers. Should the organization decide to configure Docker Enterprise Edition to use a logging driver other than the default json-file driver, the organization is subsequently responsible for configuring the chosen logging stack per the - provisions of this control. Additional information can be found at the - following resources: + provisions of this control. In addition, for Linux operating systems + supporting Docker Enterprise Edition that use the systemd daemon, it + is imperative that the Journal is secured per the requirements of this + control. The same applies for Linux operating systems supporting + Docker Enterprise Edition that instead use upstart. Additional + information can be found at the following resources: - - https://docs.docker.com/engine/admin/logging/overview/ - - In addition, for Linux operating systems supporting Docker Enterprise - Edition that use the systemd daemon, it is imperative that the Journal - is secured per the requirements of this control. The same applies for - Linux operating systems supporting Docker Enterprise Edition that - instead use upstart. + - https://docs.docker.com/engine/admin/logging/overview/' standard_key: NIST-800-53 - control_key: AU-9 (2) @@ -414,14 +548,18 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | - Docker Enterprise Edition can be configured to use a logging driver + 'Docker Enterprise Edition can be configured to use a logging driver that can subsequently meet the backup requirements of this control. Additional information can be found at the following resources: - - https://docs.docker.com/engine/admin/logging/overview/ + - https://docs.docker.com/engine/admin/logging/overview/' + parameters: + - key: "AU-9(2)" + text: | + "FedRAMP requirement: at least weekly" standard_key: NIST-800-53 - control_key: AU-9 (3) @@ -429,15 +567,15 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | - Docker Enterprise Edition can be configured to use a logging driver + 'Docker Enterprise Edition can be configured to use a logging driver that can subsequently meet the encryption mechanisms required by this control. Additional information can be found at the following resources: - - https://docs.docker.com/engine/admin/logging/overview/ + - https://docs.docker.com/engine/admin/logging/overview/' standard_key: NIST-800-53 - control_key: AU-10 @@ -445,10 +583,10 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | - Docker Enterprise Edition includes functionality known as Docker + 'Docker Enterprise Edition includes functionality known as Docker Content Trust which allows one to cryptographically sign Docker images. It enforces client-side signing and verification of image tags and provides the ability to use digital signatures for data sent to @@ -461,7 +599,12 @@ satisfies: control. Additional information can be found at the following resources: - - https://docs.docker.com/engine/security/trust/content_trust/ + - https://docs.docker.com/engine/security/trust/content_trust/' + parameters: + - key: "AU-10" + text: | + "actions including the addition, modification, deletion, approval, + sending, or receiving of data" standard_key: NIST-800-53 - control_key: AU-11 @@ -469,16 +612,21 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid + - shared narrative: - text: | - The organization will be responsible for meeting the requirements of + 'The organization will be responsible for meeting the requirements of this control. To assist with these requirements, Docker Enterprise Edition can be configured to use a logging driver that stores data in a location for the duration specified by this control. Additional information can be found at the following resources: - - https://docs.docker.com/engine/admin/logging/overview/ + - https://docs.docker.com/engine/admin/logging/overview/' + parameters: + - key: "AU-11" + text: | + "FedRAMP requirement: at least one year" standard_key: NIST-800-53 - control_key: AU-12 @@ -486,29 +634,36 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - key: a text: | - Both Universal Control Plane and Docker Trusted Registry backend + 'Both Universal Control Plane and Docker Trusted Registry backend service containers, all of which reside on Docker Enterprise Edition, log all of the event types indicated by this AU-2 a. These and other application containers that reside on Docker Enterprise Edition can be - configured to log data via an appropriate Docker logging driver. - Additional information can be found at the following resources: - - - https://docs.docker.com/engine/admin/logging/overview/ + configured to log data via an appropriate Docker logging driver. The + underlying Linux operating system supporting Docker Enterprise Edition + can be configured to audit Docker-specific events with the auditd + daemon. Refer to the specific Linux distribution in use for + instructions on configuring this service. Additional information can + be found at the following resources: - The underlying Linux operating system supporting Docker Enterprise - Edition can be configured to audit Docker-specific events with the - auditd daemon. Refer to the specific Linux distribution in use for - instructions on configuring this service. + - https://docs.docker.com/engine/admin/logging/overview/' - key: b text: | - Using auditd on the Linux operating system supporting CS Docker + 'Using auditd on the Linux operating system supporting CS Docker Engine, the organization can configure audit rules to select which Docker-specific events are to be audited. Refer to the specific Linux - distribution in use for instructions on configuring this service. + distribution in use for instructions on configuring this service.' + parameters: + - key: "AU-12(a)" + text: | + "FedRAMP requirement: at least every 3 years" + - key: "AU-12(b)" + text: | + "customer-defined personnel or roles" standard_key: NIST-800-53 - control_key: AU-12 (1) @@ -516,17 +671,25 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | - Docker Enterprise Edition can be configured with various logging + 'Docker Enterprise Edition can be configured with various logging drivers to send audit events to an external logging stack. This logging stack can subsequently be used to compile audit records in to a system-wide audit trail that is time-correlated per the requirements of this control. Additional information can be found at the following resources: - - https://docs.docker.com/engine/admin/logging/overview/ + - https://docs.docker.com/engine/admin/logging/overview/' + parameters: + - key: "AU-12(1)-1" + text: | + "all network, data storage, and computing devices" + - key: "AU-12(1)-2" + text: | + "1 millisecond, organization-defined level of tolerance" standard_key: NIST-800-53 - control_key: AU-12 (3) @@ -534,34 +697,31 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid + - shared narrative: - text: | - Docker Enterprise Edition can be configured with various logging + 'Docker Enterprise Edition can be configured with various logging drivers to send audit events to an external logging stack. This logging stack can subsequently be used to meet the requirements of this control. Additional information can be found at the following resources: - - https://docs.docker.com/engine/admin/logging/overview/ - standard_key: NIST-800-53 - - - control_key: CA-7 - covered_by: [] - implementation_statuses: - - complete - control_origins: - - service provider system specific - narrative: - - text: | - The CIS Docker Benchmark can be used as a baseline for securing Docker - Enterprise Edition and for helping the organization meet the - continuous monitoring requirements of this control. Additional - information can be found at the following resources: - - - https://benchmarks.cisecurity.org/tools2/docker/CIS_Docker_1.13.0_Benchmark_v1.0.0.pdf - - http://www.cisecurity.org/critical-controls/tools/CISControlsv4_MaptoNIST800-53rev4.xlsx - - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark + - https://docs.docker.com/engine/admin/logging/overview/' + parameters: + - key: "AU-12(3)-1" + text: | + "service team members with audit configuration responsibilities" + - key: "AU-12(3)-2" + text: | + "all network, data storage, and computing devices" + - key: "AU-12(3)-3" + text: | + "changes to the thread environment, organization-defined threat + situations" + - key: "AU-12(3)-4" + text: | + "risk-based assessment, organization-defined time thresholds" standard_key: NIST-800-53 - control_key: CM-1 @@ -569,17 +729,29 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid + - shared narrative: - text: | - The CIS Docker Benchmark can be used as a baseline for securing Docker - Enterprise Edition and for helping the organization meet the - configurmation management requirements of this control. Additional + 'The CIS Docker Benchmark can be used as a baseline for securing + Docker Enterprise Edition and for helping the organization meet the + configuration management requirements of this control. Additional information can be found at the following resources: - - https://benchmarks.cisecurity.org/tools2/docker/CIS_Docker_1.13.0_Benchmark_v1.0.0.pdf + - https://www.cisecurity.org/benchmark/docker/ - http://www.cisecurity.org/critical-controls/tools/CISControlsv4_MaptoNIST800-53rev4.xlsx - - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark + - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark' + parameters: + - key: "CM-1(a)" + text: | + "customer-defined personnel or roles" + - key: "CM-1(b)(1)" + text: | + "FedRAMP requirement: at least every 3 years" + - key: "CM-1(b)(2)" + text: | + "FedRAMP requirement: at least annually or whenever a significant + change occurs" standard_key: NIST-800-53 - control_key: CM-2 @@ -587,17 +759,18 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid + - shared narrative: - text: | - The CIS Docker Benchmark can be used as a baseline for securing Docker + 'The CIS Docker Benchmark can be used as a baseline for securing Docker Enterprise Edition and for helping the organization meet the - configurmation management requirements of this control. Additional + configuration management requirements of this control. Additional information can be found at the following resources: - - https://benchmarks.cisecurity.org/tools2/docker/CIS_Docker_1.13.0_Benchmark_v1.0.0.pdf + - https://www.cisecurity.org/benchmark/docker/ - http://www.cisecurity.org/critical-controls/tools/CISControlsv4_MaptoNIST800-53rev4.xlsx - - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark + - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark' standard_key: NIST-800-53 - control_key: CM-2 (1) @@ -605,17 +778,26 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid + - shared narrative: - text: | - The CIS Docker Benchmark can be used as a baseline for securing Docker - Enterprise Edition and for helping the organization meet the + 'The CIS Docker Benchmark can be used as a baseline for securing + Docker Enterprise Edition and for helping the organization meet the configurmation management requirements of this control. Additional information can be found at the following resources: - - https://benchmarks.cisecurity.org/tools2/docker/CIS_Docker_1.13.0_Benchmark_v1.0.0.pdf + - https://www.cisecurity.org/benchmark/docker/ - http://www.cisecurity.org/critical-controls/tools/CISControlsv4_MaptoNIST800-53rev4.xlsx - - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark + - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark' + parameters: + - key: "CM-2(1)(a)" + text: | + "FedRAMP requirement: at least annually or when a significant change + occurs" + - key: "CM-2(1)(b)" + text: | + "FedRAMP requirement: to include when directed by the JAB" standard_key: NIST-800-53 - control_key: CM-2 (2) @@ -623,11 +805,11 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | - The CIS Docker Benchmark can be used as a baseline for securing Docker - Enterprise Edition and for helping the organization meet the + 'The CIS Docker Benchmark can be used as a baseline for securing + Docker Enterprise Edition and for helping the organization meet the configurmation management requirements of this control. CIS regularly updates their benchmark to reflect the latest updates in the stable release of Docker Engine. Various configuration management tools such @@ -636,9 +818,9 @@ satisfies: configurations have been applied in an automated fashion. Additional information can be found at the following resources: - - https://benchmarks.cisecurity.org/tools2/docker/CIS_Docker_1.13.0_Benchmark_v1.0.0.pdf + - https://www.cisecurity.org/benchmark/docker/ - http://www.cisecurity.org/critical-controls/tools/CISControlsv4_MaptoNIST800-53rev4.xlsx - - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark + - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark' standard_key: NIST-800-53 - control_key: CM-2 (3) @@ -646,10 +828,10 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | - The CIS Docker Benchmark can be used as a baseline for securing + 'The CIS Docker Benchmark can be used as a baseline for securing Docker Enterprise Edition and for helping the organization meet the configurmation management requirements of this control. CIS regularly updates their benchmark to reflect the latest updates in the stable @@ -660,9 +842,13 @@ satisfies: rolled back as required by this control. Additional information can be found at the following resources: - - https://benchmarks.cisecurity.org/tools2/docker/CIS_Docker_1.13.0_Benchmark_v1.0.0.pdf + - https://www.cisecurity.org/benchmark/docker/ - http://www.cisecurity.org/critical-controls/tools/CISControlsv4_MaptoNIST800-53rev4.xlsx - - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark + - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark' + parameters: + - key: "CM-2(3)" + text: | + "the previously approved baseline configuration of IS components" standard_key: NIST-800-53 - control_key: CM-3 @@ -670,17 +856,33 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | - The CIS Docker Benchmark can be used as a baseline for securing + 'The CIS Docker Benchmark can be used as a baseline for securing Docker Enterprise Edition and for helping the organization meet the configurmation management change control requirements of this control. Additional information can be found at the following resources: - - https://benchmarks.cisecurity.org/tools2/docker/CIS_Docker_1.13.0_Benchmark_v1.0.0.pdf + - https://www.cisecurity.org/benchmark/docker/ - http://www.cisecurity.org/critical-controls/tools/CISControlsv4_MaptoNIST800-53rev4.xlsx - - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark + - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark' + parameters: + - key: "CM-3(e)" + text: | + "customer-defined time period" + - key: "CM-3(g)-1" + text: | + "FedRAMP requirement: CAB" + - key: "CM-3(g)-2" + text: | + "customer-defined" + - key: "CM-3(g)-3" + text: | + "customer-defined" + - key: "CM-3(g)-4" + text: | + "customer-defined" standard_key: NIST-800-53 - control_key: CM-3 (1) @@ -688,10 +890,10 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | - The CIS Docker Benchmark can be used as a baseline for securing + 'The CIS Docker Benchmark can be used as a baseline for securing Docker Enterprise Edition and for helping the organization meet the configurmation management change control requirements of this control. Various configuration management tools such as Inspec @@ -700,9 +902,19 @@ satisfies: have been applied in an automated fashion. Additional information can be found at the following resources: - - https://benchmarks.cisecurity.org/tools2/docker/CIS_Docker_1.13.0_Benchmark_v1.0.0.pdf + - https://www.cisecurity.org/benchmark/docker/ - http://www.cisecurity.org/critical-controls/tools/CISControlsv4_MaptoNIST800-53rev4.xlsx - - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark + - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark' + parameters: + - key: "CM-3(1)(b)" + text: | + "customer-defined authorized approvers" + - key: "CM-3(1)(c)" + text: | + "organization-defined time period" + - key: "CM-3(1)(f)" + text: | + "organization-defined configuration management approval authorities" standard_key: NIST-800-53 - control_key: CM-3 (2) @@ -710,10 +922,10 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | - The CIS Docker Benchmark can be used as a baseline for securing + 'The CIS Docker Benchmark can be used as a baseline for securing Docker Enterprise Edition and for helping the organization meet the configurmation management change control requirements of this control. Various configuration management tools such as Inspec @@ -722,9 +934,9 @@ satisfies: have been applied in an automated fashion. Additional information can be found at the following resources: - - https://benchmarks.cisecurity.org/tools2/docker/CIS_Docker_1.13.0_Benchmark_v1.0.0.pdf + - https://www.cisecurity.org/benchmark/docker/ - http://www.cisecurity.org/critical-controls/tools/CISControlsv4_MaptoNIST800-53rev4.xlsx - - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark + - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark' standard_key: NIST-800-53 - control_key: CM-3 (6) @@ -732,17 +944,21 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | - The CIS Docker Benchmark can be used as a baseline for securing + 'The CIS Docker Benchmark can be used as a baseline for securing Docker Enterprise Edition and for helping the organization meet the cryptography management requirements of this control. Additional information can be found at the following resources: - - https://benchmarks.cisecurity.org/tools2/docker/CIS_Docker_1.13.0_Benchmark_v1.0.0.pdf + - https://www.cisecurity.org/benchmark/docker/ - http://www.cisecurity.org/critical-controls/tools/CISControlsv4_MaptoNIST800-53rev4.xlsx - - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark + - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark' + parameters: + - key: "CM-3(6)" + text: | + "all security safeguards that rely on cryptography" standard_key: NIST-800-53 - control_key: CM-5 (2) @@ -750,17 +966,24 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | - The CIS Docker Benchmark can be used as a baseline for securing + 'The CIS Docker Benchmark can be used as a baseline for securing Docker Enterprise Edition and for helping the organization meet the system change requirements of this control. Additional information can be found at the following resources: - - https://benchmarks.cisecurity.org/tools2/docker/CIS_Docker_1.13.0_Benchmark_v1.0.0.pdf + - https://www.cisecurity.org/benchmark/docker/ - http://www.cisecurity.org/critical-controls/tools/CISControlsv4_MaptoNIST800-53rev4.xlsx - - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark + - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark' + parameters: + - key: "CM-5(2)-1" + text: | + "every 30 days" + - key: "CM-5(2)-2" + text: | + "organization-defined circumstance" standard_key: NIST-800-53 - control_key: CM-5 (3) @@ -768,28 +991,33 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provide hybrid + - shared narrative: - text: | - Before installing Docker Enterprise Edition, ensure that your - supporting Linux operating system's packager manager supports package + 'Before installing Docker Enterprise Edition, ensure that your + supporting Linux operating system''s packager manager supports package signature verification and that it is enabled. It is also required - that you import the Docker public key for CS packages so as to + that you import the Docker public key for EE packages so as to retrieve the validated and signed package from Docker, Inc. Refer to your Linux OS documentation for instructions on completing the above steps. - In addition, Docker Content Trust is a capability provided by CS - Docker Engine that enforces client-side signing and verification of - Docker image tags. It provides the ability to use digital signatures - for data sent to and received from Docker Trusted Registry and the - public Docker Store. These signatures allow client-side verification - of the integrity and publisher of specific image tags. When enabling - Docker Content Trust in Docker Enterprise Edition you can enforce the - use of signed Docker images. Additional information can be found at - the following resources: + In addition, Docker Content Trust is a capability provided by Docker + Engine that enforces client-side signing and verification of Docker + image tags. It provides the ability to use digital signatures for data + sent to and received from Docker Trusted Registry and the public + Docker Store. These signatures allow client-side verification of the + integrity and publisher of specific image tags. When enabling Docker + Content Trust in Docker Enterprise Edition you can enforce the use of + signed Docker images. Additional information can be found at the + following resources: - - https://docs.docker.com/engine/security/trust/content_trust/ + - https://docs.docker.com/engine/security/trust/content_trust/' + parameters: + - key: "CM-5(3)" + text: | + "customer-defined software" standard_key: NIST-800-53 - control_key: CM-6 (1) @@ -797,13 +1025,39 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | - The organization is responsible for meeting the requirements of this - control. The organization can incorporate the use of an external - configuration management system to meet the requirements of this - control. + 'The organization can incorporate the use of an external configuration + management system to meet the requirements of this control.' + parameters: + - key: "CM-6(1)" + text: | + "customer-defined information system components" + standard_key: NIST-800-53 + + - control_key: CM-7 + covered_by: [] + implementation_statuses: + - complete + control_origins: + - service provider hybrid + narrative: + - text: | + 'To help the organization meet the requirements of this control, the + latest CIS Docker Benchmark can be used as a secure configuration + baseline. Additional information can be found at the following + resources: + + - https://www.cisecurity.org/benchmark/docker/' + parameters: + - key: "CM-7(b)" + text: | + "FedRAMP assignment: the service provider shall use the Center for + Internet Security Guidelines (Level 1) to establish list of prohibited + or restricted functions, ports, protocols, and/or services or + establishes its own list of prohibited or restricted functions, ports, + protocols, and/or services if USGCB is not available" standard_key: NIST-800-53 - control_key: CM-7 (2) @@ -811,14 +1065,19 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | - In order to restrict which Docker images can be used to deploy - applications to Docker Enterprise Edition, the organization must define a list - of allowed base Docker images and make them available via Docker - Trusted Registry. The organization must also prevent users from being - able to pull Docker images from untrusted sources. + 'In order to restrict which Docker images can be used to deploy + applications to Docker Enterprise Edition, the organization can define + a list of allowed base Docker images and make them available via + Docker Trusted Registry. The organization can also prevent users from + being able to pull Docker images from untrusted sources.' + parameters: + - key: "CM-7(2)" + text: | + "customer-defined policies regarding software program usage or + restrictions" standard_key: NIST-800-53 - control_key: CM-7 (5) @@ -826,16 +1085,22 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid + - shared narrative: - text: | - The organization is responsible for meeting the requirements of this + 'The organization is responsible for meeting the requirements of this control. To assist with these requirements and in order to restrict - which Docker images can be used to deploy applications to CS Docker + which Docker images can be used to deploy applications to Docker EE Engine, the organization must define a list of allowed base Docker images and make them available via Docker Trusted Registry. The organization must also prevent users from being able to pull Docker - images from untrusted sources. + images from untrusted sources.' + parameters: + - key: "CM-7(5)(a)" + text: | + "customer-defined software programs authorized to execute on the + information system" standard_key: NIST-800-53 - control_key: CM-9 @@ -843,17 +1108,17 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | - The CIS Docker Benchmark can be used as a baseline for securing + 'The CIS Docker Benchmark can be used as a baseline for securing Docker Enterprise Edition and for helping the organization meet the configuration management plan requirements of this control. Additional information can be found at the following resources: - - https://benchmarks.cisecurity.org/tools2/docker/CIS_Docker_1.13.0_Benchmark_v1.0.0.pdf + - https://www.cisecurity.org/benchmark/docker/ - http://www.cisecurity.org/critical-controls/tools/CISControlsv4_MaptoNIST800-53rev4.xlsx - - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark + - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Controls_from_the_CIS_Benchmark' standard_key: NIST-800-53 - control_key: IA-3 @@ -861,13 +1126,13 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | - In order for other CS Engine nodes to be able to join a cluster - managed by Universal Control Plane, they must be identified and - authenticated via either a manager or worker token. Use of the token - includes trust on first use mutual TLS. + 'In order for other Docker EE engine nodes to be able to join a + cluster managed by Universal Control Plane, they must be identified + and authenticated via either a manager or worker token. Use of the + token includes trust on first use mutual TLS.' standard_key: NIST-800-53 - control_key: SA-10 (1) @@ -875,17 +1140,17 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | - Docker Content Trust gives you the ability to verify both the + 'Docker Content Trust gives you the ability to verify both the integrity and the publisher of all the data received from a Docker Trusted Registry over any channel. It allows operations with a remote DTR instance to enforce client-side signing and verification of image tags. It provides for the ability to use digital signatures for data sent to and receive from remote DTR instances. These signatures allow client-side verification of the integrity and publisher of specific - image tags. + image tags.' standard_key: NIST-800-53 - control_key: SC-7 (20) @@ -893,10 +1158,10 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | - Docker Enterprise Edition is designed to run application containers + 'Docker Enterprise Edition is designed to run application containers whose content can be completely isolated/segregated from other application containers within the same node/cluster. This is accomplished by way of Linux kernel primitives and various security @@ -905,7 +1170,11 @@ satisfies: - https://docs.docker.com/engine/security/security/ - https://docs.docker.com/engine/userguide/networking/overlay-security-model/ - - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Engine_and_Node_Security + - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#Engine_and_Node_Security' + parameters: + - key: "SC-7(20" + text: | + "organization-defined information system components" standard_key: NIST-800-53 - control_key: SC-12 (2) @@ -913,14 +1182,18 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | - Docker Enterprise Edition can be installed on the following operating systems: - CentOS 7.1+, Red Hat Enterprise Linux 7.0+, Ubuntu 14.04 LTS+, and - SUSE Linux Enterprise 12+. In order to meet the requirements of this - control, reference the chosen operating system's documentation to - ensure it is configured in FIPS mode. + 'Docker Enterprise Edition can be installed on the following operating + systems: CentOS 7.1+, Red Hat Enterprise Linux 7.0+, Ubuntu 14.04 + LTS+, SUSE Linux Enterprise 12+ and Windows Server 2016+. In order to + meet the requirements of this control, reference the chosen operating + system's documentation to ensure it is configured in FIPS mode.' + parameters: + - key: "SC-12(2)" + text: | + "FedRAMP requirement: NIST FIPTS compliance" standard_key: NIST-800-53 - control_key: SC-13 @@ -928,14 +1201,18 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | - Docker Enterprise Edition can be installed on the following operating systems: - CentOS 7.1+, Red Hat Enterprise Linux 7.0+, Ubuntu 14.04 LTS+, and - SUSE Linux Enterprise 12+. In order to meet the requirements of this - control, reference the chosen operating system's documentation to - ensure it is configured in FIPS mode. + 'Docker Enterprise Edition can be installed on the following operating + systems: CentOS 7.1+, Red Hat Enterprise Linux 7.0+, Ubuntu 14.04 + LTS+, SUSE Linux Enterprise 12+ and Windows Server 2016+. In order to + meet the requirements of this control, reference the chosen operating + system's documentation to ensure it is configured in FIPS mode.' + parameters: + - key: "SC-13" + text: | + "FedRAMP requirement: FIPS-validated or NSA-approved cryptography" standard_key: NIST-800-53 - control_key: SC-23 @@ -943,13 +1220,13 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | - All remote access sessions to Docker Enterprise Edition are protected with - Transport Layer Security (TLS) 1.2 with the AES GCM cipher. In - addition to this, all communication to and between Docker Enterprise Editions - is enforced by way of two-way mutual TLS authentication. + 'All remote access sessions to Docker Enterprise Edition are protected + with Transport Layer Security (TLS) 1.2 with the AES GCM cipher. In + addition to this, all communication to and between Docker Enterprise + Editions is enforced by way of two-way mutual TLS authentication.' standard_key: NIST-800-53 - control_key: SC-28 @@ -957,16 +1234,23 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | - All remote access sessions to Docker Enterprise Edition are protected + 'All remote access sessions to Docker Enterprise Edition are protected with Transport Layer Security (TLS) 1.2 with the AES GCM cipher. In addition to this, all communication to/from and between Docker Enterprise Edition nodes is enforced by way of two-way mutual TLS authentication. All Swarm Mode manager nodes in a Docker Enterprise Edition cluster store state metadata and user secrets encrypted at - rest using the AES GCM cipher. + rest using the AES GCM cipher.' + parameters: + - key: "SC-28-1" + text: | + "confidentiality and integrity" + - key: "SC-28-2" + text: | + "customer data" standard_key: NIST-800-53 - control_key: SC-28 (1) @@ -974,13 +1258,20 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | - All remote access sessions to Docker Enterprise Edition are protected with - Transport Layer Security (TLS) 1.2 with the AES GCM cipher. In - addition to this, all communication to and between Docker Enterprise Editions - is enforced by way of two-way mutual TLS authentication. + 'All remote access sessions to Docker Enterprise Edition are protected + with Transport Layer Security (TLS) 1.2 with the AES GCM cipher. In + addition to this, all communication to and between Docker Enterprise + Editions is enforced by way of two-way mutual TLS authentication.' + parameters: + - key: "SC-28(1)-1" + text: | + "customer data" + - key: "SC-28(1)-2" + text: | + "CSP servers" standard_key: NIST-800-53 - control_key: SI-3 (2) @@ -988,14 +1279,14 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | - Docker Enterprise Edition packages for supported underlying operating + 'Docker Enterprise Edition packages for supported underlying operating systems can only be obtained from Docker, Inc. The Docker EE repositories from which Docker EE packages are obtained are protected with official GPG keys. Each Docker package is also validated with a - signature definition. + signature definition.' standard_key: NIST-800-53 - control_key: SI-11 @@ -1003,13 +1294,17 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | - All error messages generated via the logging mechanisms of the Docker + 'All error messages generated via the logging mechanisms of the Docker Enterprise Edition engine are displayed such that they meet the requirements of this control. Only users that are authorized the - appropriate level of access can view these error messages. + appropriate level of access can view these error messages.' + parameters: + - key: "SI-11(b)" + text: | + "authorized service personnel and CSP users" standard_key: NIST-800-53 - control_key: SI-16 @@ -1017,13 +1312,18 @@ satisfies: implementation_statuses: - complete control_origins: - - configured by customer + - service provider hybrid narrative: - text: | - Docker Enterprise Edition can be installed on the following operating systems: - CentOS 7.1+, Red Hat Enterprise Linux 7.0+, Ubuntu 14.04 LTS+, and - SUSE Linux Enterprise 12+. In order to meet the requirements of this - control, reference the chosen operating system's security - documentation for information regarding the protection of memory from - unauthorized code execution. + 'Docker Enterprise Edition can be installed on the following operating + systems: CentOS 7.1+, Red Hat Enterprise Linux 7.0+, Ubuntu 14.04 + LTS+, SUSE Linux Enterprise 12+ and Windows Server 2016+. In order to + meet the requirements of this control, reference the chosen operating + system's security documentation for information regarding the + protection of memory from unauthorized code execution.' + parameters: + - key: "SI-16" + text: | + "Windows protections, including No Execute, Address Space Layout + Randomization, and Data Execution Prevention" standard_key: NIST-800-53 diff --git a/opencontrol/components/UCP/component.yaml b/opencontrol/components/UCP/component.yaml index 9b11558..841ad30 100644 --- a/opencontrol/components/UCP/component.yaml +++ b/opencontrol/components/UCP/component.yaml @@ -3,27 +3,31 @@ schema_version: 3.1.0 name: Universal Control Plane (UCP) references: - name: UCP Documentation - path: https://docs.docker.com/ucp/overview/ + path: https://docs.docker.com/datacenter/ucp/2.2/guides/ type: URL satisfies: - control_key: AC-2 (1) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - text: | 'To assist the organization in meeting the requirements of this control, supporting documentation for managing users and teams can found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/manage-users/create-and-manage-users/ - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/manage-users/create-and-manage-teams/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/create-and-manage-users/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/create-and-manage-teams/' standard_key: NIST-800-53 - control_key: AC-2 (7) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - key: a text: | @@ -31,13 +35,15 @@ satisfies: control, supporting documentation can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/manage-users/permission-levels/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/permission-levels/' standard_key: NIST-800-53 - control_key: AC-2 (12) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - text: | 'To assist the organization in meeting the requirements of this @@ -46,9 +52,20 @@ satisfies: Logstash and Kibana (ELK) stack. Supporting documentation can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/monitor-and-troubleshoot/ - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/monitor-and-troubleshoot/troubleshoot-with-logs/ - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/monitor-and-troubleshoot/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/monitor-and-troubleshoot/troubleshoot-node-messages/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/monitor-and-troubleshoot/troubleshoot-with-logs/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/monitor-and-troubleshoot/troubleshoot-configurations/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/monitor-and-troubleshoot/troubleshoot-task-state/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/ + - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Docker_Logging_Design_and_Best_Practices' + parameters: + - key: "AC-2(12)(a)" + text: | + "customer-defined atypical use" + - key: "AC-2(12)(b)" + text: | + "at a minimum, the ISSO and/or similar role within the organization" standard_key: NIST-800-53 - control_key: AC-3 @@ -56,7 +73,7 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | 'One can control which users and teams can create and manipulate @@ -65,29 +82,41 @@ satisfies: fine-grained access control. Supporting documentation can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/manage-users/ - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/manage-users/permission-levels/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/deploy-view-only-service/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/grant-permissions/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/isolate-nodes-between-teams/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/isolate-volumes-between-teams/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/manage-access-with-collections/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/access-control-node/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/permission-levels/ - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Docker_Datacenter_Best_Practices_and_Design_Considerations#RBAC_and_Managing_Team_Level_Access_to_Resources - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Securing_Docker_Datacenter_and_Security_Best_Practices#RBAC' standard_key: NIST-800-53 - control_key: AC-4 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'Supporting documentation to configure Universal Control Plane to meet the requirements of this control can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/architecture/ - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/install/system-requirements/#/ports-used - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/use-domain-names-to-access-services/ - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/restrict-services-to-worker-nodes/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/architecture/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/install/system-requirements/#ports-used + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/use-domain-names-to-access-services/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/restrict-services-to-worker-nodes/ - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Universal_Control_Plane_2.0_Service_Discovery_and_Load_Balancing - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Docker_Datacenter_Best_Practices_and_Design_Considerations#Infrastructure_Considerations - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Securing_Docker_Datacenter_and_Security_Best_Practices#Networking' + parameters: + - key: "AC-4" + text: | + "customer-defined information flow control policies" standard_key: NIST-800-53 - control_key: AC-4 (8) @@ -95,21 +124,31 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific - - configured by customer + - Docker EE system + - shared narrative: - text: | 'Supporting documentation to configure Universal Control Plane to meet the requirements of this control can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/architecture/ - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/install/system-requirements/#/ports-used - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/use-domain-names-to-access-services/ - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/restrict-services-to-worker-nodes/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/architecture/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/install/system-requirements/#/ports-used + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/use-domain-names-to-access-services/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/restrict-services-to-worker-nodes/ - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Universal_Control_Plane_2.0_Service_Discovery_and_Load_Balancing - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Docker_Datacenter_Best_Practices_and_Design_Considerations#Infrastructure_Considerations - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Securing_Docker_Datacenter_and_Security_Best_Practices#Networking' + parameters: + - key: "AC-4(8)(a)" + text: | + "FedRAMP assignment: security policy filters inherent in boundary + protection devices such as gateways, routers, guards, encrypted + tunnels, firewalls" + - key: "AC-4(8)(b)" + text: | + "FedRAMP assignment: information containing PII or organization + sensitive information types" standard_key: NIST-800-53 - control_key: AC-4 (21) @@ -117,21 +156,28 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific - - configured by customer + - Docker EE system + - shared narrative: - text: | 'Supporting documentation to configure Universal Control Plane to meet the requirements of this control can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/architecture/ - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/install/system-requirements/#/ports-used - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/use-domain-names-to-access-services/ - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/restrict-services-to-worker-nodes/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/architecture/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/install/system-requirements/#/ports-used + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/use-domain-names-to-access-services/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/restrict-services-to-worker-nodes/ - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Universal_Control_Plane_2.0_Service_Discovery_and_Load_Balancing - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Docker_Datacenter_Best_Practices_and_Design_Considerations#Infrastructure_Considerations - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Securing_Docker_Datacenter_and_Security_Best_Practices#Networking' + parameters: + - key: "AC-4(21)-1" + text: | + "customer-defined mechanisms and/or techniques" + - key: "AC-4(21)-2" + text: | + "customer-defined required separation by types of information" standard_key: NIST-800-53 - control_key: AC-5 @@ -139,7 +185,81 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid + narrative: + - text: | + 'To assist the organization in meeting the requirements of this + control, one can control which users and teams can create and + manipulate Universal Control Plane resources. By default, no one can + make changes to the cluster. Permissions can be granted and managed to + enforce fine-grained access control. Supporting documentation can be + found at the following resources: + + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/create-and-manage-users/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/permission-levels/ + - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Docker_Datacenter_Best_Practices_and_Design_Considerations#RBAC_and_Managing_Team_Level_Access_to_Resources + - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Securing_Docker_Datacenter_and_Security_Best_Practices#RBAC' + parameters: + - key: "AC-5(a)" + text: | + "customer-defined duties of individuals" + standard_key: NIST-800-53 + + - control_key: AC-6 + covered_by: [] + implementation_statuses: + - complete + control_origins: + - service provider hybrid + narrative: + - text: | + 'To assist the organization in meeting the requirements of this + control, one can control which users and teams can create and + manipulate Universal Control Plane resources and employ principles of + least privilege. By default, no one can make changes to the cluster. + Permissions can be granted and managed to enforce fine-grained access + control. Supporting documentation can be found at the following + resources: + + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/create-and-manage-users/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/permission-levels/ + - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Docker_Datacenter_Best_Practices_and_Design_Considerations#RBAC_and_Managing_Team_Level_Access_to_Resources + - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Securing_Docker_Datacenter_and_Security_Best_Practices#RBAC' + standard_key: NIST-800-53 + + - control_key: AC-6 (1) + covered_by: [] + implementation_statuses: + - complete + control_origins: + - service provider hybrid + narrative: + - text: | + 'To assist the organization in meeting the requirements of this + control, one can control which users and teams can create and + manipulate Universal Control Plane resources and explicitly authorize + access as necessary. By default, no one can make changes to the + cluster. Permissions can be granted and managed to enforce + fine-grained access control. Supporting documentation can be found at + the following resources: + + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/create-and-manage-users/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/permission-levels/ + - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Docker_Datacenter_Best_Practices_and_Design_Considerations#RBAC_and_Managing_Team_Level_Access_to_Resources + - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Securing_Docker_Datacenter_and_Security_Best_Practices#RBAC' + parameters: + - key: "AC-6(1)" + text: | + "FedRAMP assignment: all functions not publiclly accessible and all + security-relevant information not publicly available" + standard_key: NIST-800-53 + + - control_key: AC-6 (2) + covered_by: [] + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - text: | 'To assist the organization in meeting the requirements of this @@ -149,10 +269,98 @@ satisfies: enforce fine-grained access control. Supporting documentation can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/manage-users/ - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/manage-users/permission-levels/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/create-and-manage-users/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/permission-levels/ + - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Docker_Datacenter_Best_Practices_and_Design_Considerations#RBAC_and_Managing_Team_Level_Access_to_Resources + - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Securing_Docker_Datacenter_and_Security_Best_Practices#RBAC' + parameters: + - key: "AC-6(2)" + text: | + "FedRAMP requirement: all security functions" + standard_key: NIST-800-53 + + - control_key: AC-6 (3) + covered_by: [] + implementation_statuses: + - complete + control_origins: + - service provider hybrid + narrative: + - text: | + 'To assist the organization in meeting the requirements of this + control, one can control which users and teams can create and + manipulate Universal Control Plane resources, including Docker + networking components. By default, no one can make changes to the + cluster. Permissions can be granted and managed to enforce + fine-grained access control. Supporting documentation can be found at + the following resources: + + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/create-and-manage-users/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/permission-levels/ + - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Docker_Datacenter_Best_Practices_and_Design_Considerations#RBAC_and_Managing_Team_Level_Access_to_Resources + - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Securing_Docker_Datacenter_and_Security_Best_Practices#RBAC' + parameters: + - key: "AC-6(3)-1" + text: | + "privileged commands used to change/configure network devices" + - key: "AC-6(3)-2" + text: | + "customer-defined operational needs" + standard_key: NIST-800-53 + + - control_key: AC-6 (5) + covered_by: [] + implementation_statuses: + - complete + control_origins: + - service provider hybrid + narrative: + - text: | + 'To assist the organization in meeting the requirements of this + control, one can restrict privileged accounts within Universal Control + Plane to custom-defined roles. By default, no one can make changes to + the cluster. Permissions can be granted and managed to enforce + fine-grained access control. Supporting documentation can be found at + the following resources: + + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/create-and-manage-users/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/permission-levels/ + - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Docker_Datacenter_Best_Practices_and_Design_Considerations#RBAC_and_Managing_Team_Level_Access_to_Resources + - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Securing_Docker_Datacenter_and_Security_Best_Practices#RBAC' + parameters: + - key: "AC-6(5)" + text: | + "customer-defined personnel or roles" + standard_key: NIST-800-53 + + - control_key: AC-6 (7) + covered_by: [] + implementation_statuses: + - complete + control_origins: + - service provider hybrid + narrative: + - text: | + 'To assist the organization in meeting the requirements of this + control, one can review all implemented grants, accounts and roles + within Universal Control Plane and reassign/revoke privileges as + necessary. Supporting documentation can be found at the following + resources: + + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/create-and-manage-users/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/permission-levels/ - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Docker_Datacenter_Best_Practices_and_Design_Considerations#RBAC_and_Managing_Team_Level_Access_to_Resources - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Securing_Docker_Datacenter_and_Security_Best_Practices#RBAC' + parameters: + - key: "AC-6(7)(a)-1" + text: | + "at least annually" + - key: "AC-6(7)(a)-2" + text: | + "all users" standard_key: NIST-800-53 - control_key: AC-6 (8) @@ -160,7 +368,7 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | 'Universal Control Plane users can be assigned to one of a number of @@ -172,11 +380,40 @@ satisfies: roles cannot execute any Docker commands. Users assigned to the "Restricted Control" role can only run Docker commands under their own purview and cannot see other users UCP resources nor run commands that - required privileged access to the host. Additional documentation - regarding the various permission levels within UCP can be found at the - following resource: - - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/manage-users/permission-levels/' + required privileged access to the host. Furthermore, custom roles can + be created for fine-grained access to specific UCP resources and + functionality. Additional documentation regarding the various + permission levels within UCP can be found at the following resource: + + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/create-and-manage-users/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/permission-levels/ + - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Docker_Datacenter_Best_Practices_and_Design_Considerations#RBAC_and_Managing_Team_Level_Access_to_Resources + - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Securing_Docker_Datacenter_and_Security_Best_Practices#RBAC' + parameters: + - key: "AC-6(8)" + text: | + "FedRAMP assignment: any software except software explicitly + documented" + standard_key: NIST-800-53 + + - control_key: AC-6 (10) + covered_by: [] + implementation_statuses: + - complete + control_origins: + - Docker EE system + narrative: + - text: | + 'One can control which users and teams can create and manipulate + Universal Control Plane resources and prevent non-privileged users + from executing privileged functions per the requirements of this + control. By default, no one can make changes to the cluster. + Permissions can be granted and managed to enforce fine-grained access + control. Supporting documentation for the configuration of this + functionality can be found at the following resources: + + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/' standard_key: NIST-800-53 - control_key: AC-12 (1) @@ -184,17 +421,66 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | 'Universal Control Plane includes a logout capability that allows a user to terminate his/her current session.' + parameters: + - key: "AC-12(1)(a)" + text: | + "customer-defined information resources" + standard_key: NIST-800-53 + + - control_key: AC-14 + covered_by: [] + implementation_statuses: + - complete + control_origins: + - Docker EE system + narrative: + - text: | + 'To help the organization meet the requirements of this control, a + review of actions allowed by unauthenticated users can be performed + within Universal Control Plane.' + parameters: + - key: "AC-14(a)" + text: | + "customer-defined user actions" + standard_key: NIST-800-53 + + - control_key: AC-17 + covered_by: [] + implementation_statuses: + - complete + control_origins: + - service provider hybrid + narrative: + - text: | + 'To help the organization meet the requirements of this control, + Universal Control Plane can be configured to allow/prohibit remote + access.' + standard_key: NIST-800-53 + + - control_key: AC-17 (1) + covered_by: [] + implementation_statuses: + - complete + control_origins: + - Docker EE system + narrative: + - text: | + 'Universal Control Plane logs and controls all local and remote + access events. In addition, auditing can be configured on the + underlying operating system to meet this control.' standard_key: NIST-800-53 - control_key: AC-17 (2) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'All remote access sessions to Universal Control Plane are protected @@ -207,20 +493,47 @@ satisfies: - control_key: AC-17 (3) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - text: | 'A combination of managed load balancers, firewalls and access control lists, and virtual networking resources can be used to ensure traffic destined for Universal Control Plane managers and worker nodes is routed through managed network access control points.' + parameters: + - key: "AC-17(3)" + text: | + "customer-defined" + standard_key: NIST-800-53 + + - control_key: AC-17 (4) + covered_by: [] + implementation_statuses: + - complete + control_origins: + - service provider hybrid + narrative: + - text: | + 'To help the organization meet the requirements of this control, + Universal Control Plane can be configured to authorize certain + privileged functions via remote access.' + parameters: + - key: "AC-17(4)(a)" + text: | + "customer-defined needs" standard_key: NIST-800-53 - control_key: AC-17 (9) covered_by: [] - implementation_status: complete - control_origin: "configured by customer" + implementation_statuses: + - complete + - partial + control_origins: + - service provider hybrid + - configured by customer narrative: - text: | 'Built-in firewall technology in Universal Control Plane's underlying @@ -229,12 +542,66 @@ satisfies: or drain a node in the cluster, which subsequently stops and/or removes sessions to the node. Individual services and/or applications running on a UCP cluster can also be stopped and/or removed.' + parameters: + - key: "AC-17(9)" + text: | + "FedRAMP requirement: no greater than fifteen minutes" + standard_key: NIST-800-53 + + - control_key: AC-20 + covered_by: [] + implementation_statuses: + - complete + control_origins: + - service provider hybrid + narrative: + - text: | + 'To help the organization meet the requirements of this control, one + can control which external systems can access Universal Control + Plane.' + standard_key: NIST-800-53 + + - control_key: AC-20 (1) + covered_by: [] + implementation_statuses: + - complete + control_origins: + - service provider hybrid + narrative: + - text: | + 'To help the organization meet the requirements of this control, one + can control which external systems can access Universal Control + Plane.' + standard_key: NIST-800-53 + + - control_key: AC-21 + covered_by: [] + implementation_statuses: + - complete + control_origins: + - service provider hybrid + - shared + narrative: + - text: | + 'To help the organization meet the requirements of this control, one + can validate the assigned roles and access levels within Universal + Control Plane to control information sharing.' + parameters: + - key: "AC-21(a)" + text: | + "customer-defined information sharing circumstances" + - key: "AC-21(b)" + text: | + "customer-defined automated mechanisms or manual processes" standard_key: NIST-800-53 - control_key: AU-2 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid + - shared narrative: - key: a text: | @@ -244,13 +611,30 @@ satisfies: logs event data. Supporting documentation for configuring UCP logging can be referenced at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-2(a)" + text: | + "FedRAMP requirement: successful and unsuccessful account logon + events, account management events, object access, policy change, + privileged functions, process tracking, and system events. For Web + applications: all administrator activity, authentication checks, + authorization checks, data deletions, data access, data changes, and + permission changes" + - key: "AU-2(d)" + text: | + "FedRAMP requirement: organization-defined subset of the auditable + events defined in AU-2-a. to be audited continually for each + identified event" standard_key: NIST-800-53 - control_key: AU-3 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system + - shared narrative: - text: | 'Universal Control Plane generates all of the audit record information @@ -265,8 +649,11 @@ satisfies: - control_key: AU-3 (1) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system + - shared narrative: - text: | 'Universal Control Plane can be configured to log data to a remote @@ -275,7 +662,15 @@ satisfies: audit records. Additional documentation can be found at the following resource: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-3(1)" + text: | + "FedRAMP requirement: session, connection, trasaction, or activity + duration; for client-server transactions, the number of bytes received + and bytes sent, additional informational messages to diagnose or + identify the event, characteristics that describe or identify the + object or resource being acted upon" standard_key: NIST-800-53 - control_key: AU-3 (2) @@ -283,7 +678,8 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | 'Universal Control Plane can be configured to log data to a remote @@ -292,7 +688,11 @@ satisfies: audit records. Additional documentation can be found at the following resource: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-3(2)" + text: | + "all network, data storage, and computing devices" standard_key: NIST-800-53 - control_key: AU-5 @@ -306,7 +706,15 @@ satisfies: alert individuals in the event of log processing failures. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-5(a)" + text: | + "customer-defined personnel or roles" + - key: "AU-5(b)" + text: | + "FedRAMP requirement: low-impact: overwrite oldest audit records; + moderate-impact: shut down" standard_key: NIST-800-53 - control_key: AU-5 (1) @@ -314,7 +722,8 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | 'Universal Control Plane can be configured to log data to a remote @@ -322,7 +731,17 @@ satisfies: warn the organization when the allocated log storage is full. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-5(1)-1" + text: | + "appropriate service team personnel, customer-defined personnel" + - key: "AU-5(1)-2" + text: | + "24 hours, customer-defined time period" + - key: "AU-5(1)-3" + text: | + "a service team defined percentage, customer-defined percentage" standard_key: NIST-800-53 - control_key: AU-5 (2) @@ -330,7 +749,8 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | 'Universal Control Plane can be configured to log data to a remote @@ -338,7 +758,18 @@ satisfies: warn the organization when audit log failures occur. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-5(2)-1" + text: | + "real-time" + - key: "AU-5(2)-2" + text: | + "appropriate service team personnel" + - key: "AU-5(2)-3" + text: | + "events defined by each service team, audit failure events requiring + real-time alerts, as defined by organization audit policy" standard_key: NIST-800-53 - control_key: AU-6 (4) @@ -346,7 +777,8 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | 'Universal Control Plane can be configured to log data to a remote @@ -354,13 +786,16 @@ satisfies: analyze all of the Docker EE audit records. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' standard_key: NIST-800-53 - control_key: AU-7 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system + - shared narrative: - key: a text: | @@ -370,7 +805,7 @@ satisfies: this control. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' - key: b text: | 'The underlying operating system chosen to support Universal Control @@ -380,8 +815,11 @@ satisfies: - control_key: AU-7 (1) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system + - shared narrative: - text: | 'Universal Control Plane can be configured to log data to a remote @@ -389,13 +827,19 @@ satisfies: parse information by organization-defined audit fields. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-7(1)" + text: | + "customer-defined audit fields within audit records" standard_key: NIST-800-53 - control_key: AU-8 covered_by: [] - implementation_status: complete - control_origin: "configured by customer" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - key: a text: | @@ -407,12 +851,18 @@ satisfies: should be configured such that its system clock uses Coordinated Universal Time (UTC) as indicated by this control. Refer to the operating system's instructions for doing so.' + parameters: + - key: "AU-8(b)" + text: | + "millisecond precision" standard_key: NIST-800-53 - control_key: AU-8 (1) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - key: a text: | @@ -430,12 +880,25 @@ satisfies: time period. This can be accomplished by utilizing the Network Time Protocol (NTP). Refer to the operating system's instructions for doing so.' + parameters: + - key: "AU-8(1)(a)-1" + text: | + "FedRAMP requirement: at least hourly" + - key: "AU-8(1)(a)-2" + text: | + "FedRAMP requirement: authoritative time source: + http://tf.nist.gov/tf-cgi/servers.cgi" + - key: "AU-8(1)(b)" + text: | + "customer-defined" standard_key: NIST-800-53 - control_key: AU-9 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - text: | 'By default, Universal Control Plane is configured to use the @@ -452,79 +915,96 @@ satisfies: - control_key: AU-9 (2) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - text: | 'Universal Control Plane can be configured to send logs to a remote - logging stack. Additional information can be found at the following - resources: + logging stack. The logging stack can subsequently be configured to + back up audit records per the schedule defined by this control. + Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/ - - The logging stack can subsequently be configured to back up audit - records per the schedule defined by this control.' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-9(2)" + text: | + "FedRAMP requirement: at least weekly" standard_key: NIST-800-53 - - control_key: AU-9 (2) + - control_key: AU-9 (3) covered_by: [] implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | 'Universal Control Plane can be configured to send logs to a remote - logging stack. Additional information can be found at the following - resources: + logging stack. The logging stack can subsequently be configured to + meet the encryption mechanisms required by this control. Additional + information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/ - - The logging stack can subsequently be configured to meet the - encryption mechanisms required by this control.' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' standard_key: NIST-800-53 - control_key: AU-11 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid + - shared narrative: - text: | 'The organization will be responsible for meeting the requirements of this control. To assist with these requirements, Universal Control - Plane can be configured to send logs to a remote logging stack. - Additional information can be found at the following resources: - - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/ + Plane can be configured to send logs to a remote logging stack. This + logging stack can subsequently be configured retain logs for the + duration required by this control. Additional information can be found + at the following resources: - This logging stack can subsequently be configured retain logs for the - duration required by this control.' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-11" + text: | + "FedRAMP requirement: at least one year" standard_key: NIST-800-53 - control_key: AU-12 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system + - shared narrative: - key: a text: | 'All of the event types indicated by AU-2 a. are logged by the backend ucp-controller service within Universal Control Plane. In addition, each container created on a Universal Control Plane cluster logs event - data. Additional information can be found at the following resources: - - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/ + data. The underlying Linux operating system supporting UCP can be + configured to audit Docker-specific events with the auditd daemon. + Refer to the specific Linux distribution in use for instructions on + configuring this service. Additional information can be found at the + following resources: - The underlying Linux operating system supporting UCP can be configured - to audit Docker-specific events with the auditd daemon. Refer to the - specific Linux distribution in use for instructions on configuring - this service.' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' - key: b text: | 'Using auditd on the Linux operating system supporting UCP, the organization can configure audit rules to select which Docker-specific events are to be audited. Refer to the specific Linux distribution in use for instructions on configuring this service.' + parameters: + - key: "AU-12(a)" + text: | + "FedRAMP requirement: at least every 3 years" + - key: "AU-12(b)" + text: | + "customer-defined personnel or roles" standard_key: NIST-800-53 - control_key: AU-12 (1) @@ -532,18 +1012,24 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | 'Universal Control Plane can be configured to send logs to a remote - logging stack. Additional information can be found at the following - resources: - - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/ + logging stack. This logging stack can subsequently be used to compile + audit records in to a system-wide audit trail that is time-correlated + per the requirements of this control. Additional information can be + found at the following resources: - This logging stack can subsequently be used to compile audit records - in to a system-wide audit trail that is time-correlated per the - requirements of this control.' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-12(1)-1" + text: | + "all network, data storage, and computing devices" + - key: "AU-12(1)-2" + text: | + "1 millisecond, organization-defined level of tolerance" standard_key: NIST-800-53 - control_key: AU-12 (3) @@ -551,87 +1037,150 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid + - shared narrative: - text: | 'Universal Control Plane can be configured to send logs to a remote - logging stack. Additional information can be found at the following - resources: - - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/ + logging stack. This logging stack can subsequently be used to meet the + requirements of this control. Additional information can be found at + the following resources: - This logging stack can subsequently be used to meet the requirements - of this control.' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' + parameters: + - key: "AU-12(3)-1" + text: | + "service team members with audit configuration responsibilities" + - key: "AU-12(3)-2" + text: | + "all network, data storage, and computing devices" + - key: "AU-12(3)-3" + text: | + "changes to the thread environment, organization-defined threat + situations" + - key: "AU-12(3)-4" + text: | + "risk-based assessment, organization-defined time thresholds" standard_key: NIST-800-53 - control_key: CM-5 (1) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'Role-based access control can be configured within Universal Control Plane to meet the requirements of this control. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/manage-users/ - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/manage-users/permission-levels/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/ - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Docker_EE_Best_Practices_and_Design_Considerations#RBAC_and_Managing_Team_Level_Access_to_Resources - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Securing_Docker_EE_and_Security_Best_Practices#RBAC' standard_key: NIST-800-53 - control_key: CM-5 (3) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provide hybrid + - shared narrative: - text: | - 'Docker Content Trust is a capability provided by Docker Enterprise Edition - that enforces client-side signing and verification of Docker image - tags. It provides the ability to use digital signatures for data sent - to and received from Docker Trusted Registry and the public Docker - Store. These signatures allow client-side verification of the + 'Docker Content Trust is a capability provided by Docker Enterprise + Edition that enforces client-side signing and verification of Docker + image tags. It provides the ability to use digital signatures for data + sent to and received from Docker Trusted Registry and the public + Docker Store. These signatures allow client-side verification of the integrity and publisher of specific image tags. All Universal Control Plane Docker images are officially signed and verified by Docker, Inc. When configuring Universal Control Plane, you should enforce applications to only use Docker images signed by trusted UCP users - within your organization. Additional information can be found at the following resources: + within your organization. Additional information can be found at the + following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/user/content-trust/ - - https://docs.docker.com/datacenter/ucp/2.1/guides/user/content-trust/manage-trusted-repositories/ - - https://docs.docker.com/datacenter/ucp/2.1/guides/user/content-trust/continuous-integration/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/run-only-the-images-you-trust/' + parameters: + - key: "CM-5(3)" + text: | + "customer-defined software" standard_key: NIST-800-53 - control_key: CM-6 (1) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - text: | 'The organization is responsible for meeting the requirements of this - control. To assist with these requirements, the organization can - incorporate the use of an external configuration management system to - meet the requirements of this control.' + control. To assist with these requirements, the organization can + incorporate the use of an external configuration management system to + meet the requirements of this control. Universal Control Plane''s + configuration can also be managed, backed up and stored in another + location per the requirements of this control. Additional documentation + can be found at the following resources: + + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/ucp-configuration-file/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/backups-and-disaster-recovery/' + parameters: + - key: "CM-6(1)" + text: | + "customer-defined information system components" + standard_key: NIST-800-53 + + - control_key: CM-7 (1) + covered_by: [] + implementation_statuses: + - complete + control_origins: + - service provider corporate + - Docker EE system + - service provider hybrid + narrative: + - key: b + text: | + 'To help the organization meet the requirements of this control, + Universal Control Plane includes a robust access control model to + disable any functionality as mandated by this control.' + parameters: + - key: "CM-7(1)(b)" + text: | + "customer-defined functions, ports, protocols, and services within the + information system deemed to be unnecessary and/or nonsecure" standard_key: NIST-800-53 - control_key: CM-7 (2) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'In order to restrict which Docker images can be used to deploy - applications to Universal Control Plane, the organization must define a + applications to Universal Control Plane, the organization can define a list of allowed base Docker images and make them available via Docker - Trusted Registry. The organization must also prevent users from being + Trusted Registry. The organization can also prevent users from being able to pull Docker images from untrusted sources.' + parameters: + - key: "CM-7(2)" + text: | + "customer-defined policies regarding software program usage or + restrictions" standard_key: NIST-800-53 - control_key: CM-7 (5) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid + - shared narrative: - key: a text: | @@ -653,13 +1202,20 @@ satisfies: specific Teams at runtime. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/user/content-trust/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/run-only-the-images-you-trust/' + parameters: + - key: "CM-7(5)(a)" + text: | + "customer-defined software programs authorized to execute on the + information system" standard_key: NIST-800-53 - control_key: CP-10 (2) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'Universal Control Plane maintains its cluster state via an internal @@ -667,14 +1223,16 @@ satisfies: recovered. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/backups-and-disaster-recovery/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/backups-and-disaster-recovery/ - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Docker_EE_Best_Practices_and_Design_Considerations#UCP_Backup' standard_key: NIST-800-53 - control_key: IA-2 (5) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - text: | 'The organization is responsible for meeting the requirements of this @@ -686,21 +1244,25 @@ satisfies: - control_key: IA-3 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'In order for nodes to join a Universal Control Plane cluster, they must be identified and authenticated via either a manager or worker token. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/scale-your-cluster/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/scale-your-cluster/' standard_key: NIST-800-53 - control_key: IA-5 (2) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - key: a text: | @@ -733,13 +1295,15 @@ satisfies: certificates can also be revoked and updated. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.0/guides/configuration/#/replace-the-server-certificates' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/use-your-own-tls-certificates/' standard_key: NIST-800-53 - control_key: IA-6 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'Universal Control Plane obscures all feedback of authentication @@ -749,8 +1313,10 @@ satisfies: - control_key: IA-7 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'All access to Universal Control Plane is protected with Transport @@ -761,8 +1327,10 @@ satisfies: - control_key: IA-8 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'Users managed by Universal Control Plane can be grouped per the @@ -772,8 +1340,10 @@ satisfies: - control_key: SA-10 (1) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - service provider hybrid narrative: - text: | 'The organization is responsible for meeting the requirements of this @@ -788,13 +1358,15 @@ satisfies: Plane can be configured to only run trusted and signed images. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/run-only-the-images-you-trust/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/run-only-the-images-you-trust/' standard_key: NIST-800-53 - control_key: SC-2 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'Universal Control Plane is made up of a number of backend services @@ -803,14 +1375,16 @@ satisfies: operates independently of one another. Additional information can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/architecture/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/architecture/ - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Docker_EE_Best_Practices_and_Design_Considerations#Universal_Control_Plane' standard_key: NIST-800-53 - control_key: SC-23 covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'All remote access sessions to Universal Control Plane are protected @@ -823,8 +1397,10 @@ satisfies: - control_key: SC-28 (1) covered_by: [] - implementation_status: complete - control_origin: "service provider system specific" + implementation_statuses: + - complete + control_origins: + - Docker EE system narrative: - text: | 'All remote access sessions to Universal Control Plane are protected @@ -833,6 +1409,13 @@ satisfies: user interface and for command-line based connections to the cluster. In addition to this, all communication to UCP is enforced by way of two-way mutual TLS authentication.' + parameters: + - key: "SC-28(1)-1" + text: | + "customer data" + - key: "SC-28(1)-2" + text: | + "CSP servers" standard_key: NIST-800-53 - control_key: SI-11 @@ -840,11 +1423,15 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | 'All error messages generated via the configured logging mechanism of Universal Control Plane are displayed such that they meet the requirements of this control. Only users that are authorized the appropriate level of access can view these error messages.' + parameters: + - key: "SI-11(b)" + text: | + "authorized service personnel and CSP users" standard_key: NIST-800-53 diff --git a/opencontrol/components/eNZi/component.yaml b/opencontrol/components/eNZi/component.yaml index b70a6e1..052f5be 100644 --- a/opencontrol/components/eNZi/component.yaml +++ b/opencontrol/components/eNZi/component.yaml @@ -11,20 +11,18 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | - To assist the organization in meeting the requirements of - this control, one can control which users and teams are allowed to - create and manipulate Docker Enterprise Edition resources. By default, no one + 'To assist the organization in meeting the requirements of this + control, one can control which users and teams are allowed to create + and manipulate Docker Enterprise Edition resources. By default, no one can make changes to the cluster. Permissions can be granted and managed to enforce fine-grained access control. Supporting documentation can found at the following resources: - - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/manage-users/ - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/manage-users/permission-levels/ - - https://docs.docker.com/datacenter/dtr/2.2/guides/admin/manage-users/ - - https://docs.docker.com/datacenter/dtr/2.2/guides/admin/manage-users/permission-levels/ + + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/ + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/manage-users/' standard_key: NIST-800-53 - control_key: AC-2 @@ -32,8 +30,7 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific - - configured by customer + - service provider hybrid narrative: - text: | 'To assist the organization in meeting the requirements of this @@ -42,7 +39,7 @@ satisfies: this control and can be integrated with Docker Enterprise Edition. Supporting documentation can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/external-auth/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/external-auth/' standard_key: NIST-800-53 - control_key: AC-2 (1) @@ -50,8 +47,7 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific - - configured by customer + - service provider hybrid narrative: - text: | 'To assist the organization in meeting the requirements of this @@ -60,16 +56,15 @@ satisfies: this control and can be integrated with Docker Enterprise Edition. Supporting documentation can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/external-auth/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/external-auth/' standard_key: NIST-800-53 - control_key: AC-2 (2) covered_by: [] implementation_statuses: - - none + - complete control_origins: - - service provider system specific - - configured by customer + - service provider hybrid narrative: - text: | 'Using Docker Enterprise Edition''s LDAP integration capabilities, one @@ -79,16 +74,22 @@ satisfies: that user becomes inactive after the LDAP synchronization runs. Supporting documentation can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/external-auth/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/external-auth/' + parameters: + - key: "AC-2(2)-1" + text: "Selection (removes or disables)" + - key: "AC-2(2)-2" + text: | + "FedRAMP requirement: no more than 30 days for temporary and emergency + account types" standard_key: NIST-800-53 - control_key: AC-2 (3) covered_by: [] implementation_statuses: - - none + - complete control_origins: - - service provider system specific - - configured by customer + - service provider hybrid narrative: - text: | 'Using Docker Enterprise Edition''s LDAP integration capabilities, one @@ -97,7 +98,11 @@ satisfies: that user becomes inactive after the LDAP synchronization runs. Supporting documentation can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/external-auth/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/external-auth/' + parameters: + - key: "AC-2(3)" + text: | + "FedRAMP requirement: thirty-five (35) days for user accounts" standard_key: NIST-800-53 - control_key: AC-2 (4) @@ -105,7 +110,7 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | 'Docker Enterprise Edition logs various authentication and @@ -118,9 +123,14 @@ satisfies: control. Supporting documentation can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/monitor-and-troubleshoot/ - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/monitor-and-troubleshoot/troubleshoot-with-logs/ - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/configure/store-logs-in-an-external-system/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/monitor-and-troubleshoot/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/monitor-and-troubleshoot/troubleshoot-with-logs/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/ + - https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Docker_Logging_Design_and_Best_Practices' + parameters: + - key: "AC-2(4)" + text: | + "organization and/or service provider system owner" standard_key: NIST-800-53 - control_key: AC-2 (5) @@ -128,8 +138,7 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific - - configured by customer + - service provider hybrid narrative: - text: | 'To assist the organization in meeting the requirements of this @@ -139,6 +148,10 @@ satisfies: is set to 72 hours and the renewal session for a user''s session is set to 24 hours. These values can both be changed in the "Auth" section of the "Admin Settings" in Universal Control Plane.' + parameters: + - key: "AC-2(5)" + text: | + "inactivity is anticipated to exceed fifteen (15) minutes" standard_key: NIST-800-53 - control_key: AC-2 (7) @@ -146,7 +159,7 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | 'To assist the organization in meeting the requirements of this @@ -158,14 +171,16 @@ satisfies: cluster. Supporting documentation can be found at the following resources: - UCP: - - https://docs.docker.com/datacenter/ucp/2.1/guides/admin/manage-users/permission-levels/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/ - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Docker_Datacenter_Best_Practices_and_Design_Considerations#Identity_Management - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Securing_Docker_Datacenter_and_Security_Best_Practices#RBAC - - DTR: - - https://docs.docker.com/datacenter/dtr/2.2/guides/admin/manage-users/permission-levels/ + - https://docs.docker.com/datacenter/dtr/2.3/guides/admin/manage-users/ - https://success.docker.com/KBase/Docker_Reference_Architecture%3A_Securing_Docker_Datacenter_and_Security_Best_Practices#Organizations_.E2.80.94_RBAC' + parameters: + - key: "AC-2(7)(c)" + text: | + "FedRAMP assignment: disables/revokes access within an + organization-specified timeframe" standard_key: NIST-800-53 - control_key: AC-2 (9) @@ -173,13 +188,17 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific - - configured by customer + - service provider hybrid narrative: - text: | 'To assist the organization in meeting the requirements of this control, users and/or groups synchronized to Docker Enterprise Edition via LDAP can be configured at the directory service.' + parameters: + - key: "AC-2(9)" + text: | + "FedRAMP assignment: organization-defined need with justificatino + statement that explains why such accounts are necessary" standard_key: NIST-800-53 - control_key: AC-2 (10) @@ -187,12 +206,12 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific - - configured by customer + - service provider hybrid narrative: - text: | 'Users and/or groups synchronized to Docker Enterprise Edition via - LDAP can be configured at the directory service.' + LDAP can be configured at the directory service to ensure shared/group + account credentials are terminated when members leave the group.' standard_key: NIST-800-53 - control_key: AC-2 (11) @@ -200,13 +219,19 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific - - configured by customer + - service provider hybrid narrative: - text: | 'Information system accounts synchronized to Docker Enterprise Edition via LDAP can be configured at the directory service to meet this requirement as necessary.' + parameters: + - key: "AC-2(11)-1" + text: | + "customer-defined circumstances or usage conditions" + - key: "AC-2(11)-2" + text: | + "customer-defined accounts" standard_key: NIST-800-53 - control_key: AC-2 (12) @@ -214,14 +239,20 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific - - configured by customer + - service provider hybrid narrative: - text: | 'To assist the organization in meeting the requirements of this control, when Docker Enterprise Edition is configured for LDAP integration, one can refer to the directory service''s existing monitoring tools.' + parameters: + - key: "AC-2(12)(a)" + text: | + "customer-defined atypical use" + - key: "AC-2(12)(b)" + text: | + "at a minimum, the ISSO and/or similar role within the organization" standard_key: NIST-800-53 - control_key: AC-2 (13) @@ -229,13 +260,17 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific - - configured by customer + - service provider hybrid narrative: - text: | 'To assist the organization in meeting the requirements of this control, users and/or groups synchronized to Docker Enterprise Edition - via LDAP can be managed at the directory service.' + via LDAP can be managed at the directory service and disabled if + posing a significant risk.' + parameters: + - key: "AC-2(13)" + text: | + "one hour" standard_key: NIST-800-53 - control_key: AC-3 @@ -243,14 +278,17 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | 'One can control which users and teams can create and manipulate Docker Enterprise Edition resources. By default, no one can make changes to the cluster. Permissions can be granted and managed to enforce fine-grained access control. The eNZi component facilitates - authorizations as dictated by the system''s administrators.' + authorizations as dictated by the system''s administrators. Supporting + documentation can be found at the following resources: + + - https://docs.docker.com/datacenter/ucp/2.2/guides/access-control/' standard_key: NIST-800-53 - control_key: AC-6 (9) @@ -258,7 +296,7 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | 'Docker Enterprise Edition logs privileged user events to standard log @@ -270,27 +308,8 @@ satisfies: the events defined by this control. Supporting documentation regarding logging and monitoring can be found at the following resources: - - https://docs.docker.com/datacenter/ucp/2.0/guides/monitor/ - - https://docs.docker.com/datacenter/ucp/2.0/guides/configuration/configure-logs/' - standard_key: NIST-800-53 - - - control_key: AC-6 (10) - covered_by: [] - implementation_statuses: - - complete - control_origins: - - service provider system specific - narrative: - - text: | - 'One can control which users and teams can create and manipulate - Docker Enterprise Edition resources. By default, no one can make changes to - the cluster. Permissions can be granted and managed to enforce - fine-grained access control. Supporting documentation for the configuration of this functionality can be found at the following resources: - - - https://docs.docker.com/datacenter/ucp/2.0/guides/user-management/ - - https://docs.docker.com/datacenter/dtr/2.1/guides/user-management/ - - https://docs.docker.com/datacenter/ucp/2.0/guides/user-management/permission-levels/ - - https://docs.docker.com/datacenter/dtr/2.1/guides/user-management/permission-levels/' + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/monitor-and-troubleshoot/ + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/store-logs-in-an-external-system/' standard_key: NIST-800-53 - control_key: AC-7 @@ -298,13 +317,13 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - key: a text: | - 'When Docker Enterprise Edition is integrated to a directory service via LDAP, - one can reference the functionality of the directory service to - configure the enforcement of a limit to the number of conesecutive + 'When Docker Enterprise Edition is integrated to a directory service + via LDAP, one can reference the functionality of the directory service + to configure the enforcement of a limit to the number of conesecutive invalid logon attempts by a user during a specified time period.' - key: b text: | @@ -313,6 +332,50 @@ satisfies: to configure he ability to automatically lock/disable an account for a specified period of time after a consecutive invalid logon attempt limit is reached.' + parameters: + - key: "AC-7(a)-1" + text: | + "FedRAMP requirement: not more than three" + - key: "AC-7(a)-2" + text: | + "FedRAMP requirement: fifteen minutes" + - key: "AC-7(b)-1" + text: | + "FedRAMP requirement: locks the account/node for three hours" + - key: "AC-7(b)-2" + text: | + "customer-defined additional actions" + standard_key: NIST-800-53 + + - control_key: AC-8 + covered_by: [] + implementation_statuses: + - planned + control_origins: + - Docker EE system + narrative: + - key: a + text: | + 'The feature required to satisfy the requirements of this control has + not yet been built in to Docker EE but is planned for a future + release.' + - key: b + text: | + 'The feature required to satisfy the requirements of this control has + not yet been built in to Docker EE but is planned for a future + release.' + - key: c + text: | + 'The feature required to satisfy control has + not yet been built in to Docker EE but is planned for a future + release.' + parameters: + - key: "AC-8(a)" + text: | + "customer-defined system use notification banner" + - key: "AC-8(c)(1)" + text: | + "customer-defined conditions" standard_key: NIST-800-53 - control_key: AC-10 @@ -320,13 +383,19 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | 'Docker Enterprise Edition can be configured to limit the number of concurrent sessions for each account. These options can be found - within the Universal Control Plane Admin Settings under the "Auth" - section. ' + within the Universal Control Plane Admin Settings under the + "Authentication & Authorization" section. ' + parameters: + - key: "AC-10" + text: | + "customer-defined account and/or account type; FedRAMP requirement: + three sessions for privileged access and two sessions for + non-privileged access" standard_key: NIST-800-53 - control_key: AC-11 @@ -334,15 +403,20 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | - 'Per the requirements of AC-2 (5), Docker Enterprise Edition - can be configured to enforce user session lifetime limits and renewal + 'Per the requirements of AC-2 (5), Docker Enterprise Edition can be + configured to enforce user session lifetime limits and renewal thresholds. These options can be found within the Universal Control - Plane Admin Settings under the "Auth" section. Configurable options - include the initial lifetime (in hours) of a user''s session and the - renewal threshold of a session (in hours).' + Plane Admin Settings under the "Authentication & Authorization" + section. Configurable options include the initial lifetime (in hours) + of a user''s session and the renewal threshold of a session (in + hours).' + parameters: + - key: "AC-11(a)" + text: | + "FedRAMP requirement: fifteen minutes" standard_key: NIST-800-53 - control_key: AC-11 (1) @@ -350,17 +424,18 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | - 'Per the requirements of AC-2 (5), Docker Enterprise Edition - can be configured to enforce user session lifetime limits and renewal + 'Per the requirements of AC-2 (5), Docker Enterprise Edition can be + configured to enforce user session lifetime limits and renewal thresholds. These options can be found within the Universal Control - Plane Admin Settings under the "Auth" section. Configurable options - include the initial lifetime (in hours) of a user''s session and the - renewal threshold of a session (in hours). Upon the expiration of the - configured session thresholds, a user will be locked out of his/her - session.' + Plane Admin Settings under the "Authentication & Authorization" + section. Configurable options include the initial lifetime (in hours) + of a user''s session and the renewal threshold of a session (in + hours). Upon the expiration of the configured session thresholds, a + user will be locked out of his/her session per the requirements of + this controls.' standard_key: NIST-800-53 - control_key: AC-12 @@ -368,17 +443,21 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | - 'Per the requirements of AC-2 (5), Docker Enterprise Edition - can be configured to enforce user session lifetime limits and renewal + 'Per the requirements of AC-2 (5), Docker Enterprise Edition can be + configured to enforce user session lifetime limits and renewal thresholds. These options can be found within the Universal Control - Plane Admin Settings under the "Auth" section. Configurable options - include the initial lifetime (in hours) of a user''s session and the - renewal threshold of a session (in hours). Upon the expiration of the - configured session thresholds, a user will be locked out of his/her - session.' + Plane Admin Settings under the "Authentication & Authorization" + section. Configurable options include the initial lifetime (in hours) + of a user''s session and the renewal threshold of a session (in + hours). Upon the expiration of the configured session thresholds, a + user will be locked out of his/her session.' + parameters: + - key: "AC-12" + text: | + "customer-defined conditions or trigger events" standard_key: NIST-800-53 - control_key: AC-17 (1) @@ -386,12 +465,12 @@ satisfies: implementation_statuses: - complete control_origins: - - configured by customer + - Docker EE system narrative: - text: | - 'Docker Enterprise Edition logs and controls all local and remote access - events. In addition, auditing can be configured on the underlying - operating system to meet this control.' + 'Docker Enterprise Edition logs and controls all local and remote + access events. In addition, auditing can be configured on the + underlying operating system to meet this control.' standard_key: NIST-800-53 - control_key: AU-3 @@ -399,7 +478,8 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | 'Docker Enterprise Edition generates all of the audit record @@ -417,19 +497,22 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system + - shared narrative: - text: | - 'Docker Enterprise Edition can be configured to identify and authenticate - users via it's integrated support for LDAP. Users and groups managed - within the organization's LDAP directory service (e.g. Active - Directory) can be synchronized to UCP and DTR on a regular interval. When a - user is removed from the LDAP-backed directory, that user becomes - inactive within UCP and DTR. In addition, UCP and DTR teams can be mapped to groups - synchronized via LDAP. When a user is added/removed to/from the LDAP - group, that same user is automatically added/removed to/from the UCP and DTR - team. Instructions for configuring LDAP integration can be found at - https://docs.docker.com/datacenter/ucp/2.0/guides/configuration/integrate-with-ldap/.' + 'Docker Enterprise Edition can be configured to identify and + authenticate users via it''s integrated support for LDAP. Users and + groups managed within the organization''s LDAP directory service (e.g. + Active Directory) can be synchronized to UCP and DTR on a regular + interval. When a user is removed from the LDAP-backed directory, that + user becomes inactive within UCP and DTR. In addition, UCP and DTR + teams can be mapped to groups synchronized via LDAP. When a user is + added/removed to/from the LDAP group, that same user is automatically + added/removed to/from the UCP and DTR team. Additional information can + be found at the following resources: + + - https://docs.docker.com/datacenter/ucp/2.2/guides/admin/configure/external-auth/' standard_key: NIST-800-53 - control_key: IA-2 (5) @@ -437,14 +520,14 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | 'The organization is responsible for meeting the requirements of this - control. To assist with meeting these requirements, Docker Enterprise Edition - requires individual users to be authenticated in order to gain access - to the system. Any permissions granted to the team(s) that which the - user is a member are subsequently applied.' + control. To assist with meeting these requirements, Docker Enterprise + Edition requires individual users to be authenticated in order to gain + access to the system. Any permissions granted to the team(s) that + which the user is a member are subsequently applied.' standard_key: NIST-800-53 - control_key: IA-2 (8) @@ -452,13 +535,13 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | - 'Docker Enterprise Edition integrates with LDAP for authenticating users to an - external directory service. You should configure your external - directory service for ensuring that you are protected against replay - attacks.' + 'Docker Enterprise Edition integrates with LDAP for authenticating + users to an external directory service. You should configure your + external directory service for ensuring that you are protected against + replay attacks.' standard_key: NIST-800-53 - control_key: IA-2 (9) @@ -466,13 +549,13 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | - 'Docker Enterprise Edition integrates with LDAP for authenticating users to an - external directory service. You should configure your external - directory service for ensuring that you are protected against replay - attacks.' + 'Docker Enterprise Edition integrates with LDAP for authenticating + users to an external directory service. You should configure your + external directory service for ensuring that you are protected against + replay attacks.' standard_key: NIST-800-53 - control_key: IA-4 @@ -480,32 +563,42 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - key: c text: | 'The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external - directory service integrated with Docker Enterprise Edition via LDAP can be - configured to prevent the reuse of user identifiers for a specified - period of time. Refer to your directory service's documentation for - configuring this. + directory service integrated with Docker Enterprise Edition via LDAP + can be configured to prevent the reuse of user identifiers for a + specified period of time. Refer to your directory service''s + documentation for configuring this.' - key: d text: | 'The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external - directory service integrated with Docker Enterprise Edition via LDAP can be - configured to prevent the reuse of user identifiers for a specified - period of time. Refer to your directory service's documentation for - configuring this.' + directory service integrated with Docker Enterprise Edition via LDAP + can be configured to prevent the reuse of user identifiers for a + specified period of time. Refer to your directory service''s + documentation for configuring this.' - key: e text: | 'The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external - directory service integrated with Docker Enterprise Edition via LDAP can be - configured to prevent the reuse of user identifiers for a specified - period of time. Refer to your directory service's documentation for - configuring this.' + directory service integrated with Docker Enterprise Edition via LDAP + can be configured to prevent the reuse of user identifiers for a + specified period of time. Refer to your directory service''s + documentation for configuring this.' + parameters: + - key: "IA-4(a)" + text: | + "customer-defined personnel or roles" + - key: "IA-4(d)" + text: | + "FedRAMP requirement: at least two years" + - key: "IA-4(e)" + text: | + "FedRAMP requirement: thirty-five (35) days" standard_key: NIST-800-53 - control_key: IA-4 (4) @@ -513,15 +606,19 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | 'The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external - directory service integrated with Docker Enterprise Edition via LDAP can be - configured to uniquely identify each individual according to the - requirements of this control. Refer to your directory service's + directory service integrated with Docker Enterprise Edition via LDAP + can be configured to uniquely identify each individual according to + the requirements of this control. Refer to your directory service''s documentation for configuring this.' + parameters: + - key: "IA-4(4)" + text: | + "FedRAMP requirement: contractors, foreign nationals" standard_key: NIST-800-53 - control_key: IA-5 @@ -529,83 +626,87 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - key: b text: | 'The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external - directory service integrated with Docker Enterprise Edition via LDAP can be - configured to establish initial authenticator content according to the - requirements of this control. Refer to your directory service's + directory service integrated with Docker Enterprise Edition via LDAP + can be configured to establish initial authenticator content according + to the requirements of this control. Refer to your directory service''s documentation for configuring this.' - key: c text: | 'The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external - directory service integrated with Docker Enterprise Edition via LDAP can be - configured to enforce strength requirements for authenticators + directory service integrated with Docker Enterprise Edition via LDAP + can be configured to enforce strength requirements for authenticators according to the requirements of this control. Refer to your directory - service's documentation for configuring this.' + service''s documentation for configuring this.' - key: d text: | 'The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external - directory service integrated with Docker Enterprise Edition via LDAP can be - configured to distribute, redistribute, and revoke authenticators - according to the requirements of this control. Refer to your directory - service's documentation for configuring this.' + directory service integrated with Docker Enterprise Edition via LDAP + can be configured to distribute, redistribute, and revoke + authenticators according to the requirements of this control. Refer to + your directory service''s documentation for configuring this.' - key: e text: | 'The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external - directory service integrated with Docker Enterprise Edition via LDAP can be - configured to change default authenticator content according to the - requirements of this control. Refer to your directory service's + directory service integrated with Docker Enterprise Edition via LDAP + can be configured to change default authenticator content according to + the requirements of this control. Refer to your directory service''s documentation for configuring this.' - key: f text: | 'The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external - directory service integrated with Docker Enterprise Edition via LDAP can be - configured to set minimum and maximum lifetime restrictions and reuse - conditions for authenticators according to the requirements of this - control. Refer to your directory service's documentation for + directory service integrated with Docker Enterprise Edition via LDAP + can be configured to set minimum and maximum lifetime restrictions and + reuse conditions for authenticators according to the requirements of + this control. Refer to your directory service''s documentation for configuring this.' - key: g text: | 'The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external - directory service integrated with Docker Enterprise Edition via LDAP can be - configured to refresh authenticators at a regular cadence according to - the requirements of this control. Refer to your directory service's - documentation for configuring this.' + directory service integrated with Docker Enterprise Edition via LDAP + can be configured to refresh authenticators at a regular cadence + according to the requirements of this control. Refer to your directory + service''s documentation for configuring this.' - key: h text: | 'The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external - directory service integrated with Docker Enterprise Edition via LDAP can be - configured to protect authenticator content from unauthorized + directory service integrated with Docker Enterprise Edition via LDAP + can be configured to protect authenticator content from unauthorized disclosure or modification according to the requirements of this - control. Refer to your directory service's documentation for + control. Refer to your directory service''s documentation for configuring this.' - key: i text: | 'The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external - directory service integrated with Docker Enterprise Edition via LDAP can be - configured to implement specific security safeguards to protect + directory service integrated with Docker Enterprise Edition via LDAP + can be configured to implement specific security safeguards to protect authentications according to the requirements of this control. Refer - to your directory service's documentation for configuring this.' + to your directory service''s documentation for configuring this.' - key: j text: | 'The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external - directory service integrated with Docker Enterprise Edition via LDAP can be - configured to change authenticators for group or role accounts when - membership to those groups or roles changes according to the - requirements of this control. Refer to your directory service's + directory service integrated with Docker Enterprise Edition via LDAP + can be configured to change authenticators for group or role accounts + when membership to those groups or roles changes according to the + requirements of this control. Refer to your directory service''s documentation for configuring this.' + parameters: + - key: "IA-5(g)" + text: | + "FedRAMP requirement: 60 days for passwords" standard_key: NIST-800-53 - control_key: IA-5 (1) @@ -613,49 +714,64 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - key: a text: | 'An external directory service integrated with Docker Enterprise Edition via LDAP can be configured to enforce minimum password - complexity requirements. Refer to your directory service's + complexity requirements. Refer to your directory service''s documentation for configuring this.' - key: b text: | 'An external directory service integrated with Docker Enterprise Edition via LDAP can be configured to enforce the requirement to change at least one character when changing passwords according to the - requirements of this control. Refer to your directory service's + requirements of this control. Refer to your directory service''s documentation for configuring this.' - key: c text: | 'An external directory service integrated with Docker Enterprise Edition via LDAP can be configured to store and transmit cryptographically protected passwords according to the requirements of - this control. Refer to your directory service's documentation for + this control. Refer to your directory service''s documentation for configuring this.' - key: d text: | 'An external directory service integrated with Docker Enterprise Edition via LDAP can be configured to enforce the required minimum and maximum lifetime restrictions according to the requirements of this - control. Refer to your directory service's documentation for + control. Refer to your directory service''s documentation for configuring this.' - key: e text: | 'An external directory service integrated with Docker Enterprise Edition via LDAP can be configured to enforce the required number of generations before password reuse according to the requirements of - this control. Refer to your directory service's documentation for + this control. Refer to your directory service''s documentation for configuring this.' - key: f text: | 'An external directory service integrated with Docker Enterprise Edition via LDAP can be configured to enforce the requirement to change initial/temporary passwords upon first login according to the - requirements of this control. Refer to your directory service's + requirements of this control. Refer to your directory service''s documentation for configuring this.' + parameters: + - key: "IA-5(1)(a)" + text: | + "FedRAMP requirement: case-sensitive, minimum of fourteen (14) + characters, and at least one (1) each of upper-case letters, + lower-case letters, numbers, and special characters" + - key: "IA-5(1)(b)" + text: | + "FedRAMP requirement: at least fifty percent (50%)" + - key: "IA-5(1)(d)" + text: | + "FedRAMP requirement: one day minimum, sixty day maximum" + - key: "IA-5(1)(e)" + text: | + "FedRAMP requirement: twenty four" standard_key: NIST-800-53 - control_key: IA-5 (2) @@ -663,7 +779,7 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - key: a text: | @@ -702,7 +818,7 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | 'The organization is responsible for meeting the requirements of this @@ -711,6 +827,10 @@ satisfies: configured with automation to ensure that password authenticators meet strength requirements as defined by this control. Refer to your directory service's documentation for configuring this.' + parameters: + - key: "IA-5(4)" + text: | + "complexity as identified in IA-05 (1) Control Enhancement Part A" standard_key: NIST-800-53 - control_key: IA-5 (6) @@ -718,14 +838,15 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | 'The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external - directory service integrated with Docker Enterprise Edition via LDAP can be - configured to protect authenticators as required by this control. - Refer to your directory service's documentation for configuring this.' + directory service integrated with Docker Enterprise Edition via LDAP + can be configured to protect authenticators as required by this + control. Refer to your directory service's documentation for + configuring this.' standard_key: NIST-800-53 - control_key: IA-8 (2) @@ -733,13 +854,13 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | - 'An external directory service integrated with Docker Enterprise Edition via - LDAP can be configured to meet the FICAM requirements as indicated by - this control. Refer to your directory service's documentation for - configuring this.' + 'An external directory service integrated with Docker Enterprise + Edition via LDAP can be configured to meet the FICAM requirements as + indicated by this control. Refer to your directory service''s + documentation for configuring this.' standard_key: NIST-800-53 - control_key: IA-8 (3) @@ -747,15 +868,19 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | 'The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external - directory service integrated with Docker Enterprise Edition via LDAP can be - configured to meet the FICAM requirements as indicated by this - control. Refer to your directory service's documentation for + directory service integrated with Docker Enterprise Edition via LDAP + can be configured to meet the FICAM requirements as indicated by this + control. Refer to your directory service''s documentation for configuring this.' + parameters: + - key: "IA-8(3)" + text: | + "N/A" standard_key: NIST-800-53 - control_key: IA-8 (4) @@ -763,14 +888,14 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - service provider hybrid narrative: - text: | 'The organization is responsible for meeting the requirements of this control. To assist with meeting these requirements, an external - directory service integrated with Docker Enterprise Edition via LDAP can be - configured to meet the FICAM requirements as indicated by this - control. Refer to your directory service's documentation for + directory service integrated with Docker Enterprise Edition via LDAP + can be configured to meet the FICAM requirements as indicated by this + control. Refer to your directory service''s documentation for configuring this.' standard_key: NIST-800-53 @@ -779,7 +904,7 @@ satisfies: implementation_statuses: - complete control_origins: - - service provider system specific + - Docker EE system narrative: - text: | 'Docker Enterprise Edition invalidates session identifiers upon user diff --git a/validation/inspec/.dockerignore b/validation/inspec/.dockerignore new file mode 100644 index 0000000..fe233ba --- /dev/null +++ b/validation/inspec/.dockerignore @@ -0,0 +1,3 @@ +profile-attribute* +README.md +Makefile diff --git a/validation/inspec/Dockerfile b/validation/inspec/Dockerfile new file mode 100644 index 0000000..827af11 --- /dev/null +++ b/validation/inspec/Dockerfile @@ -0,0 +1,48 @@ +FROM chef/inspec + +# References https://github.com/docker-library/docker/blob/master/17.06/Dockerfile +RUN apk add --no-cache \ + ca-certificates + +ENV DOCKER_CHANNEL stable +ENV DOCKER_VERSION 17.06.1-ce +# TODO ENV DOCKER_SHA256 +# https://github.com/docker/docker-ce/blob/5b073ee2cf564edee5adca05eee574142f7627bb/components/packaging/static/hash_files !! +# (no SHA file artifacts on download.docker.com yet as of 2017-06-07 though) + +RUN set -ex; \ +# why we use "curl" instead of "wget": +# + wget -O docker.tgz https://download.docker.com/linux/static/stable/x86_64/docker-17.03.1-ce.tgz +# Connecting to download.docker.com (54.230.87.253:443) +# wget: error getting response: Connection reset by peer + apk add --no-cache --virtual .fetch-deps \ + curl \ + tar \ + ; \ + \ +# this "case" statement is generated via "update.sh" + apkArch="$(apk --print-arch)"; \ + case "$apkArch" in \ + x86_64) dockerArch='x86_64' ;; \ + s390x) dockerArch='s390x' ;; \ + *) echo >&2 "error: unsupported architecture ($apkArch)"; exit 1 ;;\ + esac; \ + \ + if ! curl -fL -o docker.tgz "https://download.docker.com/linux/static/${DOCKER_CHANNEL}/${dockerArch}/docker-${DOCKER_VERSION}.tgz"; then \ + echo >&2 "error: failed to download 'docker-${DOCKER_VERSION}' from '${DOCKER_CHANNEL}' for '${dockerArch}'"; \ + exit 1; \ + fi; \ + \ + tar --extract \ + --file docker.tgz \ + --strip-components 1 \ + --directory /usr/local/bin/ \ + ; \ + rm docker.tgz; \ + \ + apk del .fetch-deps; \ + \ + dockerd -v; \ + docker -v + +COPY FedRAMP/ /share/FedRAMP/ diff --git a/validation/inspec/FedRAMP/Moderate/controls/ucp.rb b/validation/inspec/FedRAMP/Moderate/controls/ucp.rb new file mode 100644 index 0000000..bce988e --- /dev/null +++ b/validation/inspec/FedRAMP/Moderate/controls/ucp.rb @@ -0,0 +1,232 @@ +# encoding: utf-8 +# copyright: 2017, Docker, Inc + +title 'Universal Control Plane' + +val_ucp_uri = attribute('ucpuri', description: 'UCP URI') +val_username = attribute('username', description: 'UCP username') +val_password = attribute('password', description: 'UCP password') +val_client_bundle_host = attribute('clientbundlehost', description: 'UCP client bundle host') +val_client_bundle_ca_cert = attribute('clientbundlecacert', description: 'Path to UCP client bundle CA cert') +val_client_bundle_cert = attribute('clientbundlecert', description: 'Path to UCP client bundle cert') +val_client_bundle_key = attribute('clientbundlekey', description: 'Path to UCp client bundle key') + +ucp_instance = ucp({ + "ucp_uri" => val_ucp_uri, + "username" => val_username, + "password" => val_password, + "client_bundle_host" => val_client_bundle_host, + "client_bundle_ca_cert" => val_client_bundle_ca_cert, + "client_bundle_cert" => val_client_bundle_cert, + "client_bundle_key" => val_client_bundle_key +}) + +describe ucp_instance do + its('version') { should eq('2.2.0') } +end + +control 'AC-2' do + impact 1.0 + title 'Ensure LDAP integration has been enabled' + desc ' + AC-2 Account Management: LDAP should be enabled and configured to help the + organization meet the requirements of this control + ' + describe ucp_instance do + it { should be_ldap_enabled } + end +end + +control 'AC-2 (1)' do + impact 1.0 + title 'Ensure LDAP integration has been enabled' + desc ' + AC-2 (1) Automated System Account Management: LDAP should be enabled and + configured to help the organization meet the requirements of this control + ' + describe ucp_instance do + it { should be_ldap_enabled } + end +end + +control 'AC-2 (2)' do + impact 1.0 + title 'Ensure LDAP integration has been enabled' + desc ' + AC-2 (2) Removal of Temporary/Emergency Accounts: LDAP should be enabled and + configured to help the organization meet the requirements of this control + ' + describe ucp_instance do + it { should be_ldap_enabled } + end +end + +control 'AC-2 (3)' do + impact 1.0 + title 'Ensure LDAP integration has been enabled' + desc ' + AC-2 (3) Disable Inactive Accounts: LDAP should be enabled and + configured to help the organization meet the requirements of this control + ' + describe ucp_instance do + it { should be_ldap_enabled } + end +end + +control 'AC-2 (4)' do + impact 1.0 + title 'Send logs to a remote logging server' + desc ' + AC-2 (4) Automated Audit Actions: UCP should be configured to send its logs + to a remote logging server + ' + describe ucp_instance do + it { should be_remote_logging_enabled } + end +end + +control 'AC-2 (5)' do + impact 1.0 + title 'Lifetime of user''s session should not exceed 15 minutes' + desc ' + AC-2 (5) Inactivity Logout: UCP should be configured such that the maximum + lifetime of a user''s session does not exceed 15 minutes + ' + describe ucp_instance do + its('auth_session_lifetime') { should be <= 15 } + its('auth_session_renewal_threshold') { should eq 0 } + end +end + +control 'AC-2 (9)' do + impact 1.0 + title 'Ensure LDAP integration has been enabled' + desc ' + AC-2 (9) Restrictions on Use of Shared/Group Accounts: LDAP should be + enabled and configured to help the organization meet the requirements of + this control + ' + describe ucp_instance do + it { should be_ldap_enabled } + end +end + +control 'AC-2 (10)' do + impact 1.0 + title 'Ensure LDAP integration has been enabled' + desc ' + AC-2 (10) Shared/Group Account Credential Termination: LDAP should be + enabled and configured to ensure shared/group account credentials + synchronized to UCP are terminated when members leave the group. + ' + describe ucp_instance do + it { should be_ldap_enabled } + end +end + +control 'AC-2 (11)' do + impact 1.0 + title 'Ensure LDAP integration has been enabled' + desc ' + AC-2 (11) Usage Conditions: LDAP should be enabled and configured to help + the organization meet the requirements of this control. + ' + describe ucp_instance do + it { should be_ldap_enabled } + end +end + +control 'AC-2 (12)' do + impact 1.0 + title 'Ensure LDAP integration has been enabled' + desc ' + AC-2 (12) Account Monitoring/Atypical Usage: LDAP and remote logging should + be enabled and configured to help the organization meet the requirements of + this control. + ' + describe ucp_instance do + it { should be_ldap_enabled } + it { should be_remote_logging_enabled } + end +end + +control 'AC-2 (13)' do + impact 1.0 + title 'Ensure LDAP integration has been enabled' + desc ' + AC-2 (13) Disable Accounts for High-Risk Individuals: LDAP integration + should be enabled and configured to help the organization meet the + requirements of this control. + ' + describe ucp_instance do + it { should be_ldap_enabled } + end +end + +control 'AC-6 (9)' do + impact 1.0 + title 'Send logs to a remote logging server' + desc ' + AC-6 (9) Auditing Use of Privileged Functions: UCP should be configured to + send its logs to a remote logging server so that the logs can be audited to + meet the requirements of this control. + ' + describe ucp_instance do + its('remote_logging_enabled?') { should be true } + end +end + +control 'AC-7' do + impact 1.0 + title 'Enforce unsuccessful logon attempts limits' + desc ' + AC-7 Unsuccessful Logon Attempts: LDAP integration should be enabled and UCP + should be configured to limit the allowed number of unsuccessful login + attempts. + ' + describe ucp_instance do + it { should be_ldap_enabled } + end +end + +control 'AC-10' do + impact 1.0 + title 'Enforce concurrent session limits' + desc ' + AC-10 Concurrent Session Control: LDAP integration should be enabled and UCP + should be configured to limit the allowed number of concurrent sessions to + no more than 3. + ' + describe ucp_instance do + it { should be_ldap_enabled } + its('auth_per_user_limit') { it should be <= 3 } + end +end + +control 'AC-11' do + impact 1.0 + title 'Enforce session lock timeout' + desc ' + AC-11 Session Lock: LDAP integration should be enabled and UCP should be + configured such that the maximum lifetime of a user''s session does not + exceed 15 minutes. + ' + describe ucp_instance do + it { should be_ldap_enabled } + its('auth_session_lifetime') { should be <= 15 } + its('auth_session_renewal_threshold') { should eq 0 } + end +end + +control 'AC-17 (1)' do + impact 1.0 + title 'Send logs to a remote logging server' + desc ' + AC-17 (1) Automated Monitoring/Control: UCP should be configured to send its + logs to a remote logging server so that the logs can be monitored to meet the + requirements of this control. + ' + describe ucp_instance do + its('remote_logging_enabled?') { should be true } + end +end diff --git a/validation/inspec/FedRAMP/Moderate/inspec.lock b/validation/inspec/FedRAMP/Moderate/inspec.lock new file mode 100644 index 0000000..e687b9b --- /dev/null +++ b/validation/inspec/FedRAMP/Moderate/inspec.lock @@ -0,0 +1,3 @@ +--- +lockfile_version: 1 +depends: [] diff --git a/validation/inspec/FedRAMP/Moderate/inspec.yml b/validation/inspec/FedRAMP/Moderate/inspec.yml new file mode 100644 index 0000000..83d503f --- /dev/null +++ b/validation/inspec/FedRAMP/Moderate/inspec.yml @@ -0,0 +1,8 @@ +name: Docker EE FedRAMP Moderate +title: Docker EE FedRAMP Moderate +maintainer: Andrew Weiss +copyright: Docker, Inc +copyright_email: compliance@docker.com +license: CC0-1.0 +summary: Docker EE FedRAMP Moderate InSpec Profile +version: 0.1.0 diff --git a/validation/inspec/FedRAMP/Moderate/libraries/.gitkeep b/validation/inspec/FedRAMP/Moderate/libraries/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/validation/inspec/FedRAMP/Moderate/libraries/Gemfile b/validation/inspec/FedRAMP/Moderate/libraries/Gemfile new file mode 100644 index 0000000..b372a5a --- /dev/null +++ b/validation/inspec/FedRAMP/Moderate/libraries/Gemfile @@ -0,0 +1,3 @@ +source 'https://rubygems.org' +gem 'inspec' +gem 'toml' diff --git a/validation/inspec/FedRAMP/Moderate/libraries/Gemfile.lock b/validation/inspec/FedRAMP/Moderate/libraries/Gemfile.lock new file mode 100644 index 0000000..137d2dd --- /dev/null +++ b/validation/inspec/FedRAMP/Moderate/libraries/Gemfile.lock @@ -0,0 +1,125 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.5.1) + public_suffix (~> 2.0, >= 2.0.2) + blankslate (2.1.2.4) + builder (3.2.3) + coderay (1.1.1) + diff-lcs (1.3) + docker-api (1.33.6) + excon (>= 0.38.0) + json + erubis (2.7.0) + excon (0.58.0) + faraday (0.12.1) + multipart-post (>= 1.2, < 3) + ffi (1.9.18) + gssapi (1.2.0) + ffi (>= 1.0.1) + gyoku (1.3.1) + builder (>= 2.1.2) + hashie (3.5.6) + htmlentities (4.3.4) + httpclient (2.8.3) + inspec (1.33.12) + addressable (~> 2.4) + faraday (>= 0.9.0) + hashie (~> 3.4) + htmlentities + json (>= 1.8, < 3.0) + method_source (~> 0.8) + mixlib-log + parallel (~> 1.9) + parslet (~> 1.5) + pry (~> 0) + rainbow (~> 2) + rspec (~> 3) + rspec-its (~> 1.2) + rubyzip (~> 1.1) + semverse + sslshake (~> 1.2) + thor (~> 0.19) + toml (~> 0.1) + train (~> 0.26) + json (2.0.2) + little-plugger (1.1.4) + logging (2.2.2) + little-plugger (~> 1.1) + multi_json (~> 1.10) + method_source (0.8.2) + mixlib-log (1.7.1) + mixlib-shellout (2.3.2) + multi_json (1.12.1) + multipart-post (2.0.0) + net-scp (1.2.1) + net-ssh (>= 2.6.5) + net-ssh (4.1.0) + nori (2.6.0) + parallel (1.12.0) + parslet (1.5.0) + blankslate (~> 2.0) + pry (0.10.4) + coderay (~> 1.1.0) + method_source (~> 0.8.1) + slop (~> 3.4) + public_suffix (2.0.5) + rainbow (2.2.2) + rake + rake (12.0.0) + rspec (3.6.0) + rspec-core (~> 3.6.0) + rspec-expectations (~> 3.6.0) + rspec-mocks (~> 3.6.0) + rspec-core (3.6.0) + rspec-support (~> 3.6.0) + rspec-expectations (3.6.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.6.0) + rspec-its (1.2.0) + rspec-core (>= 3.0.0) + rspec-expectations (>= 3.0.0) + rspec-mocks (3.6.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.6.0) + rspec-support (3.6.0) + rubyntlm (0.6.2) + rubyzip (1.2.1) + semverse (2.0.0) + slop (3.6.0) + sslshake (1.2.0) + thor (0.19.4) + toml (0.1.2) + parslet (~> 1.5.0) + train (0.26.0) + docker-api (~> 1.26) + json (>= 1.8, < 3.0) + mixlib-shellout (~> 2.0) + net-scp (~> 1.2) + net-ssh (>= 2.9, < 5.0) + winrm (~> 2.0) + winrm-fs (~> 1.0) + winrm (2.2.3) + builder (>= 2.1.2) + erubis (~> 2.7) + gssapi (~> 1.2) + gyoku (~> 1.0) + httpclient (~> 2.2, >= 2.2.0.2) + logging (>= 1.6.1, < 3.0) + nori (~> 2.0) + rubyntlm (~> 0.6.0, >= 0.6.1) + winrm-fs (1.0.1) + erubis (~> 2.7) + logging (>= 1.6.1, < 3.0) + rubyzip (~> 1.1) + winrm (~> 2.0) + +PLATFORMS + ruby + +DEPENDENCIES + inspec + toml + +BUNDLED WITH + 1.15.4 diff --git a/validation/inspec/FedRAMP/Moderate/libraries/inspec.lock b/validation/inspec/FedRAMP/Moderate/libraries/inspec.lock new file mode 100644 index 0000000..e687b9b --- /dev/null +++ b/validation/inspec/FedRAMP/Moderate/libraries/inspec.lock @@ -0,0 +1,3 @@ +--- +lockfile_version: 1 +depends: [] diff --git a/validation/inspec/FedRAMP/Moderate/libraries/ucp.rb b/validation/inspec/FedRAMP/Moderate/libraries/ucp.rb new file mode 100644 index 0000000..63da83a --- /dev/null +++ b/validation/inspec/FedRAMP/Moderate/libraries/ucp.rb @@ -0,0 +1,98 @@ +require 'net/http' +require 'json' +require 'uri' +require 'inspec' +require 'toml' + + +class UCP < Inspec.resource(1) + name 'ucp' + + desc ' + Universal Control Plane (UCP) API resource + ' + + example " + describe ucp('https://ucp_uri', 'username', 'password') do + its('version') { should eq ('2.2.0') } + end + " + + def initialize(args) + @ucp_uri = args["ucp_uri"].to_s.chomp('/') + username = args["username"].to_s + password = args["password"].to_s + @client_bundle_host = args["client_bundle_host"].to_s + @client_bundle_ca_cert = args["client_bundle_ca_cert"].to_s + @client_bundle_cert = args["client_bundle_cert"].to_s + @client_bundle_key = args["client_bundle_key"].to_s + if @ucp_uri.empty? || @ucp_uri !~ URI.regexp + return skip_resource "Invalid UCP URL #{@ucp_uri}" + end + unless File.file?(@client_bundle_ca_cert) + return skip_resource "Client bundle CA cert path #{@client_bundle_ca_cert} does not exist" + end + unless File.file?(@client_bundle_cert) + return skip_resource "Client bundle cert path #{@client_bundle_cert} does not exist" + end + unless File.file?(@client_bundle_key) + return skip_resource "Client bundle key path #{@client_bundle_key} does not exist" + end + begin + uri = URI("#{@ucp_uri}/auth/login") + auth_response = Net::HTTP.post(uri, { "username" => "#{username}", "password" => "#{password}" }.to_json, "Content-Type" => "application/json") + rescue StandardError + return skip_resource "Error getting auth token from UCP URI #{@ucp_uri}: #{$!}" + end + auth_response_json = JSON.parse(auth_response.body) + @auth_token = auth_response_json['auth_token'] + + ucp_config_command = inspec.command("docker -H #{@client_bundle_host} --tlsverify --tlscacert #{@client_bundle_ca_cert} --tlscert #{@client_bundle_cert} --tlskey #{@client_bundle_key} config inspect --format '{{ printf \"%s\" .Spec.Data }}' com.docker.ucp.config-1") + unless ucp_config_command.stderr.empty? + return skip_resource "Error connecting to UCP with client bundle: #{ucp_config_command.stderr}" + end + + @ucp_config_parsed = TOML.load(ucp_config_command.stdout) + if @ucp_config_parsed.nil? + return skip_resource "Unable to parse UCP config" + end + end + + def version + api_response = query_api('version') + return api_response['Version'].to_s.partition('ucp/').last + end + + def ldap_enabled? + api_response = query_api('enzi/v0/config/auth') + return api_response['backend'] == "ldap" ? true : false + end + + def remote_logging_enabled? + return !@ucp_config_parsed['log_configuration']['host'].empty? + end + + def auth_session_lifetime + return @ucp_config_parsed['auth']['sessions']['lifetime_minutes'] + end + + def auth_session_renewal_threshold + return @ucp_config_parsed['auth']['sessions']['renewal_threshold_minutes'] + end + + def auth_per_user_limit + return @ucp_config_parsed['auth']['sessions']['per_user_limit'] + end + + private + + def query_api(endpoint) + endpoint_uri = URI.parse("#{@ucp_uri}/#{endpoint}") + Net::HTTP.start(endpoint_uri.host, endpoint_uri.port, :use_ssl => true, :verify_mode => OpenSSL::SSL::VERIFY_NONE) do |http| + request = Net::HTTP::Get.new(endpoint_uri) + request['Authorization'] = "Bearer #{@auth_token}" + response = http.request(request) + return JSON.parse(response.body) + end + end +end \ No newline at end of file diff --git a/validation/inspec/Makefile b/validation/inspec/Makefile new file mode 100644 index 0000000..8f01f19 --- /dev/null +++ b/validation/inspec/Makefile @@ -0,0 +1,15 @@ +.PHONY: FedRAMP + +default: validate-fedramp-moderate + +validate-fedramp-moderate: + inspec exec FedRAMP/Moderate --attrs profile-attribute.yml + +validate-fedramp-high: + inspec exec FedRAMP/High --attrs profile-attribute.yml + +build-docker: + docker build -t docker/compliance-inspec . + +run-docker: build-docker + docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock -v "$$PWD":/share docker/compliance-inspec exec FedRAMP/Moderate --attrs profile-attribute.yml diff --git a/validation/inspec/README.md b/validation/inspec/README.md new file mode 100644 index 0000000..e5cc3ce --- /dev/null +++ b/validation/inspec/README.md @@ -0,0 +1,34 @@ +# Docker EE InSpec Profiles + +[InSpec](https://inspec.io), by Chef Software, is an open source command-line tool that can be used to audit many types of infrastructures against pre-defined security controls and benchmarks. + +Profiles are used by the InSpec tool to scan an active instance of Docker EE, Universal Control Plane and Docker Trusted Registry and ensure that all of the components have been configured to meet applicable security requirements and baselines. We've included the following InSpec profiles for Docker EE: + +- FedRAMP Moderate +- FedRAMP High + +## Using the InSpec tool + +You can download the InSpec tool at https://www.inspec.io/downloads/. If you prefer, you can also use the official Docker image ([chef/inspec](https://store.docker.com/community/images/chef/inspec)) to execute an audit. Refer to the [InSpec documentation](https://www.inspec.io/docs/) for full CLI usage instructions. + +Before you begin, you need to create a `profile-attribute.yml` file which contains your UCP and DTR login information. You can use the `profile-attribute.example.yml` file as an example. + +You can then use the InSpec commands below to audit your cluster at a chosen baseline: + +1. Set correct directory + + ```sh + cd validation/inspec + ``` + +2. Audit cluster at FedRAMP Moderate baseline + + ```sh + inspec exec FedRAMP/Moderate --attrs profile-attribute.yml + ``` + +We also maintain a Docker image that already includes our InSpec profiles and the InSpec CLI. If you prefer, you can use it as follows: + +```sh +docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock -v "$PWD":/share docker/compliance-inspec exec FedRAMP/Moderate --attrs profile-attribute.yml +``` diff --git a/validation/inspec/profile-attribute.example.yml b/validation/inspec/profile-attribute.example.yml new file mode 100644 index 0000000..f94a214 --- /dev/null +++ b/validation/inspec/profile-attribute.example.yml @@ -0,0 +1,7 @@ +ucpuri: '' # UCP URI +username: '' # UCP username +password: '' # UCP password +clientbundlehost: '' # UCP client bundle Docker host +clientbundlecacert: '' # UCP client bundle CA cert path +clientbundlecert: '' # UCP client bundle cert path +clientbundlekey: '' # UCP client bundle key path