AWS-EnableKinesisStreamEncryption - Amazon Systems Manager Automation runbook reference
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).



The AWS-EnableKinesisStreamEncryption runbook enables encryption on an Amazon Kinesis Data Streams (Kinesis Data Streams). Producer applications writing to an encrypted stream will encounter errors if they do not have access to the Amazon Key Management Service (Amazon KMS) key.

Run this Automation (console)

Document type





Linux, macOS, Windows


  • AutomationAssumeRole

    Type: String

    Description: (Optional) The Amazon Resource Name (ARN) of the Amazon Identity and Access Management (IAM) role that allows Systems Manager Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses the permissions of the user that starts this runbook.

  • KinesisStreamName

    Type: String

    Description: (Required) The name of the stream you want to enable encryption on.

  • KeyId

    Type: String

    Default: alias/aws/kinesis

    Description: (Required) The customer-managed Amazon KMS key you want to use for encryption. This value can be a globally unique identifier, an ARN to either an alias or a key, or an alias name prefixed by "alias/". You can also use the Amazon managed key by using the default value for the parameter.

Required IAM permissions

The AutomationAssumeRole parameter requires the following actions to use the runbook successfully.

  • ssm:GetAutomationExecution

  • ssm:StartAutomationExecution

  • kinesis:DescribeStream

  • kinesis:StartStreamEncryption

  • kms:DescribeKey

Document Steps

  • VerifyKinesisStreamStatus (aws:waitforAwsResourceProperty) - Checks the status of the Kinesis Data Streams.

  • EnableKinesisStreamEncryption (aws:executeAwsApi) - Enables encryption for the Kinesis Data Streams.

  • VerifyKinesisStreamUpdateComplete (aws:waitForAwsResourceProperty) - Waits for the Kinesis Data Streams status to return to ACTIVE.

  • VerifyKinesisStreamEncryption (aws:assertAwsResourceProperty) - Verifies encryption is enabled for the Kinesis Data Streams.