AmazonDocDBElasticFullAccess
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.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| DocumentDB Elastic Clusters | All 19 actions (see the DocumentDB Elastic Clusters page) | 4 List, 3 Read, 2 Tagging, 10 Write; 0 restricted, 0 conditional | docdb-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 |
| EC2 | 9 of 834 | 6 List, 3 Write; 9 restricted, 9 conditional | ec2:CreateVpcEndpoint, ec2:DeleteVpcEndpoints, ec2:DescribeAvailabilityZones, ec2:DescribeSecurityGroups, ec2:DescribeSubnets, ec2:DescribeVpcAttribute, ec2:DescribeVpcEndpoints, ec2:DescribeVpcs, ec2:ModifyVpcEndpoint |
| IAM | 1 of 190 | 1 Write; 1 restricted, 1 conditional | iam:CreateServiceLinkedRole |
| KMS | 4 of 58 | 1 Permissions management, 1 Read, 2 Write; 4 restricted, 4 conditional | kms:CreateGrant, kms:Decrypt, kms:DescribeKey, kms:GenerateDataKey |
| Secrets Manager | 5 of 27 | 1 List, 4 Read; 5 restricted, 5 conditional | secretsmanager: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.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| CloudWatch | 3 of 5 | 1 List, 2 Read; 0 restricted, 0 conditional | cloudwatch: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.
Related policies
Same service
- AdministratorAccess-AWSElasticBeanstalk
- AIDevOpsReleaseManagementVPCPolicy
- AlexaForBusinessDeviceSetup
- AlexaForBusinessNetworkProfileServicePolicy
- AmazonAppStreamServiceAccess
- AmazonBioDiscoveryServiceLinkedRolePolicy
- AmazonCognitoIdpServiceRolePolicy
- AmazonDataZoneEnvironmentRolePermissionsBoundary
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
{
"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/AmazonDocDBElasticFullAccessCloudFormation
Resources:
ExampleRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument: {} # replace with your trust policy
ManagedPolicyArns:
- arn:aws:iam::aws:policy/AmazonDocDBElasticFullAccessTerraform
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
- AmazonDocDBElasticFullAccess (AWS Managed Policy Reference Guide) (retrieved ; supports summary, practicalScope, useCases, securityConsiderations, assignmentGuidance, faqs)
- AWS managed policies for Amazon DocumentDB (Amazon DocumentDB Developer Guide) (retrieved ; supports summary, prerequisites, securityConsiderations, assignmentGuidance, faqs)
- AWS managed policies for job functions (IAM User Guide) (retrieved ; supports bestPractices, faqs)
- Managed policies and inline policies (IAM User Guide) (retrieved ; supports securityConsiderations, faqs)