Control: 10 DMS endpoints for Neptune databases should have IAM authorization enabled
Description
This control checks whether an AWS DMS endpoint for an Amazon Neptune database is configured with IAM authorization. The control fails if the DMS endpoint doesn't have IAM authorization enabled.
AWS Identity and Access Management (IAM) provides fine-grained access control across AWS. With IAM, you can specify who can access which services and resources, and under which conditions. With IAM policies, you manage permissions to your workforce and systems to ensure least-privilege permissions. By enabling IAM authorization on AWS DMS endpoints for Neptune databases, you can grant authorization privileges to IAM users by using a service role specified by the ServiceAccessRoleARN parameter.
Remediation
To enable IAM authorization on DMS endpoints for Neptune databases, see Using Amazon Neptune as a target for AWS Database Migration Service in the AWS Database Migration Service User Guide.
Usage
Run the control in your terminal:
powerpipe control run aws_compliance.control.foundational_security_dms_10
Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run aws_compliance.control.foundational_security_dms_10 --share
SQL
This control uses a named query:
select arn as resource, case when endpoint_type <> 'TARGET' then 'skip' when neptune_settings is null then 'skip' when (neptune_settings -> 'IamAuthEnabled')::bool then 'ok' else 'alarm' end as status, case when endpoint_type <> 'TARGET' then title || ' endpoint is not of target type.' when neptune_settings is null then title || ' endpoint is not of neptune engine type.' when (neptune_settings -> 'IamAuthEnabled')::bool then title || ' IAM authorization for neptune database enabled.' else title || ' IAM authorization for neptune database disabled.' end as reason , region, account_idfrom aws_dms_endpoint;