AmazonDynamoDBFullAccesswithDataPipeline

Last Modified

Mar 12, 2026

March 12, 2026 at 09:27 PM UTC

Version

v2

Total Versions

6

Created

Nov 12, 2015

Actions

34

Risk

High

An unrestricted escalation path, identity administration, secret reads or the power to switch off security monitoring. Read from this policy document alone: trust policies, boundaries and SCPs in your account still decide what actually succeeds. How this is assessed

  • High

    Can change identities and their permissions

    Grants 1 permissions management action on IAM, IAM Identity Center or Organizations, on any resource with no condition.

    iam:passrole

    Use with caution: Grant it only to identity administrators, and protect your admin roles and SCPs with a permissions boundary or an SCP of their own.

  • High

    Can launch resources that run as a more privileged role

    Grants every action of 6 documented escalation paths on any resource with no condition.

    • datapipeline-001iam:PassRole + datapipeline:CreatePipeline + datapipeline:PutPipelineDefinition + datapipeline:ActivatePipelineunrestricted
    • ec2-001iam:PassRole + ec2:RunInstancesunrestricted
    • emr-001iam:PassRole + elasticmapreduce:RunJobFlowunrestricted
    • lambda-001iam:PassRole + lambda:CreateFunction + lambda:InvokeFunctionunrestricted
    • lambda-002iam:PassRole + lambda:CreateFunction + lambda:CreateEventSourceMappingunrestricted
    • lambda-006iam:PassRole + lambda:CreateFunction + lambda:AddPermissionunrestricted

    Use with caution: Make sure no highly privileged role trusts the service involved, and restrict iam:PassRole in your own policies or boundary to named roles with iam:PassedToService.

  • High

    Can take over existing resources that run as another role

    Grants every action of 3 documented escalation paths on any resource with no condition.

    • lambda-003lambda:UpdateFunctionCodeunrestricted
    • lambda-004lambda:UpdateFunctionCode + lambda:InvokeFunctionunrestricted
    • lambda-005lambda:UpdateFunctionCode + lambda:AddPermissionunrestricted

    Use with caution: List the roles attached to the functions, instances, pipelines or notebooks it can modify: the holder effectively has them too.

  • Medium

    Can read secrets

    Reads Lambda environment variables, where credentials often live, on any resource with no condition.

    lambda:GetFunctionConfiguration (via lambda:*)

    Use with caution: Where the holder needs only some secrets, write your own policy scoped to their ARNs or tags, and limit decryption in the KMS key policies.

  • Medium

    Can rewrite resource policies and sharing

    Grants 22 permissions management actions across 4 services (dynamodb, elasticmapreduce, lambda, s3) on any resource, enough to share resources outside the account.

    dynamodb:deleteresourcepolicydynamodb:putresourcepolicyelasticmapreduce:deleteworkspaceaccesselasticmapreduce:putblockpublicaccessconfigurationelasticmapreduce:putworkspaceaccesslambda:addlayerversionpermissionlambda:addpermissionlambda:deleteresourcepolicylambda:putresourcepolicylambda:removelayerversionpermissionlambda:removepermissions3:putaccessgrantsinstanceresourcepolicyand 10 more

    Use with caution: Turn on IAM Access Analyzer external access findings, and keep account-level guards like S3 Block Public Access enabled.

  • Medium

    Can read data in every bucket or table

    Reads any object in any S3 bucket; any DynamoDB table. Read-only is not the same as harmless when the data is the asset.

    s3:GetObject (via s3:Get*)dynamodb:Scan (via dynamodb:*)dynamodb:GetItem (via dynamodb:*)

    Use with caution: Read access to data is still access to data. For people who only need to see configuration, ViewOnlyAccess carries none of these signals.

  • Medium

    Full access to 4 services on every resource

    Uses datapipeline:*, dynamodb:*, elasticmapreduce:*, lambda:* with Resource "*" and no condition, so every action AWS adds to those services later is granted too.

    datapipeline:*dynamodb:*elasticmapreduce:*lambda:*

    Use with caution: The grant grows every time the service does. For long-lived access, prefer a policy that lists the actions you actually need.

  • Medium

    Flagged by AWS IAM Access Analyzer

    AWS's own policy validation raises 1 security warning: PASS_ROLE_WITH_STAR_IN_RESOURCE.

    • Using the iam:PassRole action with wildcards (*) in the resource can be overly permissive because it allows iam:PassRole permissions on multiple resources. We recommend that you specify resource ARNs or add the iam:PassedToService condition key to your statement.

    Use with caution: Read AWS's finding and the documentation it links to.

IAM Access Analyzer (1)

  • Security warning / PASS_ROLE_WITH_STAR_IN_RESOURCE

    Using the iam:PassRole action with wildcards (*) in the resource can be overly permissive because it allows iam:PassRole permissions on multiple resources. We recommend that you specify resource ARNs or add the iam:PassedToService condition key to your statement. AWS docs

Policy Document

View on GitHub
{
  "PolicyVersion": {
    "Document": {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Action": [
            "cloudwatch:DeleteAlarms",
            "cloudwatch:DescribeAlarmHistory",
            "cloudwatch:DescribeAlarms",
            "cloudwatch:DescribeAlarmsForMetric",
            "cloudwatch:GetMetricStatistics",
            "cloudwatch:ListMetrics",
            "cloudwatch:PutMetricAlarm",
            "dynamodb:*",
            "sns:CreateTopic",
            "sns:DeleteTopic",
            "sns:ListSubscriptions",
            "sns:ListSubscriptionsByTopic",
            "sns:ListTopics",
            "sns:Subscribe",
            "sns:Unsubscribe",
            "sns:SetTopicAttributes"
          ],
          "Effect": "Allow",
          "Resource": "*",
          "Sid": "DDBConsole"
        },
        {
          "Action": [
            "lambda:*",
            "iam:ListRoles"
          ],
          "Effect": "Allow",
          "Resource": "*",
          "Sid": "DDBConsoleTriggers"
        },
        {
          "Action": [
            "datapipeline:*",
            "iam:ListRoles"
          ],
          "Effect": "Allow",
          "Resource": "*",
          "Sid": "DDBConsoleImportExport"
        },
        {
          "Effect": "Allow",
          "Action": [
            "iam:GetRolePolicy",
            "iam:PassRole"
          ],
          "Resource": [
            "*"
          ],
          "Sid": "IAMEDPRoles"
        },
        {
          "Action": [
            "ec2:CreateTags",
            "ec2:DescribeInstances",
            "ec2:RunInstances",
            "ec2:StartInstances",
            "ec2:StopInstances",
            "ec2:TerminateInstances",
            "elasticmapreduce:*",
            "datapipeline:*"
          ],
          "Effect": "Allow",
          "Resource": "*",
          "Sid": "EMR"
        },
        {
          "Action": [
            "s3:DeleteObject",
            "s3:Get*",
            "s3:List*",
            "s3:Put*"
          ],
          "Effect": "Allow",
          "Resource": [
            "*"
          ],
          "Sid": "S3"
        }
      ]
    },
    "VersionId": "v2",
    "IsDefaultVersion": true,
    "CreateDate": "2015-11-12T02:17:42+00:00"
  }
}

Version History (9 recorded)

Raw history

AmazonDynamoDBFullAccesswithDataPipeline - Policy Version v2

No recorded action delta - this version predates the change index. View the raw diff.

Mar 12, 2026

be2a036

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Sep 18, 2024

aafbae9

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

May 13, 2024

1b36617

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Sep 16, 2019

49aa1d0

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Sep 16, 2019

71619cf

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Sep 16, 2019

8279033

`2019-08-29`

No recorded action delta - this version predates the change index. View the raw diff.

Aug 29, 2019

5016d52

I updated my CLI and it looks like it reordered everything and changed the white-space, so everything looks changed, but is not

No recorded action delta - this version predates the change index. View the raw diff.

Jul 12, 2019

9d2dff1

First commit

No recorded action delta - this version predates the change index. View the raw diff.

Feb 10, 2019

ad4c2e8