aws-secretsmanager-rotate-invoke

explicit aws emits CanInvoke

match (effective permission)

{ "action": "secretsmanager:RotateSecret", "resource_type": "AWS::SecretsManager::Secret" }

where

the secret has RotationEnabled == true and a RotationLambdaARN (resolve via the secret's rotation_lambda_arn property)

emit

source typeIdentity
source<principal>
target<rotation Lambda function node (ServerlessFunction)>
permissionssecretsmanager:RotateSecret

Narrative

{principal.name} can force rotation of {secret.name} (secretsmanager:RotateSecret), invoking its rotation function {function.name}.

Raw rule rules/explicit/aws-secretsmanager.yaml

id: aws-secretsmanager-rotate-invoke
emits: CanInvoke
applies_to:
- aws
match_effective_permission:
  action: secretsmanager:RotateSecret
  resource_type: AWS::SecretsManager::Secret
where:
- the secret has RotationEnabled == true and a RotationLambdaARN (resolve via the secret's rotation_lambda_arn
  property)
emit:
  source_type: Identity
  source: <principal>
  target: <rotation Lambda function node (ServerlessFunction)>
  api_source: iam:SimulatePrincipalPolicy | policy evaluation
  permissions:
  - secretsmanager:RotateSecret
  evidence_field: effective secretsmanager:RotateSecret on secret ARN + DescribeSecret.RotationLambdaARN
  narrative: '{principal.name} can force rotation of {secret.name} (secretsmanager:RotateSecret), invoking
    its rotation function {function.name}.'
  note: Only emit when a rotation Lambda is actually configured (RotationLambdaARN present). RotateSecret
    with no configured rotation function invokes nothing. This is the on-demand run path; the scheduled
    rotation trigger already exists independently when RotationEnabled is true.
move · open · esc close