AWSBackupGuardDutyRolePolicyForScans

Last Modified

Mar 12, 2026

March 12, 2026 at 09:25 PM UTC

Version

v3

Total Versions

1

Created

Feb 12, 2026

Actions

16

Risk

no risk signal

Read from this policy document alone: trust policies, boundaries and SCPs in your account still decide what actually succeeds. How this is assessed

IAM Access Analyzer (3)

  • Suggestion / EQUIVALENT_TO_NULL_FALSE

    We recommend replacing the key aws:ResourceTag/aws:backup:source-resource in the condition block of StringLike with {aws:ResourceTag/aws:backup:source-resource: false} to ensure better enforcement of the condition. AWS docs

  • Suggestion / EQUIVALENT_TO_NULL_FALSE

    We recommend replacing the key aws:ResourceTag/aws:backup:source-resource in the condition block of StringLike with {aws:ResourceTag/aws:backup:source-resource: false} to ensure better enforcement of the condition. AWS docs

  • Suggestion / EQUIVALENT_TO_NULL_FALSE

    We recommend replacing the key kms:EncryptionContext:aws:backup:backup-vault in the condition block of StringLike with {kms:EncryptionContext:aws:backup:backup-vault: false} to ensure better enforcement of the condition. AWS docs

Policy Document

View on GitHub
{
  "PolicyVersion": {
    "Document": {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "EBSDirectReadAPIPermissions",
          "Effect": "Allow",
          "Action": [
            "ebs:ListSnapshotBlocks",
            "ebs:ListChangedBlocks",
            "ebs:GetSnapshotBlock"
          ],
          "Resource": "arn:aws:ec2:*::snapshot/*",
          "Condition": {
            "Null": {
              "aws:ResourceTag/aws:backup:source-resource": "false"
            },
            "StringLike": {
              "aws:ResourceTag/aws:backup:source-resource": "*"
            }
          }
        },
        {
          "Sid": "CreateGrantForEncryptedVolumeCreation",
          "Effect": "Allow",
          "Action": "kms:CreateGrant",
          "Resource": "arn:aws:kms:*:*:key/*",
          "Condition": {
            "StringLike": {
              "kms:EncryptionContext:aws:guardduty:id": "snap-*",
              "kms:ViaService": [
                "guardduty.*.amazonaws.com",
                "backup.*.amazonaws.com"
              ]
            },
            "ForAllValues:StringEquals": {
              "kms:GrantOperations": [
                "Decrypt",
                "CreateGrant",
                "GenerateDataKeyWithoutPlaintext",
                "ReEncryptFrom",
                "ReEncryptTo",
                "RetireGrant",
                "DescribeKey"
              ]
            },
            "Null": {
              "kms:GrantOperations": "false"
            }
          }
        },
        {
          "Sid": "CreateGrantForReEncryptAndEBSDirect",
          "Effect": "Allow",
          "Action": "kms:CreateGrant",
          "Resource": "arn:aws:kms:*:*:key/*",
          "Condition": {
            "StringLike": {
              "kms:EncryptionContext:aws:ebs:id": "snap-*",
              "kms:ViaService": [
                "guardduty.*.amazonaws.com",
                "backup.*.amazonaws.com"
              ]
            },
            "ForAllValues:StringEquals": {
              "kms:GrantOperations": [
                "Decrypt",
                "ReEncryptFrom",
                "ReEncryptTo",
                "RetireGrant",
                "DescribeKey"
              ]
            },
            "Null": {
              "kms:GrantOperations": "false"
            }
          }
        },
        {
          "Sid": "DescribeKeyPermissions",
          "Effect": "Allow",
          "Action": "kms:DescribeKey",
          "Resource": "arn:aws:kms:*:*:key/*"
        },
        {
          "Sid": "EC2ReadAPIPermissions",
          "Effect": "Allow",
          "Action": [
            "ec2:DescribeImages",
            "ec2:DescribeSnapshots"
          ],
          "Resource": "*"
        },
        {
          "Sid": "ShareSnapshotPermissions",
          "Effect": "Allow",
          "Action": [
            "ec2:ModifySnapshotAttribute"
          ],
          "Resource": "arn:aws:ec2:*:*:snapshot/*",
          "Condition": {
            "Null": {
              "aws:ResourceTag/aws:backup:source-resource": "false"
            },
            "StringLike": {
              "aws:ResourceTag/aws:backup:source-resource": "*"
            }
          }
        },
        {
          "Sid": "ShareSnapshotKMSPermissions",
          "Effect": "Allow",
          "Action": [
            "kms:ReEncryptTo",
            "kms:ReEncryptFrom"
          ],
          "Resource": "arn:aws:kms:*:*:key/*",
          "Condition": {
            "StringLike": {
              "kms:EncryptionContext:aws:ebs:id": [
                "vol-*",
                "snap-*"
              ],
              "kms:ViaService": "ec2.*.amazonaws.com"
            }
          }
        },
        {
          "Sid": "CreateBackupAccessPointPermissions",
          "Effect": "Allow",
          "Action": [
            "backup:CreateBackupAccessPoint"
          ],
          "Resource": "arn:aws:backup:*:*:recovery-point:*"
        },
        {
          "Sid": "ReadAndDeleteBackupAccessPointPermissions",
          "Effect": "Allow",
          "Action": [
            "backup:DescribeBackupAccessPoint",
            "backup:DeleteBackupAccessPoint"
          ],
          "Resource": "*"
        },
        {
          "Sid": "BackupRecoveryPointApiPermissions",
          "Effect": "Allow",
          "Action": [
            "backup:DescribeRecoveryPoint"
          ],
          "Resource": "arn:aws:backup:*:*:recovery-point:*"
        },
        {
          "Sid": "DecryptKMSEncryptedDataByAWSBackup",
          "Effect": "Allow",
          "Action": [
            "kms:Decrypt"
          ],
          "Resource": "arn:aws:kms:*:*:key/*",
          "Condition": {
            "StringLike": {
              "kms:EncryptionContext:aws:backup:backup-vault": "*",
              "kms:ViaService": "backup.*.amazonaws.com"
            }
          }
        }
      ]
    },
    "VersionId": "v3",
    "IsDefaultVersion": true,
    "CreateDate": "2026-02-12T17:59:22+00:00"
  }
}

Version History (4 recorded)

Raw history

AWSBackupGuardDutyRolePolicyForScans - Policy Version v3

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

Mar 12, 2026

187085c

AWSBackupGuardDutyRolePolicyForScans - Policy Version v3

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

Feb 12, 2026

5e8f8c2

AWSBackupGuardDutyRolePolicyForScans - Policy Version v2

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

Feb 12, 2026

3cd3a6e

AWSBackupGuardDutyRolePolicyForScans - Policy Version v1

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

Nov 20, 2025

a31cfa2