AWS fis documentation change
Summary
Added documentation for Kinesis Data Streams throughput exception experiment template and experiment role permissions example
Security assessment
The change adds documentation for security-related IAM permissions configuration (experiment role permissions example) but does not indicate a security vulnerability fix. The Kinesis throughput exception example documents fault injection testing capabilities rather than addressing a security flaw.
Diff
diff --git a/fis/latest/userguide/experiment-template-example.md b/fis/latest/userguide/experiment-template-example.md index f1bc477c2..533f69e0c 100644 --- a//fis/latest/userguide/experiment-template-example.md +++ b//fis/latest/userguide/experiment-template-example.md @@ -5 +5 @@ -Stop EC2 instances based on filtersStop a specified number of EC2 instancesRun a pre-configured AWS FIS SSM documentRun a predefined Automation runbookThrottle API actions on EC2 instances with the target IAM roleStress test CPU of pods in a Kubernetes cluster +Stop EC2 instances based on filtersStop a specified number of EC2 instancesRun a pre-configured AWS FIS SSM documentRun a predefined Automation runbookThrottle API actions on EC2 instances with the target IAM roleStress test CPU of pods in a Kubernetes clusterProvisioned throughput exception for specified number of Kinesis Data StreamsExperiment role permissions example @@ -29,0 +30,4 @@ To create an experiment using one of the example templates, save it to a JSON fi + * Provisioned throughput exception for specified number of Kinesis Data Streams + + * Experiment role permissions example + @@ -315,0 +320,80 @@ The following example uses Litmus to stress test the CPU of pods in an Amazon EK +## Provisioned throughput exception for specified number of Kinesis Data Streams + +The following example throws a provisioned throughput exception for 100% of requests up to five Kinesis Data Streams with the specified tag. AWS FIS selects the streams to affect at random. After 5 minutes the fault is removed. + + + { + "description": "Kinesis stream experiment", + "targets": { + "KinesisStreams-Target-1": { + "resourceType": "aws:kinesis:stream", + "resourceTags": { + "tag-key": "tag-value" + }, + "selectionMode": "COUNT(5)" + } + }, + "actions": { + "kinesis": { + "actionId": "aws:kinesis:stream-provisioned-throughput-exception", + "description": "my-stream", + "parameters": { + "duration": "PT5M", + "percentage": "100", + "service": "kinesis" + }, + "targets": { + "KinesisStreams": "KinesisStreams-Target-1" + } + } + }, + "stopConditions": [ + { + "source": "none" + } + ], + "roleArn": "arn:aws:iam::111122223333:role/role-name", + "tags": {}, + "experimentOptions": { + "accountTargeting": "single-account", + "emptyTargetResolutionMode": "fail" + } + } + +## Experiment role permissions example + +The following permission allows you to run the `aws:kinesis:stream-provisioned-throughput-exception` and `aws:kinesis:stream-expired-iterator-exception` actions on a specific stream impacting 50% of requests. + + + { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": "kinesis:InjectApiError", + "Resource": "*" + "Condition": { + "ForAllValues:StringEquals": { + "kinesis:FisActionId": [ + "aws:kinesis:stream-provisioned-throughput-exception", + "aws:kinesis:stream-expired-iterator-exception" + ], + "kinesis:FisTargetArns": [ + "arn:aws:kinesis:us-east-1:111122223333:stream/stream-name" + ], + }, + "NumericEquals": { + "kinesis:FisInjectPercentage": "50" + } + } + }, + { + "Action": [ + "kinesis:DescribeStreamSummary", + ], + "Resource": "*", + "Effect": "Allow" + } + ] + } +