diff --git a/features/fedramp_extensions.feature b/features/fedramp_extensions.feature index 29eefbf85..2866750ac 100644 --- a/features/fedramp_extensions.feature +++ b/features/fedramp_extensions.feature @@ -36,6 +36,7 @@ Examples: | cia-impact-has-selected | | cloud-service-model | | component-has-authentication-method | + | component-has-non-provider-responsible-role | | component-has-provider-responsible-role | | component-type | | control-implementation-status | @@ -114,6 +115,7 @@ Examples: | marking | | missing-response-components | | network-component-has-implementation-point | + | non-provider-responsible-role-references-user | | party-has-name | | privilege-level | | prop-response-point-has-cardinality-one | @@ -180,6 +182,8 @@ Examples: | cloud-service-model-PASS.yaml | | component-has-authentication-method-FAIL.yaml | | component-has-authentication-method-PASS.yaml | + | component-has-non-provider-responsible-role-FAIL.yaml | + | component-has-non-provider-responsible-role-PASS.yaml | | component-responsible-role-references-party-FAIL.yaml | | component-responsible-role-references-party-PASS.yaml | | component-type-FAIL.yaml | @@ -336,6 +340,8 @@ Examples: | missing-response-components-PASS.yaml | | network-component-has-implementation-point-FAIL.yaml | | network-component-has-implementation-point-PASS.yaml | + | non-provider-responsible-role-references-user-FAIL.yaml | + | non-provider-responsible-role-references-user-PASS.yaml | | party-has-name-FAIL.yaml | | party-has-name-PASS.yaml | | privilege-level-FAIL.yaml | diff --git a/src/validations/constraints/content/ssp-all-VALID.xml b/src/validations/constraints/content/ssp-all-VALID.xml index adb0d6c42..3980e921c 100644 --- a/src/validations/constraints/content/ssp-all-VALID.xml +++ b/src/validations/constraints/content/ssp-all-VALID.xml @@ -337,10 +337,16 @@

Some description of the external authentication method.

- + 11111111-0000-4000-9000-000000000001 + + 11111111-0000-4000-9000-000000000001 + + + + @@ -386,6 +392,9 @@ 11111111-0000-4000-9000-000000000001 + + 11111111-0000-4000-9000-000000000001 + diff --git a/src/validations/constraints/content/ssp-component-has-non-provider-responsible-role-INVALID.xml b/src/validations/constraints/content/ssp-component-has-non-provider-responsible-role-INVALID.xml new file mode 100644 index 000000000..ffed46f4a --- /dev/null +++ b/src/validations/constraints/content/ssp-component-has-non-provider-responsible-role-INVALID.xml @@ -0,0 +1,12 @@ + + + + + 11111111-0000-4000-9000-000000000001 + + + + + \ No newline at end of file diff --git a/src/validations/constraints/content/ssp-non-provider-responsible-role-references-user-INVALID.xml b/src/validations/constraints/content/ssp-non-provider-responsible-role-references-user-INVALID.xml new file mode 100644 index 000000000..3416c1cd0 --- /dev/null +++ b/src/validations/constraints/content/ssp-non-provider-responsible-role-references-user-INVALID.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/validations/constraints/fedramp-external-constraints.xml b/src/validations/constraints/fedramp-external-constraints.xml index 956ecbcb7..bd9f75b82 100644 --- a/src/validations/constraints/fedramp-external-constraints.xml +++ b/src/validations/constraints/fedramp-external-constraints.xml @@ -67,11 +67,19 @@ else if (system-characteristics/security-sensitivity-level = 'fips-199-moderate') then ('fips-199-moderate', 'fips-199-high') else ('fips-199-low', 'fips-199-moderate', 'fips-199-high')"/> + + + Component Has Authentication Method A FedRAMP SSP MUST include at least one authentication method for each leveraged system. + + Component Has Non-Provider Responsible Role + + A FedRAMP SSP MUST have each component describing leveraged systems, interconnections, or authorized services identify at least one responsible role other than "provider". + Component Has Provider Responsible Role @@ -109,7 +117,12 @@ Leveraged Authorization Has Valid Impact Level A FedRAMP SSP MUST define the appropriate FIPS-199 impact level (low, moderate, or high) for each leveraged authorization. - + + + Non-Provider Responsible Role References User + + A FedRAMP SSP MUST have each component describing leveraged systems, interconnections, or authorized services reference at least one user with an authorized privilege and function performed via the "privilege-uuid" property. + @@ -510,17 +523,17 @@ - + Authentication Method Has Remarks Each authentication method in a FedRAMP SSP MUST have a remarks field. - - System Implementation Has Inventory Items - - A FedRAMP SSP system implementation section MUST have at least two inventory items. - + + System Implementation Has Inventory Items + + A FedRAMP SSP system implementation section MUST have at least two inventory items. + Leveraged Authorization Has Authorization Type @@ -545,7 +558,7 @@

A FedRAMP SSP's inventory item MUST have an Asset ID that is unique across all inventory items in the system and its components.

-
+
diff --git a/src/validations/constraints/unit-tests/component-has-non-provider-responsible-role-FAIL.yaml b/src/validations/constraints/unit-tests/component-has-non-provider-responsible-role-FAIL.yaml new file mode 100644 index 000000000..8df5c3feb --- /dev/null +++ b/src/validations/constraints/unit-tests/component-has-non-provider-responsible-role-FAIL.yaml @@ -0,0 +1,9 @@ +test-case: + name: Negative Test for component-has-non-provider-responsible-role + description: >- + This test case validates the behavior of constraint + component-has-non-provider-responsible-role + content: ../content/ssp-component-has-non-provider-responsible-role-INVALID.xml + expectations: + - constraint-id: component-has-non-provider-responsible-role + result: fail diff --git a/src/validations/constraints/unit-tests/component-has-non-provider-responsible-role-PASS.yaml b/src/validations/constraints/unit-tests/component-has-non-provider-responsible-role-PASS.yaml new file mode 100644 index 000000000..1ef1f78c2 --- /dev/null +++ b/src/validations/constraints/unit-tests/component-has-non-provider-responsible-role-PASS.yaml @@ -0,0 +1,9 @@ +test-case: + name: Positive Test for component-has-non-provider-responsible-role + description: >- + This test case validates the behavior of constraint + component-has-non-provider-responsible-role + content: ../content/ssp-all-VALID.xml + expectations: + - constraint-id: component-has-non-provider-responsible-role + result: pass diff --git a/src/validations/constraints/unit-tests/non-provider-responsible-role-references-user-FAIL.yaml b/src/validations/constraints/unit-tests/non-provider-responsible-role-references-user-FAIL.yaml new file mode 100644 index 000000000..30cc42fe1 --- /dev/null +++ b/src/validations/constraints/unit-tests/non-provider-responsible-role-references-user-FAIL.yaml @@ -0,0 +1,9 @@ +test-case: + name: Negative Test for non-provider-responsible-role-references-user + description: >- + This test case validates the behavior of constraint + non-provider-responsible-role-references-user + content: ../content/ssp-non-provider-responsible-role-references-user-INVALID.xml + expectations: + - constraint-id: non-provider-responsible-role-references-user + result: fail diff --git a/src/validations/constraints/unit-tests/non-provider-responsible-role-references-user-PASS.yaml b/src/validations/constraints/unit-tests/non-provider-responsible-role-references-user-PASS.yaml new file mode 100644 index 000000000..688c8b4d5 --- /dev/null +++ b/src/validations/constraints/unit-tests/non-provider-responsible-role-references-user-PASS.yaml @@ -0,0 +1,9 @@ +test-case: + name: Positive Test for non-provider-responsible-role-references-user + description: >- + This test case validates the behavior of constraint + non-provider-responsible-role-references-user + content: ../content/ssp-all-VALID.xml + expectations: + - constraint-id: non-provider-responsible-role-references-user + result: pass