Skip to main content
IAM Policy Map

AmazonDocDBElasticFullAccess

AdminAWS managedActiveReviewedShow on mapCompare

Summary

Provides full access to Amazon DocumentDB Elastic Clusters and other required permissions for its dependencies, including EC2, KMS, Secrets Manager, CloudWatch and IAM, as the AWS Managed Policy Reference Guide describes it.

Permissions imported from the AWS Managed Policy Reference Guide; other sections reviewed against the listed AWS sources.

Identity

ARN
arn:aws:iam::aws:policy/AmazonDocDBElasticFullAccess
Default version
v8
Created
Last edited
Services
cloudwatch, docdb-elastic, ec2, iam, kms, secretsmanager

Control-plane actions (38)

By access level: 11 List, 1 Permissions management, 8 Read, 2 Tagging, 16 Write.

Control-plane actions by service
ServiceGrantedAccess levels and limitsGranted by
DocumentDB Elastic ClustersAll 19 actions (see the DocumentDB Elastic Clusters page)4 List, 3 Read, 2 Tagging, 10 Write; 0 restricted, 0 conditionaldocdb-elastic:ApplyPendingMaintenanceAction, docdb-elastic:CopyClusterSnapshot, docdb-elastic:CreateCluster, docdb-elastic:CreateClusterSnapshot, docdb-elastic:DeleteCluster, docdb-elastic:DeleteClusterSnapshot, docdb-elastic:GetCluster, docdb-elastic:GetClusterSnapshot, docdb-elastic:GetPendingMaintenanceAction, docdb-elastic:ListClusterSnapshots, docdb-elastic:ListClusters, docdb-elastic:ListPendingMaintenanceActions and 7 more
EC29 of 8346 List, 3 Write; 9 restricted, 9 conditionalec2:CreateVpcEndpoint, ec2:DeleteVpcEndpoints, ec2:DescribeAvailabilityZones, ec2:DescribeSecurityGroups, ec2:DescribeSubnets, ec2:DescribeVpcAttribute, ec2:DescribeVpcEndpoints, ec2:DescribeVpcs, ec2:ModifyVpcEndpoint
IAM1 of 1901 Write; 1 restricted, 1 conditionaliam:CreateServiceLinkedRole
KMS4 of 581 Permissions management, 1 Read, 2 Write; 4 restricted, 4 conditionalkms:CreateGrant, kms:Decrypt, kms:DescribeKey, kms:GenerateDataKey
Secrets Manager5 of 271 List, 4 Read; 5 restricted, 5 conditionalsecretsmanager:DescribeSecret, secretsmanager:GetResourcePolicy, secretsmanager:GetSecretValue, secretsmanager:ListSecretVersionIds, secretsmanager:ListSecrets
EC2: 9 actions
  • ec2:CreateVpcEndpoint (Write)
  • ec2:DeleteVpcEndpoints (Write)
  • ec2:DescribeAvailabilityZones (List)
  • ec2:DescribeSecurityGroups (List)
  • ec2:DescribeSubnets (List)
  • ec2:DescribeVpcAttribute (List)
  • ec2:DescribeVpcEndpoints (List)
  • ec2:DescribeVpcs (List)
  • ec2:ModifyVpcEndpoint (Write)
IAM: 1 actions
  • iam:CreateServiceLinkedRole (Write)
KMS: 4 actions
  • kms:CreateGrant (Permissions management)
  • kms:Decrypt (Write)
  • kms:DescribeKey (Read)
  • kms:GenerateDataKey (Write)
Secrets Manager: 5 actions
  • secretsmanager:DescribeSecret (Read)
  • secretsmanager:GetResourcePolicy (Read)
  • secretsmanager:GetSecretValue (Read)
  • secretsmanager:ListSecretVersionIds (Read)
  • secretsmanager:ListSecrets (List)

Data-plane actions (3)

By access level: 1 List, 2 Read.

Data-plane actions by service
ServiceGrantedAccess levels and limitsGranted by
CloudWatch3 of 51 List, 2 Read; 0 restricted, 0 conditionalcloudwatch:GetMetricData, cloudwatch:GetMetricStatistics, cloudwatch:ListMetrics
CloudWatch: 3 actions
  • cloudwatch:GetMetricData (Read)
  • cloudwatch:GetMetricStatistics (Read)
  • cloudwatch:ListMetrics (List)

Excluded and conditional actions

No patterns are excluded by NotAction or Deny statements.

Resource scope and attachment

Resource scope across granted actions: mixed.

Can be attached: Yes, to users, groups and roles.

Why this tier

  • Grants at least 80% of the write and permissions-management actions of: docdb-elastic (10 of 10).

Guidance

Practical scope

The DocdbElasticSid statement allows 19 docdb-elastic actions on Resource "*", including CreateCluster, UpdateCluster, DeleteCluster, DeleteClusterSnapshot, RestoreClusterFromSnapshot, StartCluster and StopCluster. EC2 VPC endpoint and describe actions plus secretsmanager:ListSecrets are allowed only when the call is made first through docdb-elastic.amazonaws.com. kms:Decrypt, kms:DescribeKey, kms:GenerateDataKey and kms:CreateGrant are allowed only through docdb-elastic and on resources tagged with the DocDBElasticFullAccess tag key. secretsmanager:ListSecretVersionIds, DescribeSecret, GetSecretValue and GetResourcePolicy are allowed on tagged secrets when called through docdb-elastic. cloudwatch:GetMetricData, ListMetrics and GetMetricStatistics are allowed on all resources. iam:CreateServiceLinkedRole is allowed only for AWSServiceRoleForDocDB-Elastic with the docdb-elastic.amazonaws.com service name.

Use cases

  • Create, change, snapshot, restore, start, stop and delete Amazon DocumentDB elastic clusters.

Prerequisites

  • If you use a secret or a customer managed key with this policy, tag it with the tag key DocDBElasticFullAccess and a tag value.

Best practices

  • AWS managed policies don't grant least privilege permissions. The IAM User Guide suggests using IAM Access Analyzer to see which permissions principals actually use, then writing a custom policy or generating one with only the required permissions.

Security considerations

  • The docdb-elastic actions on all resources include DeleteCluster and DeleteClusterSnapshot.
  • The KMS and Secrets Manager grants include kms:Decrypt and secretsmanager:GetSecretValue, but only through docdb-elastic and only for resources carrying the DocDBElasticFullAccess tag key. The Amazon DocumentDB Developer Guide says the policy uses tags within conditions to scope access to resources.
  • You cannot change the permissions in an AWS managed policy. If AWS updates the policy, the update affects every user, group and role it is attached to.

Assignment guidance

You can attach this policy to your users, groups and roles. The reference page also links to guidance on creating a permission set using AWS managed policies in IAM Identity Center. The Amazon DocumentDB Developer Guide describes it as full access to all Amazon DocumentDB elastic cluster resources for the root AWS account. It fits where that scope is intended. Where a narrower scope is needed, AWS recommends customer managed policies specific to your use cases.

Same service

Same domain

Frequently asked questions

When should I attach AmazonDocDBElasticFullAccess?
The reference description says it provides full access to Amazon DocumentDB Elastic Clusters and the dependency permissions they need. You can attach it to users, groups and roles that manage elastic clusters. Tag any secret or customer managed key you use with the DocDBElasticFullAccess tag key.
What does AmazonDocDBElasticFullAccess grant?
It allows 19 docdb-elastic actions on all resources, EC2 VPC endpoint actions, KMS and Secrets Manager actions through docdb-elastic on tagged resources, CloudWatch metric reads, and creating the AWSServiceRoleForDocDB-Elastic service-linked role.
What are the security risks of AmazonDocDBElasticFullAccess?
docdb-elastic actions, including DeleteCluster, apply to all resources. The KMS decrypt and secret read grants are limited by service and tag conditions. AWS managed policies do not grant least privilege permissions, and an AWS update to the policy affects every identity it is attached to.

Policy JSON

Download policy.json

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DocdbElasticSid",
      "Effect": "Allow",
      "Action": [
        "docdb-elastic:CreateCluster",
        "docdb-elastic:UpdateCluster",
        "docdb-elastic:GetCluster",
        "docdb-elastic:DeleteCluster",
        "docdb-elastic:ListClusters",
        "docdb-elastic:CreateClusterSnapshot",
        "docdb-elastic:GetClusterSnapshot",
        "docdb-elastic:DeleteClusterSnapshot",
        "docdb-elastic:ListClusterSnapshots",
        "docdb-elastic:RestoreClusterFromSnapshot",
        "docdb-elastic:TagResource",
        "docdb-elastic:UntagResource",
        "docdb-elastic:ListTagsForResource",
        "docdb-elastic:CopyClusterSnapshot",
        "docdb-elastic:StartCluster",
        "docdb-elastic:StopCluster",
        "docdb-elastic:GetPendingMaintenanceAction",
        "docdb-elastic:ListPendingMaintenanceActions",
        "docdb-elastic:ApplyPendingMaintenanceAction"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "EC2Sid",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateVpcEndpoint",
        "ec2:DescribeVpcEndpoints",
        "ec2:DeleteVpcEndpoints",
        "ec2:ModifyVpcEndpoint",
        "ec2:DescribeVpcAttribute",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSubnets",
        "ec2:DescribeVpcs",
        "ec2:DescribeAvailabilityZones",
        "secretsmanager:ListSecrets"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:CalledViaFirst": "docdb-elastic.amazonaws.com"
        }
      }
    },
    {
      "Sid": "KMSSid",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:DescribeKey",
        "kms:GenerateDataKey"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:ViaService": [
            "docdb-elastic.*.amazonaws.com"
          ],
          "aws:ResourceTag/DocDBElasticFullAccess": "*"
        }
      }
    },
    {
      "Sid": "KMSGrantSid",
      "Effect": "Allow",
      "Action": [
        "kms:CreateGrant"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "aws:ResourceTag/DocDBElasticFullAccess": "*",
          "kms:ViaService": [
            "docdb-elastic.*.amazonaws.com"
          ]
        },
        "Bool": {
          "kms:GrantIsForAWSResource": true
        }
      }
    },
    {
      "Sid": "SecretManagerSid",
      "Effect": "Allow",
      "Action": [
        "secretsmanager:ListSecretVersionIds",
        "secretsmanager:DescribeSecret",
        "secretsmanager:GetSecretValue",
        "secretsmanager:GetResourcePolicy"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "secretsmanager:ResourceTag/DocDBElasticFullAccess": "*"
        },
        "StringEquals": {
          "aws:CalledViaFirst": "docdb-elastic.amazonaws.com"
        }
      }
    },
    {
      "Sid": "CloudwatchSid",
      "Effect": "Allow",
      "Action": [
        "cloudwatch:GetMetricData",
        "cloudwatch:ListMetrics",
        "cloudwatch:GetMetricStatistics"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "SLRSid",
      "Effect": "Allow",
      "Action": "iam:CreateServiceLinkedRole",
      "Resource": "arn:aws:iam::*:role/aws-service-role/docdb-elastic.amazonaws.com/AWSServiceRoleForDocDB-Elastic",
      "Condition": {
        "StringLike": {
          "iam:AWSServiceName": "docdb-elastic.amazonaws.com"
        }
      }
    }
  ]
}

Version history

Current version v8, edited by AWS on 2026-02-12. Version history is recorded from 2026-11-11. Earlier versions are in the IAM console under Policy versions.

Attach snippets

AWS CLI

aws iam attach-role-policy --role-name ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonDocDBElasticFullAccess
aws iam attach-user-policy --user-name USER_NAME --policy-arn arn:aws:iam::aws:policy/AmazonDocDBElasticFullAccess
aws iam attach-group-policy --group-name GROUP_NAME --policy-arn arn:aws:iam::aws:policy/AmazonDocDBElasticFullAccess

CloudFormation

Resources:
  ExampleRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument: {}  # replace with your trust policy
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/AmazonDocDBElasticFullAccess

Terraform

resource "aws_iam_role_policy_attachment" "amazondocdbelasticfullaccess" {
  role       = aws_iam_role.example.name
  policy_arn = "arn:aws:iam::aws:policy/AmazonDocDBElasticFullAccess"
}

CDK (TypeScript)

role.addManagedPolicy(
  iam.ManagedPolicy.fromAwsManagedPolicyName("AmazonDocDBElasticFullAccess"),
);

Sources