

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS FIS 操作参考
<a name="fis-actions-reference"></a>

操作是您使用 AWS Fault Injection Service (AWS FIS) 在目标上运行的错误注入活动。 AWS FIS 为跨 AWS 服务的特定类型的目标提供预配置的操作。您可以为实验模板添加操作，然后使用此模板运行实验。

本参考描述了中的常见操作 AWS FIS，包括有关操作参数和所需的 IAM 权限的信息。您也可以使用 AWS FIS 控制台或 AWS Command Line Interface ()AWS CLI中的 [list-actions 命令列出支持的 AWS FIS 操作](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/list-actions.html)。在得知特定操作的名称后，您可以使用 [get-action](https://docs.aws.amazon.com/cli/latest/reference/fis/get-action.html) 命令查看有关该操作的详细信息。有关在中使用 AWS FIS 命令的更多信息 AWS CLI，请参阅《*AWS CLI 命令参考*》中的[《AWS Command Line Interface 用户指南》](https://docs.aws.amazon.com/cli/latest/userguide/)和 [fis](https://docs.aws.amazon.com/cli/latest/reference/fis/index.html)。

有关 AWS FIS 操作工作原理的更多信息，请参阅[金融情报 AWS 局的行动](action-sequence.md)和[AWS 故障注入服务如何与 IAM 配合使用](security_iam_service-with-iam.md)。

**Topics**
+ [故障注入操作](#fis-actions-reference-fis)
+ [恢复行动](#fis-actions-recovery)
+ [等待动作](#fis-actions-reference-wait)
+ [亚马逊的 CloudWatch 行动](#cloudwatch-actions-reference)
+ [Amazon DynamoDB 操作](#dynamodb-actions-reference)
+ [亚马逊 Aurora DSQL 操作](#dsql-actions-reference)
+ [Amazon EBS 操作](#ebs-actions-reference)
+ [Amazon EC2 操作](#ec2-actions-reference)
+ [Amazon ECS 操作](#ecs-actions-reference)
+ [Amazon EKS 操作](#eks-actions-reference)
+ [亚马逊的 ElastiCache 行动](#elasticache-actions-reference)
+ [亚马逊 Kinesis Data Streams 操作](#aws-kinesis-actions)
+ [AWS Lambda 行动](#aws-lambda-actions-reference)
+ [亚马逊 MemoryDB 操作](#memorydb-actions-reference)
+ [网络操作](#network-actions-reference)
+ [Amazon RDS 操作](#rds-actions-reference)
+ [Amazon S3 操作](#s3-actions-reference-fis)
+ [Systems Manager 操作](#ssm-actions-reference)
+ [AWS Direct Connect 行动](#directconnect-actions-reference)
+ [将 Systems Manager SSM 文档与 FIS 一起使用 AWS](actions-ssm-agent.md)
+ [使用 AWS FIS aws: ecs: task 操作](ecs-task-actions.md)
+ [使用 FIS aw AWS s: eks: pod 操作](eks-pod-actions.md)
+ [使用 AWS FIS aws: lambda: 函数操作](use-lambda-actions.md)

## 故障注入操作
<a name="fis-actions-reference-fis"></a>

AWS FIS 支持以下故障注入操作。

**Topics**
+ [aws:fis:inject-api-internal-error](#inject-api-internal-error)
+ [aws:fis:inject-api-throttle-error](#inject-api-throttle-error)
+ [aws:fis:inject-api-unavailable-error](#inject-api-unavailable-error)

### aws:fis:inject-api-internal-error
<a name="inject-api-internal-error"></a>

在目标 IAM 角色发出的请求中注入内部错误。具体响应取决于每项服务和 API。有关更多信息，请查看服务的 SDK 和 API 文档。

**资源类型**
+ **aws:iam:role**

**参数**
+ **duration**：持续时间，从一分钟到 12 小时不等。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。
+ **service**— 目标 AWS API 命名空间。支持的值为`ec2`和`kinesis`。
+ **percentage**：注入故障信息的调用百分比 (1 - 100)。
+ **operations**：注入故障信息的操作，用逗号分隔。有关`ec2`命名空间的 API 操作列表，请参阅[亚马逊 EC2 API 参考和 Amazon](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Operations.html) [Kinesis Data Streams API](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_Operations.html) 参考。

**Permissions**
+ `fis:InjectApiInternalError`

### aws:fis:inject-api-throttle-error
<a name="inject-api-throttle-error"></a>

在目标 IAM 角色发出的请求中注入节流错误。具体响应取决于每项服务和 API。有关更多信息，请查看服务的 SDK 和 API 文档。

**资源类型**
+ **aws:iam:role**

**参数**
+ **duration**：持续时间，从一分钟到 12 小时不等。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。
+ **service**— 目标 AWS API 命名空间。支持的值为`ec2`和`kinesis`。
+ **percentage**：注入故障信息的调用百分比 (1 - 100)。
+ **operations**：注入故障信息的操作，用逗号分隔。有关`ec2`命名空间的 API 操作列表，请参阅[亚马逊 EC2 API 参考和 Amazon](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Operations.html) [Kinesis Data Streams API](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_Operations.html) 参考。

**Permissions**
+ `fis:InjectApiThrottleError`

### aws:fis:inject-api-unavailable-error
<a name="inject-api-unavailable-error"></a>

在目标 IAM 角色发出的请求中注入不可用错误。具体响应取决于每项服务和 API。有关更多信息，请查看服务的 SDK 和 API 文档。

**资源类型**
+ **aws:iam:role**

**参数**
+ **duration**：持续时间，从一分钟到 12 小时不等。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。
+ **service**— 目标 AWS API 命名空间。支持的值为`ec2`和`kinesis`。
+ **percentage**：注入故障信息的调用百分比 (1 - 100)。
+ **operations**：注入故障信息的操作，用逗号分隔。有关`ec2`命名空间的 API 操作列表，请参阅[亚马逊 EC2 API 参考和 Amazon](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Operations.html) [Kinesis Data Streams API](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_Operations.html) 参考。

**Permissions**
+ `fis:InjectApiUnavailableError`

## 恢复行动
<a name="fis-actions-recovery"></a>

执行恢复操作是为了降低风险或保护受损后的应用程序。

AWS FIS 支持以下恢复操作。

### aws:arc:start-zonal-autoshift
<a name="recovery"></a>

自动将受支持资源的流量从可能受损的可用区 (AZ) 转移出去，并将其重新路由到同一 AWS 区域 AZs 的正常运行状态。这允许通过 FIS 体验区域自动换档。区域自动切换是 Amazon 应用程序恢复控制器 (ARC) 中的一项功能，它允许 AWS 在 AWS 确定存在可能影响可用区客户的损害时，代表您将资源流量从可用区转移出去。

运行`aws:arc:start-zonal-autoshift`操作时，使用、和 AWS FIS 管理区域偏移 StartZonalShift UpdateZonalShift，并将这些请求 CancelZonalShift APIs 的`expiresIn`字段设置为 1 分钟作为安全机制。这使得 AWS FIS 在发生任何意外事件（例如网络中断或系统问题）时，可以快速回滚区域移动。在 ARC 控制台中，到期时间字段将显示 AWS FIS-managed，实际的预期到期时间由区域移位操作中指定的持续时间决定。

**资源类型**
+ **aws:arc:zonal-shift-managed-resource**

  区域转移托管资源是资源类型，包括 Amazon EKS 集群、Amazon EC2 应用程序和网络负载均衡器以及可以启用 ARC 区域自动切换的 Amazon EC2 Auto Scaling 组。有关更多信息，请参阅 *ARC 开发人员*指南中的[支持的资源](https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-shift.resource-types.html)和[启用区域自动移位资源](https://docs.aws.amazon.com//r53recovery/latest/dg/arc-zonal-autoshift.start-cancel.html)。

**参数**
+ **duration**— 流量转移的时间长度。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。
+ **availabilityZoneIdentifier**— 流量从该区域移开。这可以是可用区名称 (us-east-1a) 或可用区 ID (use1-az1)。
+ **managedResourceTypes**— 将从中转移流量的资源类型，用逗号分隔。可能的选项有`ASG`（Auto Scaling Group）、`ALB`（应用程序负载均衡器）、`NLB`（网络负载均衡器）和`EKS`（Amazon EKS）。
+ **zonalAutoshiftStatus**— 您要定位的资源的`zonalAutoshiftStatus`状态。可能的选项有`ENABLED``DISABLED`、和`ANY`。默认值为 `ENABLED`。

**Permissions**
+ arc-zonal-shift:StartZonalShift
+ arc-zonal-shift:GetManagedResource
+ arc-zonal-shift:UpdateZonalShift
+ arc-zonal-shift:CancelZonalShift
+ arc-zonal-shift:ListManagedResources
+ 自动缩放：DescribeTags
+ 标签：GetResources

## 等待动作
<a name="fis-actions-reference-wait"></a>

AWS FIS 支持以下等待操作。

### aws:fis:wait
<a name="wait"></a>

运行 AWS FIS 等待操作。

**参数**
+ **duration**：持续时间，从一分钟到 12 小时不等。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。

**Permissions**
+ 无

## 亚马逊的 CloudWatch 行动
<a name="cloudwatch-actions-reference"></a>

AWS FIS 支持以下 Amazon CloudWatch 操作。

### aws:cloudwatch:assert-alarm-state
<a name="assert-alarm-state"></a>

验证指定警报是否处于指定警报状态之一。

**资源类型**
+ 无

**参数**
+ **alarmArns**— 警报 ARNs 中的一个，用逗号分隔。您最多可以指定五个警报。
+ **alarmStates**：警报状态，用逗号分隔。警报状态可能是 `OK`、`ALARM` 和 `INSUFFICIENT_DATA`。

**Permissions**
+ `cloudwatch:DescribeAlarms`

## Amazon DynamoDB 操作
<a name="dynamodb-actions-reference"></a>

AWS FIS 支持以下亚马逊 DynamoDB 操作。

### aws:dynamodb:global-table-pause-replication
<a name="global-table-pause-replication"></a>

暂停向任何副本表的 Amazon DynamoDB 多区域全局表复制。操作开始后，表可能会继续复制最多 5 分钟。

**多区域强一致 (MRSC) 全局表**  
以下语句将动态附加到目标 DynamoDB MRSC 全局表的策略中：

```
{
   "Statement":[
      {
         "Sid": "DoNotModifyFisDynamoDbPauseReplicationEXPxxxxxxxxxxxxxxx",
         "Effect":"Deny",
         "Principal":{
            "AWS": "*"
         },
         "Action":[
            "dynamodb:UpdateTable"
         ],
         "Resource":"arn:aws:dynamodb:us-east-1:123456789012:table/ExampleGlobalTable",
         "Condition": {
            "DateLessThan": {
                "aws:CurrentTime": "2024-04-10T09:51:41.511Z"
            },
            "ArnEquals": {
                "aws:PrincipalArn": "arn:aws:iam::123456789012:role/aws-service-role/replication.dynamodb.amazonaws.com/AWSServiceRoleForDynamoDBReplication"
            }
         }
      },
      {
         "Sid": "DoNotModifyFisDynamoDbPauseReplicationEXPxxxxxxxxxxxxxxxForApplicationAutoScaling",
         "Effect":"Deny",
         "Principal":{
            "AWS": "*"
         },
         "Action":[
            "dynamodb:DescribeTable",
            "dynamodb:UpdateTable"
         ],
         "Resource":"arn:aws:dynamodb:us-east-1:123456789012:table/ExampleGlobalTable",
         "Condition": {
            "DateLessThan": {
              "aws:CurrentTime": "2024-04-10T09:51:41.511Z"
            },
            "ArnEquals": {
                "aws:PrincipalArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable"
            }
         }
      }
   ]
}
```

如果目标表没有任何附加的资源策略，则会在实验期间创建资源策略，并在实验结束时自动删除。否则，会将错误语句插入现有策略中，不会对现有策略语句进行任何其他修改。然后，在实验结束时，从策略中删除错误声明。

目标 Amazon DynamoDB MRSC 全局表需要额外配额。该配额规定，在7天的滚动窗口内，任何一张桌子的减值时间不得超过5,040分钟。

**多区域最终一致 (MREC) 全局表**  
以下语句将动态附加到目标 DynamoDB MREC 全局表的策略中：

```
{
   "Statement":[
      {
         "Sid": "DoNotModifyFisDynamoDbPauseReplicationEXPxxxxxxxxxxxxxxx",
         "Effect":"Deny",
         "Principal":{
            "AWS": "*"
         },
         "Action":[
            "dynamodb:GetItem",
            "dynamodb:PutItem",
            "dynamodb:UpdateItem",
            "dynamodb:DeleteItem",
            "dynamodb:DescribeTable",
            "dynamodb:UpdateTable",
            "dynamodb:Scan",
            "dynamodb:DescribeTimeToLive",
            "dynamodb:UpdateTimeToLive"
         ],
         "Resource":"arn:aws:dynamodb:us-east-1:123456789012:table/ExampleGlobalTable",
         "Condition": {
            "DateLessThan": {
              "aws:CurrentTime": "2024-04-10T09:51:41.511Z"
            },
            "ArnEquals": {
                "aws:PrincipalArn": "arn:aws:iam::123456789012:role/aws-service-role/replication.dynamodb.amazonaws.com/AWSServiceRoleForDynamoDBReplication"
            }
         }
      }
   ]
}
```

以下语句将动态附加到目标 DynamoDB MREC 全局表的流策略中：

```
{
   "Statement":[
      {
         "Sid": "DoNotModifyFisDynamoDbPauseReplicationEXPxxxxxxxxxxxxxxx",
         "Effect":"Deny",
         "Principal":{
            "AWS": "*"
         },
         "Action":[
            "dynamodb:GetRecords",
            "dynamodb:DescribeStream",
            "dynamodb:GetShardIterator"
         ],
         "Resource":"arn:aws:dynamodb:us-east-1:123456789012:table/ExampleGlobalTable/stream/2023-08-31T09:50:24.025",
         "Condition": {
            "DateLessThan": {
              "aws:CurrentTime": "2024-04-10T09:51:41.511Z"
            },
            "ArnEquals": {
                "aws:PrincipalArn": "arn:aws:iam::123456789012:role/aws-service-role/replication.dynamodb.amazonaws.com/AWSServiceRoleForDynamoDBReplication"
            }
         }
      }
   ]
}
```

如果目标表或流未附加任何资源策略，则会在实验期间创建资源策略，并在实验结束时自动将其删除。否则，会将错误语句插入现有策略中，不会对现有策略语句进行任何其他修改。然后，在实验结束时，从策略中删除错误声明。

**资源类型**
+ **aws:dynamodb:global-table**

**参数**
+ **duration**— 在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。

**Permissions**
+ `dynamodb:PutResourcePolicy`
+ `dynamodb:DeleteResourcePolicy`
+ `dynamodb:GetResourcePolicy`
+ `dynamodb:DescribeTable`
+ `tag:GetResources`
+ `dynamodb:InjectError` \$1

\$1 仅当您以 MRSC 全局表为目标时，才需要该权限

## 亚马逊 Aurora DSQL 操作
<a name="dsql-actions-reference"></a>

AWS FIS 支持以下 Amazon Aurora DSQL 操作。

### aws:dsql:cluster-connection-failure
<a name="cluster-connection-failure"></a>

在 Aurora DSQL 集群中创建指定持续时间的受控连接故障，以测试应用程序的弹性。

**资源类型**
+ **aws:dsql:cluster**

**参数**
+ **duration**：持续时间，从一分钟到 12 小时不等。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。
+ **percentage**：注入故障信息的调用百分比 (1 - 100)。

**Permissions**
+ `dsql:InjectError`
+ `dsql:GetCluster`
+ `tag:GetResources`

要使用 Aurora DSQL 启动实验，请参阅 A *urora DSQL 用户*指南中的[故障注入测试](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/disaster-recovery-resiliency.html#fault-injection-testing.html)。

## Amazon EBS 操作
<a name="ebs-actions-reference"></a>

AWS FIS 支持以下 Amazon EBS 操作。

**Topics**
+ [aws:ebs:pause-volume-io](#pause-volume-io)
+ [aws:ebs:volume-io-latency](#volume-latency-injection)

### aws:ebs:pause-volume-io
<a name="pause-volume-io"></a>

暂停对目标 EBS 卷的 I/O 操作。目标卷必须位于同一可用区内，并且必须附加到构建在 Nitro 系统上的实例。此卷无法附加到 Outpost 上的实例。

要使用 Amazon EC2 控制台启动实验，请参阅 *Amazon EC2 用户指南*中的 [Amazon EBS 故障测试](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-fis.html)。

**资源类型**
+ **aws:ec2:ebs-volume**

**参数**
+ **duration**：持续时间，从一秒到 12 小时不等。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟， PT5S 代表五秒， PT6H 代表六小时。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。如果持续时间很短（例如 PT5 S）， I/O 则会在指定的持续时间内暂停实验，但由于初始化实验需要时间，因此可能需要更长的时间才能完成实验。

**Permissions**
+ `ec2:DescribeVolumes`
+ `ec2:PauseVolumeIO`
+ `tag:GetResources`

### aws:ebs:volume-io-latency
<a name="volume-latency-injection"></a>

为目标 EBS 卷的 I/O 操作注入延迟。目标卷必须位于同一个可用区内。此卷无法附加到 Outpost 上的实例。

要使用亚马逊 EC2 控制台启动实验，请参阅[亚马逊 EBS *用户指南中的亚马逊 EBS* 故障测试](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-fis.html)。

**资源类型**
+ **aws:ec2:ebs-volume**

**参数**
+ **readIOPercentage**— 将注入延迟的读取 I/O 操作的百分比，从 0.1% 到 100.% 不等。这是实验期间卷上所有读取 I/O 操作将受到影响的百分比。默认值为 100。
+ **readIOLatencyMilliseconds**— 读取 I/O 操作注入的延迟量，以毫秒为单位，从 1 毫秒（io2 卷）或 10 毫秒（非 io2 卷）到 60 秒。这是实验 I/O 期间在读取的指定百分比上观察到的延迟值。默认值为 100。
+ **writeIOPercentage**— 将注入延迟的写入 I/O 操作的百分比，从 0.1% 到 100.% 不等。这是实验期间卷上所有写入 I/O 操作将受到影响的百分比。默认值为 100。
+ **writeIOLatencyMilliseconds**— 写入 I/O 操作注入的延迟时间（以毫秒为单位），从 1 毫秒（io2 卷）或 10 毫秒（非 io2 卷）到 60 秒。这是实验 I/O 期间将根据读取的特定百分比观察到的延迟值。默认值为 100。
+ **duration**— 注入延迟的持续时间，从 1 秒到 12 小时不等。

**Permissions**
+ `ec2:DescribeVolumes`
+ `ec2:InjectVolumeIOLatency`
+ `tag:GetResources`

## Amazon EC2 操作
<a name="ec2-actions-reference"></a>

AWS FIS 支持以下 Amazon EC2 操作。

**Topics**
+ [aws:ec2:api-insufficient-instance-capacity-error](#api-ice)
+ [aws:ec2:asg-insufficient-instance-capacity-error](#asg-ice)
+ [aws:ec2:reboot-instances](#reboot-instances)
+ [aws:ec2:send-spot-instance-interruptions](#send-spot-instance-interruptions)
+ [aws:ec2:stop-instances](#stop-instances)
+ [aws:ec2:terminate-instances](#terminate-instances)

AWS FIS 还支持通过 AWS Systems Manager SSM 代理进行故障注入操作。Systems Manager 使用的 SSM 文档定义了要在 EC2 实例上执行的操作。您可以使用自有文档注入自定义故障，也可以使用预配置的 SSM 文档。有关更多信息，请参阅 [将 Systems Manager SSM 文档与 FIS 一起使用 AWS](actions-ssm-agent.md)。

### aws:ec2:api-insufficient-instance-capacity-error
<a name="api-ice"></a>

对目标 IAM 角色发出的请求注入 `InsufficientInstanceCapacity` 错误响应。支持的操作是 RunInstances、、 CreateCapacityReservation StartInstances、 CreateFleet 调用。不支持包含在多个可用区中询问容量的请求。此操作不支持使用资源标签、筛选条件或参数定义目标。

对于 Auto Scaling LaunchInstances 操作，将在响应的`errors`字段中返回 InsufficientInstanceCapacity错误，但是 Auto Scaling 组的所需容量仍会更新，从而允许异步扩展过程有可能启动实例。要对容量不足的处理进行更广泛的测试 LaunchInstances，请考虑将此操作与一起使用[aws:ec2:asg-insufficient-instance-capacity-error](#asg-ice)。

**资源类型**
+ **aws:iam:role**

**参数**
+ **duration**— 在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。
+ **availabilityZoneIdentifiers**：以逗号分隔的可用区列表。支持区域 IDs （例如`"use1-az1, use1-az2"`）和区域名称（例如`"us-east-1a"`）。
+ **percentage**：注入故障信息的调用百分比 (1 - 100)。

**Permissions**
+ `ec2:InjectApiError`，条件键 `ec2:FisActionId` 值设置为 `aws:ec2:api-insufficient-instance-capacity-error`，`ec2:FisTargetArns` 条件键设置为目标 IAM 角色。

有关策略示例，请参阅 [示例：使用 `ec2:InjectApiError` 条件键](security_iam_id-based-policy-examples.md#security-iam-policy-examples-ec2)。

### aws:ec2:asg-insufficient-instance-capacity-error
<a name="asg-ice"></a>

对目标自动扩缩组发出的请求注入 `InsufficientInstanceCapacity` 错误响应。此操作仅支持使用启动模板的自动扩缩组。要了解有关实例容量不足错误的更多信息，请参阅 [Amazon EC2 用户指南](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/troubleshooting-launch.html#troubleshooting-launch-capacity)。

**资源类型**
+ **aws:ec2:autoscaling-group**

**参数**
+ **duration**— 在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。
+ **availabilityZoneIdentifiers**：以逗号分隔的可用区列表。支持区域 IDs （例如`"use1-az1, use1-az2"`）和区域名称（例如`"us-east-1a"`）。
+ **percentage**：可选。目标自动扩缩组的启动请求中注入故障的百分比（1-100）。默认值为 100。

**Permissions**
+ `ec2:InjectApiError`条件键 ec2: FisActionId 值设置为，`aws:ec2:asg-insufficient-instance-capacity-error``ec2:FisTargetArns`条件键设置为目标 Auto Scaling 组。
+ `autoscaling:DescribeAutoScalingGroups`

有关策略示例，请参阅 [示例：使用 `ec2:InjectApiError` 条件键](security_iam_id-based-policy-examples.md#security-iam-policy-examples-ec2)。

### aws:ec2:reboot-instances
<a name="reboot-instances"></a>

在目标 EC2 实例[RebootInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RebootInstances.html)上运行 Amazon EC2 API 操作。

**资源类型**
+ **aws:ec2:instance**

**参数**
+ 无

**Permissions**
+ `ec2:RebootInstances`
+ `ec2:DescribeInstances`

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorEC2访问](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorEC2Access.html)

### aws:ec2:send-spot-instance-interruptions
<a name="send-spot-instance-interruptions"></a>

中断目标竞价型实例。在中断前两分钟，向目标竞价型实例发送[竞价型实例中断通知](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html#spot-instance-termination-notices)。中断时间由指定的**durationBeforeInterruption**参数确定。在中断后两分钟，竞价型实例会终止或停止，具体取决于中断行为。由 AWS FIS 停止的竞价型实例会一直保持停止状态，直至重启。

启动操作后，目标实例会立刻收到一条 [重新平衡 EC2 实例的建议](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/rebalance-recommendations.html)。如果您指定 **durationBeforeInterruption**，则在再平衡建议和中断通知之间可能会有延迟。

有关更多信息，请参阅 [教程：使用 AWS FIS 测试点实例中断](fis-tutorial-spot-interruptions.md)。或者，要使用 Amazon EC2 控制台启动实验，请参阅 *Amazon EC2 用户指南*中的[启动竞价型实例中断](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/initiate-a-spot-instance-interruption.html)。

**资源类型**
+ **aws:ec2:spot-instance**

**参数**
+ **durationBeforeInterruption**：中断实例前的等待时间，从 2 到 15 分钟不等。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT2M 代表两分钟。在 AWS FIS 控制台中，您可以输入分钟数。

**Permissions**
+ `ec2:SendSpotInstanceInterruptions`
+ `ec2:DescribeInstances`

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorEC2访问](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorEC2Access.html)

### aws:ec2:stop-instances
<a name="stop-instances"></a>

在目标 EC2 实例[StopInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_StopInstances.html)上运行 Amazon EC2 API 操作。

**资源类型**
+ **aws:ec2:instance**

**参数**
+ **startInstancesAfterDuration**：可选。启动实例前的等待时间，从一分钟到 12 小时不等。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。您可以在 AWS FIS 控制台中输入秒数、分钟数或小时数。如果实例具有加密的 EBS 卷，则必须向用于加密该卷的 KMS 密钥授予 AWS FIS 权限，或者将实验角色添加到 KMS 密钥策略中。
+ **completeIfInstancesTerminated**：可选。如果为 true，并且 `startInstancesAfterDuration` 也为 true，则当目标 EC2 实例被 FIS 之外的单独请求终止且无法重启时，此操作不会失败。例如，在此操作完成之前，自动扩缩组可能会终止其控制下的已停止 EC2 实例。默认值为 false。

**Permissions**
+ `ec2:StopInstances`
+ `ec2:StartInstances`
+ `ec2:DescribeInstances`：可选。需要使用 “**completeIfInstances已终止**”，才能在操作结束时验证实例状态。
+ `kms:CreateGrant`：可选。需要使用**startInstancesAfter持续时间**来重启带有加密卷的实例。

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorEC2访问](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorEC2Access.html)

### aws:ec2:terminate-instances
<a name="terminate-instances"></a>

在目标 EC2 实例[TerminateInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TerminateInstances.html)上运行 Amazon EC2 API 操作。

**资源类型**
+ **aws:ec2:instance**

**参数**
+ 无

**Permissions**
+ `ec2:TerminateInstances`
+ `ec2:DescribeInstances`

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorEC2访问](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorEC2Access.html)

## Amazon ECS 操作
<a name="ecs-actions-reference"></a>

AWS FIS 支持以下 Amazon ECS 操作。

**Topics**
+ [aws:ecs:drain-container-instances](#drain-container-instances)
+ [aws:ecs:stop-task](#stop-task)
+ [aws:ecs:task-cpu-stress](#task-cpu-stress)
+ [aws:ecs:task-io-stress](#task-io-stress)
+ [aws:ecs:task-kill-process](#task-kill-process)
+ [aws:ecs:task-network-blackhole-port](#task-network-blackhole-port)
+ [aws:ecs:task-network-latency](#task-network-latency)
+ [aws:ecs:task-network-packet-loss](#task-network-packet-loss)

### aws:ecs:drain-container-instances
<a name="drain-container-instances"></a>

运行 Amazon ECS API 操作[UpdateContainerInstancesState](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateContainerInstancesState.html)以耗尽目标集群上指定百分比的底层 Amazon EC2 实例。

**资源类型**
+ **aws:ecs:cluster**

**参数**
+ **drainagePercentage**：百分比 (1 - 100)。
+ **duration**：持续时间，从一分钟到 12 小时不等。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。

**Permissions**
+ `ecs:DescribeClusters`
+ `ecs:UpdateContainerInstancesState`
+ `ecs:ListContainerInstances`
+ `tag:GetResources`

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorECSAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorECSAccess.html)

### aws:ecs:stop-task
<a name="stop-task"></a>

运行 Amazon ECS API 操作[StopTask](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_StopTask.html)以停止目标任务。

**资源类型**
+ **aws:ecs:task**

**参数**
+ 无

**Permissions**
+ `ecs:DescribeTasks`
+ `ecs:ListTasks`
+ `ecs:StopTask`
+ `tag:GetResources`

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorECSAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorECSAccess.html)

### aws:ecs:task-cpu-stress
<a name="task-cpu-stress"></a>

在目标任务上运行 CPU 压力测试。使用 [AWSFIS-Run-CPU-stres](https://console.aws.amazon.com/systems-manager/documents/AWSFIS-Run-CPU-Stress/description) s SSM 文档。任务必须由管理 AWS Systems Manager。有关更多信息，请参阅 [ECS 任务操作](ecs-task-actions.md)。

**资源类型**
+ **aws:ecs:task**

**参数**
+ **duration**：压力测试的持续时间，格式为 ISO 8601。
+ **percent**：可选。目标负载百分比，从 0（空载）到 100（满载）不等。默认值为 100。
+ **workers**：可选。要使用的压力源数量。默认为 0，使用所有压力源。
+ **installDependencies**：可选。如果值为 `True`，则 Systems Manager 会在 sidecar 容器上为 SSM 代理安装必要依赖项（如未安装）。默认值为 `True`。依赖项为 **stress-ng**。

**Permissions**
+ `ecs:DescribeTasks`
+ `ssm:SendCommand`
+ `ssm:ListCommands`
+ `ssm:CancelCommand`

### aws:ecs:task-io-stress
<a name="task-io-stress"></a>

对目标任务运行 str I/O ess。使用 [AWSFIS-Run-io-stress SSM 文档](https://console.aws.amazon.com/systems-manager/documents/AWSFIS-Run-IO-Stress/description)。任务必须由管理 AWS Systems Manager。有关更多信息，请参阅 [ECS 任务操作](ecs-task-actions.md)。

**资源类型**
+ **aws:ecs:task**

**参数**
+ **duration**：压力测试的持续时间，格式为 ISO 8601。
+ **percent**：可选。在压力测试期间，文件系统上使用的空闲空间百分比。默认为 80%。
+ **workers**：可选。工作程序数量。Workers 混合执行顺序、随机和内存映射 read/write 操作、强制同步和缓存丢弃。多个子进程对同一个文件执行不同的 I/O 操作。默认为 1。
+ **installDependencies**：可选。如果值为 `True`，则 Systems Manager 会在 sidecar 容器上为 SSM 代理安装必要依赖项（如未安装）。默认值为 `True`。依赖项为 **stress-ng**。

**Permissions**
+ `ecs:DescribeTasks`
+ `ssm:SendCommand`
+ `ssm:ListCommands`
+ `ssm:CancelCommand`

### aws:ecs:task-kill-process
<a name="task-kill-process"></a>

运行 **killall** 命令，停止任务中的指定进程。使用 [AWSFIS-Run-Kill-Process SSM 文档](https://console.aws.amazon.com/systems-manager/documents/AWSFIS-Run-Kill-Process/description)。必须在任务定义中将 `pidMode` 设为 `task`。任务必须由管理 AWS Systems Manager。有关更多信息，请参阅 [ECS 任务操作](ecs-task-actions.md)。

**资源类型**
+ **aws:ecs:task**

**参数**
+ **processName**：待停止进程的名称。
+ **signal**：可选。要与命令一起发送的信号。这些值可能是 `SIGTERM`（接收者可以忽略的值）和 `SIGKILL`（接收者不能忽略的值）。默认值为 `SIGTERM`。
+ **installDependencies**：可选。如果值为 `True`，则 Systems Manager 会在 sidecar 容器上为 SSM 代理安装必要依赖项（如未安装）。默认值为 `True`。依赖项为 **killall**。

**Permissions**
+ `ecs:DescribeTasks`
+ `ssm:SendCommand`
+ `ssm:ListCommands`
+ `ssm:CancelCommand`

### aws:ecs:task-network-blackhole-port
<a name="task-network-blackhole-port"></a>

使用 [Amazon ECS 故障注入终](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fault-injection.html)端节点丢弃指定协议和端口的入站或出站流量。使用-n [AWSFIS-Runetwork-blackHole-port-EC](https://console.aws.amazon.com/systems-manager/documents/AWSFIS-Run-Network-Blackhole-Port-ECS/description) S SSM 文档。必须在任务定义中将 `pidMode` 设为 `task`。任务必须由管理 AWS Systems Manager。您不能在任务定义中将 `networkMode` 设为 `bridge`。有关更多信息，请参阅 [ECS 任务操作](ecs-task-actions.md)。

设置`useEcsFaultInjectionEndpoints`为时，故障将使用该`iptables`工具`false`，并使用 [AWSFIS-Run-Network-Blackhole-Port SSM](https://console.aws.amazon.com/systems-manager/documents/AWSFIS-Run-Network-Blackhole-Port/description) 文档。

**资源类型**
+ **aws:ecs:task**

**参数**
+ **duration**：测试的持续时间，格式为 ISO 8601。
+ **port**：端口号。
+ **trafficType**：流量类型。可能的值为 `ingress` 和 `egress`。
+ **protocol**：可选。协议。可能的值为 `tcp` 和 `udp`。默认为 `tcp`。
+ **installDependencies**：可选。如果值为 `True`，则 Systems Manager 会在 sidecar 容器上为 SSM 代理安装必要依赖项（如未安装）。默认值为 `True`。依赖关系是**atd****curl-minimal**、**dig**和**jq**。
+ **useEcsFaultInjectionEndpoints**：可选。如果设置为 true，则 APIs 将使用 Amazon ECS 故障注入。默认值为 false。

**Permissions**
+ `ecs:DescribeTasks`
+ `ssm:SendCommand`
+ `ssm:ListCommands`
+ `ssm:CancelCommand`

### aws:ecs:task-network-latency
<a name="task-network-latency"></a>

使用 A [mazon ECS 故障注](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fault-injection.html)入终端节点，为网络接口增加延迟和抖动，以便向特定来源传出流量。使用-n [AWSFIS-Runetwork-Latency-EC](https://console.aws.amazon.com/systems-manager/documents/AWSFIS-Run-Network-Latency-ECS/description) S SSM 文档。必须在任务定义中将 `pidMode` 设为 `task`。任务必须由管理 AWS Systems Manager。您不能在任务定义中将 `networkMode` 设为 `bridge`。有关更多信息，请参阅 [ECS 任务操作](ecs-task-actions.md)。

设置`useEcsFaultInjectionEndpoints`为时，故障将使用该`tc`工具`false`，并使用 [AWSFIS-Run-Network-Latency-Sources SSM](https://console.aws.amazon.com/systems-manager/documents/AWSFIS-Run-Network-Latency-Sources/description) 文档。

使用`flowsPercent`参数来增加一定百分比的连接的延迟。要使用该`flowsPercent`参数，ECS 代理版本应为`1.100.0`或更高。

要在`sources`参数 IDs 中使用可用区名称或可用区，操作的所有目标都必须位于同一 VPC 上。

**资源类型**
+ **aws:ecs:task**

**参数**
+ **duration**：测试的持续时间，格式为 ISO 8601。
+ **delayMilliseconds**：可选。延迟（单位：毫秒）。默认为 200。
+ **jitterMilliseconds**：可选。抖动（单位：毫秒）。默认值为 10。
+ **flowsPercent**：可选。将受该操作影响的网络流量的百分比。默认 为 100%。
+ **sources**：可选。源代码用逗号分隔，不含空格。可能的值是： IPv4 地址、 IPv4 CIDR 块、域名、可用区名称 (us-east-1a)、可用区 ID (use1-az1)、ALL 和。`DYNAMODB` `S3`如果指定值为 `DYNAMODB` 或 `S3`，则仅适用于当前区域中的区域端点。默认值为 ALL，它匹配所有 IPv4流量。
+ **installDependencies**：可选。如果值为 `True`，则 Systems Manager 会在 sidecar 容器上为 SSM 代理安装必要依赖项（如未安装）。默认值为 `True`。依赖关系是**atd****curl-minimal**、**dig**、**jq**和**lsof**。
+ **useEcsFaultInjectionEndpoints**：可选。如果设置为 true，则 APIs 将使用 Amazon ECS 故障注入。默认值为 false。

**Permissions**
+ `ecs:DescribeTasks`
+ `ecs:DescribeContainerInstances`
+ `ec2:DescribeInstances`
+ `ec2:DescribeSubnets`
+ `ssm:SendCommand`
+ `ssm:ListCommands`
+ `ssm:CancelCommand`

### aws:ecs:task-network-packet-loss
<a name="task-network-packet-loss"></a>

使用 [Amazon ECS 故障注入终端节点](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fault-injection.html)，将数据包丢失添加到网络接口，用于向特定来源的出口流量。使用-network-[AWSFIS-RunPacket-loss-ec](https://console.aws.amazon.com/systems-manager/documents/AWSFIS-Run-Network-Packet-Loss-ECS/description) s SSM 文档。必须在任务定义中将 `pidMode` 设为 `task`。任务必须由管理 AWS Systems Manager。您不能在任务定义中将 `networkMode` 设为 `bridge`。有关更多信息，请参阅 [ECS 任务操作](ecs-task-actions.md)。

设置`useEcsFaultInjectionEndpoints`为时，故障将使用该`tc`工具`false`，并使用-Network-[AWSFIS-RunPacket-Loss-Sources SS](https://console.aws.amazon.com/systems-manager/documents/AWSFIS-Run-Network-Packet-Loss-Sources/description) M 文档。

使用`flowsPercent`参数按一定百分比的连接注入丢包信息。要使用该`flowsPercent`参数，ECS 代理版本应为`1.100.0`或更高。

要在`sources`参数 IDs 中使用可用区名称或可用区，操作的所有目标都必须位于同一 VPC 上。

**资源类型**
+ **aws:ecs:task**

**参数**
+ **duration**：测试的持续时间，格式为 ISO 8601。
+ **lossPercent**：可选。丢包率。默认为 7%。
+ **flowsPercent**：可选。将受该操作影响的网络流量的百分比。默认 为 100%。
+ **sources**：可选。源代码用逗号分隔，不含空格。可能的值是： IPv4 地址、 IPv4 CIDR 块、域名、可用区名称 (us-east-1a)、可用区 ID (use1-az1)、ALL 和。`DYNAMODB` `S3`如果指定值为 `DYNAMODB` 或 `S3`，则仅适用于当前区域中的区域端点。默认值为 ALL，它匹配所有 IPv4流量。
+ **installDependencies**：可选。如果值为 `True`，则 Systems Manager 会在 sidecar 容器上为 SSM 代理安装必要依赖项（如未安装）。默认值为 `True`。依赖关系是**atd****curl-minimal**、**dig**、**jq**和**lsof**。
+ **useEcsFaultInjectionEndpoints**：可选。如果设置为 true，则 APIs 将使用 Amazon ECS 故障注入。默认值为 false。

**Permissions**
+ `ecs:DescribeTasks`
+ `ecs:DescribeContainerInstances`
+ `ec2:DescribeInstances`
+ `ec2:DescribeSubnets`
+ `ssm:SendCommand`
+ `ssm:ListCommands`
+ `ssm:CancelCommand`

## Amazon EKS 操作
<a name="eks-actions-reference"></a>

AWS FIS 支持以下 Amazon EKS 操作。

**Topics**
+ [aws:eks:inject-kubernetes-custom-resource](#inject-kubernetes-custom-resource)
+ [aws:eks:pod-cpu-stress](#pod-cpu-stress)
+ [aws:eks:pod-delete](#pod-delete)
+ [aws:eks:pod-io-stress](#pod-io-stress)
+ [aws:eks:pod-memory-stress](#pod-memory-stress)
+ [aws:eks:pod-network-blackhole-port](#pod-network-blackhole-port)
+ [aws:eks:pod-network-latency](#pod-network-latency)
+ [aws:eks:pod-network-packet-loss](#pod-network-packet-loss)
+ [aws:eks:terminate-nodegroup-instances](#terminate-nodegroup-instance)

### aws:eks:inject-kubernetes-custom-resource
<a name="inject-kubernetes-custom-resource"></a>

在单个目标集群上运行 ChaosMesh 或 Litmus 实验。您必须在目标集群上安装 ChaosMesh 或 Litmus。

在创建实验模板并定义 `aws:eks:cluster` 的目标类型时，请务必将此操作定位到单个 Amazon 资源名称 (ARN) 。此操作不支持使用资源标签、筛选条件或参数定义目标。

安装时 ChaosMesh，必须指定相应的容器运行时。从 Amazon EKS 版本 1.23 起，将默认运行时从 Docker 更改为 **containerd**。从版本 1.24 版本起，删除 Docker。

**资源类型**
+ **aws:eks:cluster**

**参数**
+ **kubernetesApiVersion**：[Kubernetes 自定义资源](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/)的 API 版本。值可能是 `chaos-mesh.org/v1alpha1` \$1 `litmuschaos.io/v1alpha1`。
+ **kubernetesKind**：Kubernetes 自定义资源类型。此值取决于 API 版本。
  + `chaos-mesh.org/v1alpha1`：值可能是 `AWSChaos` \$1 `DNSChaos` \$1 `GCPChaos` \$1 `HTTPChaos` \$1 `IOChaos` \$1 `JVMChaos` \$1 `KernelChaos` \$1 `NetworkChaos` \$1 `PhysicalMachineChaos` \$1 `PodChaos` \$1 `PodHttpChaos` \$1 `PodIOChaos` \$1 `PodNetworkChaos` \$1 `Schedule` \$1 `StressChaos` \$1 `TimeChaos` \$1
  + `litmuschaos.io/v1alpha1`：值可能是 `ChaosEngine`。
+ **kubernetesNamespace**：[Kubernetes 命名空间](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/)
+ **kubernetesSpec**：Kubernetes 自定义资源的 `spec` 部分，格式为 JSON。
+ **maxDuration**：允许完成自动化执行的最长时间，从一分钟到 12 小时不等。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。

**Permissions**  
此操作不需要 AWS 身份和访问管理 (IAM) 权限。通过 RBAC 授权，Kubernetes 可控制执行此操作所需的权限。有关更多信息，请参阅 Kubernetes 官方文档中的[使用 RBAC 授权](https://kubernetes.io/docs/reference/access-authn-authz/rbac/)。有关 Chaos Mesh 的更多信息，请参阅 [Chaos Mesh 官方文档](https://chaos-mesh.org/docs/)。有关 Litmus 的更多信息，请参阅 [Litmus 官方文档](https://docs.litmuschaos.io/docs/introduction/what-is-litmus/)。

### aws:eks:pod-cpu-stress
<a name="pod-cpu-stress"></a>

在目标容器组（pod）上运行 CPU 压力测试。有关更多信息，请参阅 [EKS Pod 操作](eks-pod-actions.md)。

**资源类型**
+ **aws:eks:pod**

**参数**
+ **duration**：压力测试的持续时间，格式为 ISO 8601。
+ **percent**：可选。目标负载百分比，从 0（空载）到 100（满载）不等。默认值为 100。
+ **workers**：可选。要使用的压力源数量。默认为 0，使用所有压力源。
+ **kubernetesServiceAccount**：Kubernetes 服务账户。有关所需权限的信息，请参阅[配置 Kubernetes 服务账户](eks-pod-actions.md#configure-service-account)。
+ **fisPodContainerImage**：可选。用于创建故障注入容器组（pod）的容器映像。默认为使用提供的图像 AWS FIS。有关更多信息，请参阅 [容器组（pod）容器映像](eks-pod-actions.md#eks-pod-container-images)。
+ **maxErrorsPercent** – 可选。可能比故障注入更早失败的目标的百分比。默认值是 0。
+ **fisPodLabels**：可选。附加到 FIS 创建的故障编排容器组（pod）的 Kubernetes 标签。
+ **fisPodAnnotations**：可选。附加到 FIS 创建的故障编排容器组（pod）的 Kubernetes 注释。
+ **fisPodSecurityPolicy**：可选。用于 FIS 创建的故障编排容器组（pod）和临时容器的 [Kubernetes 安全标准](https://kubernetes.io/docs/concepts/security/pod-security-standards/)策略。可能的值为 `privileged`、`baseline` 和 `restricted`。此操作与所有策略级别兼容。

**Permissions**
+ `eks:DescribeCluster`
+ `ec2:DescribeSubnets`
+ `tag:GetResources`

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorEKSAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorEKSAccess.html)

### aws:eks:pod-delete
<a name="pod-delete"></a>

删除目标容器组（pod）。有关更多信息，请参阅 [EKS Pod 操作](eks-pod-actions.md)。

**资源类型**
+ **aws:eks:pod**

**参数**
+ **gracePeriodSeconds**：可选。等待容器组（pod）正常终止的持续时间（单位：秒）。如果值为 0，则立即执行操作。如果值为 nil，则使用容器组（pod）的默认宽限期。
+ **kubernetesServiceAccount**：Kubernetes 服务账户。有关所需权限的信息，请参阅[配置 Kubernetes 服务账户](eks-pod-actions.md#configure-service-account)。
+ **fisPodContainerImage**：可选。用于创建故障注入容器组（pod）的容器映像。默认为使用提供的图像 AWS FIS。有关更多信息，请参阅 [容器组（pod）容器映像](eks-pod-actions.md#eks-pod-container-images)。
+ **maxErrorsPercent** – 可选。可能比故障注入更早失败的目标的百分比。默认值是 0。
+ **fisPodLabels**：可选。附加到 FIS 创建的故障编排容器组（pod）的 Kubernetes 标签。
+ **fisPodAnnotations**：可选。附加到 FIS 创建的故障编排容器组（pod）的 Kubernetes 注释。
+ **fisPodSecurityPolicy**：可选。用于 FIS 创建的故障编排容器组（pod）和临时容器的 [Kubernetes 安全标准](https://kubernetes.io/docs/concepts/security/pod-security-standards/)策略。可能的值为 `privileged`、`baseline` 和 `restricted`。此操作与所有策略级别兼容。

**Permissions**
+ `eks:DescribeCluster`
+ `ec2:DescribeSubnets`
+ `tag:GetResources`

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorEKSAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorEKSAccess.html)

### aws:eks:pod-io-stress
<a name="pod-io-stress"></a>

在目标 pod 上运行 I/O stress。有关更多信息，请参阅 [EKS Pod 操作](eks-pod-actions.md)。

**资源类型**
+ **aws:eks:pod**

**参数**
+ **duration**：压力测试的持续时间，格式为 ISO 8601。
+ **workers**：可选。工作程序数量。Workers 混合执行顺序、随机和内存映射 read/write 操作、强制同步和缓存丢弃。多个子进程对同一个文件执行不同的 I/O 操作。默认为 1。
+ **percent**：可选。在压力测试期间，文件系统上使用的空闲空间百分比。默认为 80%。
+ **kubernetesServiceAccount**：Kubernetes 服务账户。有关所需权限的信息，请参阅[配置 Kubernetes 服务账户](eks-pod-actions.md#configure-service-account)。
+ **fisPodContainerImage**：可选。用于创建故障注入容器组（pod）的容器映像。默认为使用提供的图像 AWS FIS。有关更多信息，请参阅 [容器组（pod）容器映像](eks-pod-actions.md#eks-pod-container-images)。
+ **maxErrorsPercent** – 可选。可能比故障注入更早失败的目标的百分比。默认值是 0。
+ **fisPodLabels**：可选。附加到 FIS 创建的故障编排容器组（pod）的 Kubernetes 标签。
+ **fisPodAnnotations**：可选。附加到 FIS 创建的故障编排容器组（pod）的 Kubernetes 注释。
+ **fisPodSecurityPolicy**：可选。用于 FIS 创建的故障编排容器组（pod）和临时容器的 [Kubernetes 安全标准](https://kubernetes.io/docs/concepts/security/pod-security-standards/)策略。可能的值为 `privileged`、`baseline` 和 `restricted`。此操作与所有策略级别兼容。

**Permissions**
+ `eks:DescribeCluster`
+ `ec2:DescribeSubnets`
+ `tag:GetResources`

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorEKSAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorEKSAccess.html)

### aws:eks:pod-memory-stress
<a name="pod-memory-stress"></a>

在目标容器组（pod）上运行内存压力测试。有关更多信息，请参阅 [EKS Pod 操作](eks-pod-actions.md)。

**资源类型**
+ **aws:eks:pod**

**参数**
+ **duration**：压力测试的持续时间，格式为 ISO 8601。
+ **workers**：可选。要使用的压力源数量。默认为 1。
+ **percent**：可选。压力测试期间要使用的虚拟内存百分比。默认为 80%。
+ **kubernetesServiceAccount**：Kubernetes 服务账户。有关所需权限的信息，请参阅[配置 Kubernetes 服务账户](eks-pod-actions.md#configure-service-account)。
+ **fisPodContainerImage**：可选。用于创建故障注入容器组（pod）的容器映像。默认为使用提供的图像 AWS FIS。有关更多信息，请参阅 [容器组（pod）容器映像](eks-pod-actions.md#eks-pod-container-images)。
+ **maxErrorsPercent** – 可选。可能比故障注入更早失败的目标的百分比。默认值是 0。
+ **fisPodLabels**：可选。附加到 FIS 创建的故障编排容器组（pod）的 Kubernetes 标签。
+ **fisPodAnnotations**：可选。附加到 FIS 创建的故障编排容器组（pod）的 Kubernetes 注释。
+ **fisPodSecurityPolicy**：可选。用于 FIS 创建的故障编排容器组（pod）和临时容器的 [Kubernetes 安全标准](https://kubernetes.io/docs/concepts/security/pod-security-standards/)策略。可能的值为 `privileged`、`baseline` 和 `restricted`。此操作与所有策略级别兼容。

**Permissions**
+ `eks:DescribeCluster`
+ `ec2:DescribeSubnets`
+ `tag:GetResources`

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorEKSAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorEKSAccess.html)

### aws:eks:pod-network-blackhole-port
<a name="pod-network-blackhole-port"></a>

丢弃指定协议和端口的入站或出站流量。仅与 [Kubernetes 安全标准](https://kubernetes.io/docs/concepts/security/pod-security-standards/) `privileged` 策略兼容。有关更多信息，请参阅 [EKS Pod 操作](eks-pod-actions.md)。

**资源类型**
+ **aws:eks:pod**

**参数**
+ **duration**：测试的持续时间，格式为 ISO 8601。
+ **protocol**：协议。可能的值为 `tcp` 和 `udp`。
+ **trafficType**：流量类型。可能的值为 `ingress` 和 `egress`。
+ **port**：端口号。
+ **kubernetesServiceAccount**：Kubernetes 服务账户。有关所需权限的信息，请参阅[配置 Kubernetes 服务账户](eks-pod-actions.md#configure-service-account)。
+ **fisPodContainerImage**：可选。用于创建故障注入容器组（pod）的容器映像。默认为使用提供的图像 AWS FIS。有关更多信息，请参阅 [容器组（pod）容器映像](eks-pod-actions.md#eks-pod-container-images)。
+ **maxErrorsPercent** – 可选。可能比故障注入更早失败的目标的百分比。默认值是 0。
+ **fisPodLabels**：可选。附加到 FIS 创建的故障编排容器组（pod）的 Kubernetes 标签。
+ **fisPodAnnotations**：可选。附加到 FIS 创建的故障编排容器组（pod）的 Kubernetes 注释。

**Permissions**
+ `eks:DescribeCluster`
+ `ec2:DescribeSubnets`
+ `tag:GetResources`

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorEKSAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorEKSAccess.html)

### aws:eks:pod-network-latency
<a name="pod-network-latency"></a>

使用 **tc** 工具，为往返于特定来源的流量添加网络接口的延迟和抖动。仅与 [Kubernetes 安全标准](https://kubernetes.io/docs/concepts/security/pod-security-standards/) `privileged` 策略兼容。有关更多信息，请参阅 [EKS Pod 操作](eks-pod-actions.md)。

使用`flowsPercent`参数来增加一定百分比的连接的延迟。

**资源类型**
+ **aws:eks:pod**

**参数**
+ **duration**：测试的持续时间，格式为 ISO 8601。
+ **interface**：可选。网络接口，用逗号分隔。支持 “全部” 和 “默认值”。默认为`DEFAULT`，它将以操作系统的主网络接口为目标。
+ **delayMilliseconds**：可选。延迟（单位：毫秒）。默认为 200。
+ **jitterMilliseconds**：可选。抖动（单位：毫秒）。默认值为 10。
+ **flowsPercent**：可选。将受该操作影响的网络流量的百分比。默认 为 100%。
+ **sources**：可选。源代码用逗号分隔，不含空格。可能的值是： IPv4 地址、 IPv4 CIDR 块、域名、可用区名称 (us-east-1a)、可用区 ID (use1-az1)、ALL 和。`DYNAMODB` `S3`如果指定值为 `DYNAMODB` 或 `S3`，则仅适用于当前区域中的区域端点。对于域名，会尝试进行 10 次 DNS 解析以收集 IP 地址。由于 DNS 负载平衡和轮换，此操作可能不会损害域可以解析到的所有可能的 IP 地址。默认值为 ALL，它匹配所有 IPv4 流量。
+ **kubernetesServiceAccount**：Kubernetes 服务账户。有关所需权限的信息，请参阅[配置 Kubernetes 服务账户](eks-pod-actions.md#configure-service-account)。
+ **fisPodContainerImage**：可选。用于创建故障注入容器组（pod）的容器映像。默认为使用提供的图像 AWS FIS。有关更多信息，请参阅 [容器组（pod）容器映像](eks-pod-actions.md#eks-pod-container-images)。
+ **maxErrorsPercent** – 可选。可能比故障注入更早失败的目标的百分比。默认值是 0。
+ **fisPodLabels**：可选。附加到 FIS 创建的故障编排容器组（pod）的 Kubernetes 标签。
+ **fisPodAnnotations**：可选。附加到 FIS 创建的故障编排容器组（pod）的 Kubernetes 注释。

**Permissions**
+ `eks:DescribeCluster`
+ `ec2:DescribeSubnets`
+ `tag:GetResources`

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorEKSAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorEKSAccess.html)

### aws:eks:pod-network-packet-loss
<a name="pod-network-packet-loss"></a>

使用 **tc** 工具，为网络接口添加丢包。仅与 [Kubernetes 安全标准](https://kubernetes.io/docs/concepts/security/pod-security-standards/) `privileged` 策略兼容。有关更多信息，请参阅 [EKS Pod 操作](eks-pod-actions.md)。

使用`flowsPercent`参数按一定百分比的连接注入丢包信息。

**资源类型**
+ **aws:eks:pod**

**参数**
+ **duration**：测试的持续时间，格式为 ISO 8601。
+ **interface**：可选。网络接口，用逗号分隔。支持 “全部” 和 “默认值”。默认为`DEFAULT`，它将以操作系统的主网络接口为目标。
+ **lossPercent**：可选。丢包率。默认为 7%。
+ **flowsPercent**：可选。将受该操作影响的网络流量的百分比。默认 为 100%。
+ **sources**：可选。源代码用逗号分隔，不含空格。可能的值是： IPv4 地址、 IPv4 CIDR 块、域名、可用区名称 (us-east-1a)、可用区 ID (use1-az1)、ALL 和。`DYNAMODB` `S3`如果指定值为 `DYNAMODB` 或 `S3`，则仅适用于当前区域中的区域端点。对于域名，会尝试进行 10 次 DNS 解析以收集 IP 地址。由于 DNS 负载平衡和轮换，此操作可能不会损害域可以解析到的所有可能的 IP 地址。默认值为 ALL，它匹配所有 IPv4 流量。
+ **kubernetesServiceAccount**：Kubernetes 服务账户。有关所需权限的信息，请参阅[配置 Kubernetes 服务账户](eks-pod-actions.md#configure-service-account)。
+ **fisPodContainerImage**：可选。用于创建故障注入容器组（pod）的容器映像。默认为使用提供的图像 AWS FIS。有关更多信息，请参阅 [容器组（pod）容器映像](eks-pod-actions.md#eks-pod-container-images)。
+ **maxErrorsPercent** – 可选。可能比故障注入更早失败的目标的百分比。默认值是 0。
+ **fisPodLabels**：可选。附加到 FIS 创建的故障编排容器组（pod）的 Kubernetes 标签。
+ **fisPodAnnotations**：可选。附加到 FIS 创建的故障编排容器组（pod）的 Kubernetes 注释。

**Permissions**
+ `eks:DescribeCluster`
+ `ec2:DescribeSubnets`
+ `tag:GetResources`

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorEKSAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorEKSAccess.html)

### aws:eks:terminate-nodegroup-instances
<a name="terminate-nodegroup-instance"></a>

在目标节点组[TerminateInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TerminateInstances.html)上运行 Amazon EC2 API 操作。仅与 Amazon EKS 托管节点组兼容。不支持自建节点组。有关更多信息，请参阅 [EKS 管理计算](https://docs.aws.amazon.com/eks/latest/userguide/eks-compute.html)。

**资源类型**
+ **aws:eks:nodegroup**

**参数**
+ **instanceTerminationPercentage**：要终止的实例百分比 (1 - 100)。

**Permissions**
+ `ec2:DescribeInstances`
+ `ec2:TerminateInstances`
+ `eks:DescribeNodegroup`
+ `tag:GetResources`

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorEKSAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorEKSAccess.html)

## 亚马逊的 ElastiCache 行动
<a name="elasticache-actions-reference"></a>

AWS FIS 支持以下 ElastiCache 操作。

### aws:elasticache:replicationgroup-interrupt-az-power
<a name="replicationgroup-interrupt-az-power"></a>

在启用了多可用区的目标 ElastiCache复制组的指定可用区中断节点的电源。每个复制组一次只能有一个可用区受到影响。如果将某个主节点确定为目标，则复制滞后时间最短的相应只读副本将被提升为主节点。在此操作期间，指定可用区内的只读副本替换将被阻止，这意味着目标复制组的运行容量会降低。此操作的目标同时支持 Redis 和 Valkey 引擎。该操作不支持 “无服务器” 部署选项。

**资源类型**
+ **aws:elasticache:replicationgroup**

**参数**
+ **duration**：持续时间，从一分钟到 12 小时不等。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。

**Permissions**
+ `elasticache:InterruptClusterAzPower`
+ `elasticache:DescribeReplicationGroups`
+ `tag:GetResources`

**注意**  
中 ElastiCache 断可用区电源操作现在支持所有复制组类型，包括 Valkey 和 Redis。为了更好地呈现此功能，该操作已被重命名。如果您当前正在使用`aws:elasticache:interrupt-cluster-az-power`，我们建议您迁移`aws:elasticache:replicationgroup-interrupt-az-power`到新操作以利用最新功能。

## 亚马逊 Kinesis Data Streams 操作
<a name="aws-kinesis-actions"></a>

亚马逊 Kinesis Data Streams 支持以下 Kinesis 操作。

**Topics**
+ [aws:kinesis:stream-provisioned-throughput-exception](#throughput-exception)
+ [aws:kinesis:stream-expired-iterator-exception](#iterator-exception)

### aws:kinesis:stream-provisioned-throughput-exception
<a name="throughput-exception"></a>

针对目标 Kinesis Data Streams 的请求注入`ProvisionedThroughputExceededException`错误响应。支持的操作包括：`GetRecords``GetShardIterator`、`PutRecord`、和`PutRecords`。

**资源类型**
+ ****aws:kinesis:stream****

**参数**
+ **持续时间**-持续时间，范围从 1 分钟到 12 小时。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。
+ **百分比**-要将故障注入的呼叫的百分比 (1-100)。

**Permissions**
+ `kinesis:InjectApiError`

### aws:kinesis:stream-expired-iterator-exception
<a name="iterator-exception"></a>

针对指定 Kinesis Data Streams 的`GetRecords`呼叫注入`ExpiredIteratorException`错误响应。

**资源类型**
+ ******aws:kinesis:stream******

**参数**
+ **持续时间**-持续时间，范围从 1 分钟到 12 小时。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。
+ **百分比**-要将故障注入的呼叫的百分比 (1-100)。

**Permissions**
+ `kinesis:InjectApiError`

## AWS Lambda 行动
<a name="aws-lambda-actions-reference"></a>

AWS Lambda 支持以下 Lambda 操作

**Topics**
+ [aws:lambda:invocation-add-delay](#invocation-add-delay)
+ [aws:lambda:invocation-error](#invocation-error)
+ [aws:lambda:invocation-http-integration-response](#invocation-http-integration-response)

### aws:lambda:invocation-add-delay
<a name="invocation-add-delay"></a>



在您指定的时间内延迟启动函数的毫秒数。此操作的效果与 Lambda 冷启动类似，但额外的时间是计费时长的一部分，适用于所有执行环境，而不仅仅影响新的执行环境。这意味着您可能会遇到 Lambda 冷启动和延迟。通过将延迟值设置为高于 Lambda 函数上配置的超时值，此操作还将提供对高保真超时事件的访问权限。

**资源类型**
+ **aws:lambda:function**

**参数**
+ **持续时间**-操作持续的时间长度。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。
+ **调用百分比**-可选。要将错误注入的函数调用的百分比 (1-100)。默认值为 100。
+ **startupDelayMilliseconds**：可选。在函数代码调用和执行之间等待的时间，以毫秒 (0-900,000) 为单位。默认值为 1000。

**Permissions**
+ `s3:PutObject`
+ `s3:DeleteObject`
+ `lambda:GetFunction`
+ `tag:GetResources`

### aws:lambda:invocation-error
<a name="invocation-error"></a>



将 Lambda 函数调用标记为失败。此操作对于测试错误处理机制（例如警报和重试配置）非常有用。使用此操作时，您可以选择是否在返回错误之前运行函数代码。

**资源类型**
+ **aws:lambda:function**

**参数**
+ **持续时间**-操作持续的时间长度。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。
+ **调用百分比**-可选。要将错误注入的函数调用的百分比 (1-100)。默认值为 100。
+ p@@ **reventExecution** — 如果该值为真，则操作将在不执行函数的情况下返回错误。

**Permissions**
+ `s3:PutObject`
+ `s3:DeleteObject`
+ `lambda:GetFunction`
+ `tag:GetResources`

### aws:lambda:invocation-http-integration-response
<a name="invocation-http-integration-response"></a>



修改函数的行为。您可以选择内容类型和 HTTP 响应代码来支持与 ALB、API-GW 和 VPC Lattice 的集成。要启用有选择地影响上游或下游集成，您可以选择是直接返回修改后的响应，还是运行函数并在函数完成执行后替换响应。

**资源类型**
+ **aws:lambda:function**

**参数**
+ **contentTypeHeader**— 要从 Lambda 函数返回的 HTTP 内容类型标头的字符串值。
+ **持续时间**-操作持续的时间长度。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。
+ **调用百分比**-可选。要将错误注入的函数调用的百分比 (1-100)。默认值为 100。
+ p@@ **reventExecution** — 如果该值为真，则操作将在不执行函数的情况下返回响应。
+ **StatusCode** — 从 Lambda 函数返回的 HTTP 状态码 (000-999) 的值。

**Permissions**
+ `s3:PutObject`
+ `s3:DeleteObject`
+ `lambda:GetFunction`
+ `tag:GetResources`

## 亚马逊 MemoryDB 操作
<a name="memorydb-actions-reference"></a>

AWS FIS 支持以下 MemoryDB 操作。

### aws:memorydb:multi-region-cluster-pause-replication
<a name="multi-region-cluster-pause-replication"></a>

暂停一个区域集群与多区域集群内所有其他区域集群之间的复制。目标区域集群是金融信息系统实验正在进行区域的集群。在复制暂停期间，无法更新多区域集群。操作完成后，多区域集群可能需要几分钟才能恢复到可用状态。要了解有关 Amazon MemoryDB 多区域的更多信息，请参阅 A [mazon Memory](https://docs.aws.amazon.com/memorydb/latest/devguide/multi-region.html) DB 多区域开发者指南。有关区域可用性，请参阅 M [emoryDB 多区域先决条件](https://docs.aws.amazon.com/memorydb/latest/devguide/multi-region.prereq.html)和限制。

**资源类型**
+ **aws:memorydb:multi-region-cluster**

**参数**
+ **duration**：持续时间，从一分钟到 12 小时不等。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。

**Permissions**
+ `memorydb:DescribeMultiRegionClusters`
+ `memorydb:PauseMultiRegionClusterReplication`
+ `tag:GetResources`

## 网络操作
<a name="network-actions-reference"></a>

AWS FIS 支持以下网络操作。

**Topics**
+ [aws:network:disrupt-connectivity](#disrupt-connectivity)
+ [aws:network:route-table-disrupt-cross-region-connectivity](#route-table-disrupt-cross-region-connectivity)
+ [aws:network:transit-gateway-disrupt-cross-region-connectivity](#transit-gateway-disrupt-cross-region-connectivity)
+ [aws:network:disrupt-vpc-endpoint](#disrupt-vpc-endpoint)

### aws:network:disrupt-connectivity
<a name="disrupt-connectivity"></a>

通过临时克隆与目标子网关联的原始网络访问控制列表 (网络 ACL)，拒绝向目标子网发送指定流量。FIS 向克隆的网络 ACL 添加了拒绝规则，该网络ACL的标签为managedByfis=True，并在操作期间将其与子网关联。操作完成后，FIS 会删除克隆的网络 ACL 并恢复原始的网络 ACL 关联。

**资源类型**
+ **aws:ec2:subnet**

**参数**
+ **scope**：要拒绝的流量类型。如果范围不是`all`，则网络中的最大条目数 ACLs 为 20。可能的值包括：
  + `all`：拒绝所有往返于子网的流量。请注意，此选项允许子网内流量，包括往返于子网中网络接口的流量。
  + `availability-zone`：拒绝往返于其他可用区子网的 VPC 内流量。可以在 VPC 中作为目标的子网的最大数量为 30。
  + `dynamodb`：拒绝往返于当前区域中 DynamoDB 区域端点的流量。
  + `prefix-list`：拒绝往返于指定前缀列表的流量。
  + `s3`：拒绝往返于当前区域中 Amazon S3 区域端点的流量。
  + `s3express`— 拒绝进出目标子网可用区中 Amazon S3 Express One 区域的区域终端节点的流量。目标子网必须位于 S3 Express One 区域当前可用 AZs 的地方。有关更多信息，请参阅 [S3 Express One 区域可用区和区域。](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Endpoints.html)
  + `vpc`：拒绝往返于 VPC 的流量。
+ **duration**：持续时间，从一分钟到 12 小时不等。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。
+ **prefixListIdentifier**：如果范围为 `prefix-list`，即为客户托管前缀列表的标识符。您可以指定名称、ID 或 ARN。前缀列表最多可以有 10 个条目。

**Permissions**
+ `ec2:CreateNetworkAcl`：创建带有 managedByFIS=true 标签的网络 ACL。
+ `ec2:CreateNetworkAclEntry`：网络 ACL 必须带有 managedByFIS=true 标签。
+ `ec2:CreateTags`
+ `ec2:DeleteNetworkAcl`：网络 ACL 必须带有 managedByFIS=true 标签。
+ `ec2:DescribeManagedPrefixLists`
+ `ec2:DescribeNetworkAcls`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeVpcs`
+ `ec2:GetManagedPrefixListEntries`
+ `ec2:ReplaceNetworkAclAssociation`

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorNetworkAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorNetworkAccess.html)

### aws:network:route-table-disrupt-cross-region-connectivity
<a name="route-table-disrupt-cross-region-connectivity"></a>

阻止源自目标子网并发往指定区域的流量。创建路由表，使其包含要隔离的区域的所有路由。要允许 FIS 创建这些路由表，请将 Amazon VPC 配额提高`routes per route table`到 250（如果`region`参数为 us-east-1，则为 350）加上现有路由表中的路由数量。

**资源类型**
+ **aws:ec2:subnet**

**参数**
+ `region`：要隔离的区域的代码（例如，eu-west-1）。
+ `duration`：操作持续的时间长度。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。

**Permissions**
+ `ec2:AssociateRouteTable`
+ `ec2:CreateManagedPrefixList` †
+ `ec2:CreateNetworkInterface` †
+ `ec2:CreateRoute` †
+ `ec2:CreateRouteTable` †
+ `ec2:CreateTags` †
+ `ec2:DeleteManagedPrefixList` †
+ `ec2:DeleteNetworkInterface` †
+ `ec2:DeleteRouteTable` †
+ `ec2:DescribeManagedPrefixLists`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:DescribeRouteTables`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeVpcPeeringConnections`
+ `ec2:DescribeVpcs`
+ `ec2:DisassociateRouteTable`
+ `ec2:GetManagedPrefixListEntries`
+ `ec2:ModifyManagedPrefixList` †
+ `ec2:ModifyVpcEndpoint`
+ `ec2:ReplaceRouteTableAssociation`

† 使用标签 managedByFIS=true 限定范围。您无需管理此标签。 AWS FIS 在实验期间添加和移除此标签。

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorNetworkAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorNetworkAccess.html)

### aws:network:transit-gateway-disrupt-cross-region-connectivity
<a name="transit-gateway-disrupt-cross-region-connectivity"></a>

阻止源自目标中转网关对等连接并发往指定区域的流量。

**资源类型**
+ **aws:ec2:transit-gateway**

**参数**
+ `region`：要隔离的区域的代码（例如，eu-west-1）。
+ `duration`：操作持续的时间长度。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。

**Permissions**
+ `ec2:AssociateTransitGatewayRouteTable`
+ `ec2:DescribeTransitGatewayAttachments`
+ `ec2:DescribeTransitGatewayPeeringAttachments`
+ `ec2:DescribeTransitGateways`
+ `ec2:DisassociateTransitGatewayRouteTable`

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorNetworkAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorNetworkAccess.html)

### aws:network:disrupt-vpc-endpoint
<a name="disrupt-vpc-endpoint"></a>

阻止目标接口 VPC 终端节点的入站和出站流量。FIS 使用空规则创建托管安全组，并使用该托管安全组临时替换目标 VPC 终端节点的安全组。如果在操作执行期间对目标资源进行了修改，则操作将失败，资源也不会恢复到实验前的状态。此外，如果在操作执行期间修改了 FIS 管理的安全组，则 FIS 不会将其删除。

**资源类型**
+ **aws:ec2:vpc-endpoint**

**参数**
+ `duration`：操作持续的时间长度。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。

**Permissions**
+ `ec2:DescribeVpcEndpoints`
+ `ec2:DescribeSecurityGroups`
+ `ec2:ModifyVpcEndpoint`
+ `ec2:CreateSecurityGroup`
+ `ec2:DeleteSecurityGroup`
+ `ec2:RevokeSecurityGroupEgress`
+ `ec2:CreateTags`
+ `vpce:AllowMultiRegion` \$1

\$1 仅当您的目标是跨区域 VPC 终端节点时，才需要该权限

## Amazon RDS 操作
<a name="rds-actions-reference"></a>

AWS FIS 支持以下 Amazon RDS 操作。

**Topics**
+ [aws:rds:failover-db-cluster](#failover-db-cluster)
+ [aws:rds:reboot-db-instances](#reboot-db-instances)

### aws:rds:failover-db-cluster
<a name="failover-db-cluster"></a>

在目标 Aurora 数据库集群DBCluster上运行 Amazon RDS API 操作[故障转移](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_FailoverDBCluster.html)。支持 RDS 集群和文档数据库集群。

**资源类型**
+ **aws:rds:cluster**

**参数**
+ 无

**Permissions**
+ `rds:FailoverDBCluster`
+ `rds:DescribeDBClusters`
+ `tag:GetResources`

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorRDSAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorRDSAccess.html)

### aws:rds:reboot-db-instances
<a name="reboot-db-instances"></a>

在目标数据库实例DBInstance上运行 Amazon RDS API 操作[重启](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RebootDBInstance.html)。支持 RDS 集群和文档数据库集群。

**资源类型**
+ **aws:rds:db**

**参数**
+ **forceFailover**：可选。如果值为 True，且实例为多可用区，则强制从一个可用区故障转移到另一个可用区。默认值为 false。

**Permissions**
+ `rds:RebootDBInstance`
+ `rds:DescribeDBInstances`
+ `tag:GetResources`

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorRDSAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorRDSAccess.html)

## Amazon S3 操作
<a name="s3-actions-reference-fis"></a>

AWS FIS 支持以下 Amazon S3 操作。

**Topics**
+ [aws:s3:bucket-pause-replication](#bucket-pause-replication)

### aws:s3:bucket-pause-replication
<a name="bucket-pause-replication"></a>

 暂停从目标源存储桶到目的地存储桶的复制。目的地存储桶可以位于不同的 AWS 区域，也可以与源存储桶位于同一区域内。操作开始后，现有对象可能会继续复制最多一个小时。此操作仅支持按标签确定目标。要了解有关 Amazon S3 复制的更多信息，请参阅 [Amazon S3 用户指南](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html)。

**资源类型**
+ **aws:s3:bucket**

**参数**
+ **duration**：持续时间，从一分钟到 12 小时不等。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。
+ **region**：目的地存储桶所在的 AWS 区域。
+ **destinationBuckets**：可选。以逗号分隔的目的地 S3 存储桶列表。
+ **prefixes**：可选。复制规则筛选条件中以逗号分隔的 S3 对象键前缀列表。使用基于前缀的筛选条件的目标存储桶复制规则将暂停。

**Permissions**
+ `S3:PutReplicationConfiguration`，条件键 `S3:IsReplicationPauseRequest` 设置为 `True`
+ `S3:GetReplicationConfiguration`，条件键 `S3:IsReplicationPauseRequest` 设置为 `True`
+ `S3:PauseReplication`
+ `S3:ListAllMyBuckets`
+ `tag:GetResources`

有关策略示例，请参阅 [示例：使用 `aws:s3:bucket-pause-replication` 条件键](security_iam_id-based-policy-examples.md#security-iam-policy-examples-s3)。

## Systems Manager 操作
<a name="ssm-actions-reference"></a>

AWS FIS 支持以下 Systems Manager 操作。

**Topics**
+ [aws:ssm:send-command](#ssm-send-command)
+ [aws:ssm:start-automation-execution](#ssm-start-automation-execution)

### aws:ssm:send-command
<a name="ssm-send-command"></a>

在目标 EC2 实例[SendCommand](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html)上运行 Systems Manager API 操作。Systems Manager 文档（SSM 文档）定义其在您实例上执行的操作。有关更多信息，请参阅 [执行 aws:ssm:send-command 操作。](actions-ssm-agent.md#specifying-ssm-actions)。

**资源类型**
+ **aws:ec2:instance**

**参数**
+ **documentArn**：文档的 Amazon 资源名称 (ARN) 。在控制台中，如果您从 “**操作类型**” 中选择一个与[预先配置的 AWS FIS SSM](actions-ssm-agent.md#fis-ssm-docs) 文档相对应的值，则会为您完成此参数。
+ **documentVersion**：可选。文档版本。如果为空，则运行默认版本。
+ **documentParameters**：此操作设有条件。文档接受的必要参数和可选参数。对象格式为 JSON 格式，密钥为字符串，值为字符串值或字符串数组。
+ **duration**：持续时间，从一分钟到 12 小时不等。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。

**Permissions**
+ `ssm:SendCommand`
+ `ssm:ListCommands`
+ `ssm:CancelCommand`

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorEC2访问](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorEC2Access.html)

### aws:ssm:start-automation-execution
<a name="ssm-start-automation-execution"></a>

运行 Systems Manager API 操作[StartAutomationExecution](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_StartAutomationExecution.html)。

**资源类型**
+ 无

**参数**
+ **documentArn**：自动化文档的 Amazon 资源名称 (ARN) 。
+ **documentVersion**：可选。文档版本。如果为空，则运行默认版本。
+ **documentParameters**：此操作设有条件。文档接受的必要参数和可选参数。对象格式为 JSON 格式，密钥为字符串，值为字符串值或字符串数组。
+ **maxDuration**：允许完成自动化执行的最长时间，从一分钟到 12 小时不等。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT1M 代表一分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。

**Permissions**
+ `ssm:GetAutomationExecution`
+ `ssm:StartAutomationExecution`
+ `ssm:StopAutomationExecution`
+ `iam:PassRole`：可选。如果自动化文档代入角色，则为必填项。

**AWS 托管策略**
+ [AWSFaultInjectionSimulatorSSMAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorSSMAccess.html)

## AWS Direct Connect 行动
<a name="directconnect-actions-reference"></a>

AWS FIS 支持以下 AWS Direct Connect 操作。

**Topics**
+ [aws:directconnect:virtual-interface-disconnect](#directconnect-virtual-interface-disconnect)

### aws:directconnect:virtual-interface-disconnect
<a name="directconnect-virtual-interface-disconnect"></a>

通过暂时中断本地网络与与目标虚拟 AWS Direct Connect 接口（）关联的对等方之间的边界网关协议 (BGP) 会话来测试连接的弹性。VIFs在启动实验之前，FIS 会验证实验中的所有 VIFs 目标是否都处于 “可用” 状态，并且每个 VIF 的所有 BGP 对等体都处于 “可用” 状态和 “向上” BGP 状态。在实验期间，目标虚拟接口的 BGP 对等会话将处于关闭状态。有关 Direct Connect 故障转移测试的详细信息，请参阅[AWS Direct Connect 文档](https://docs.aws.amazon.com/directconnect/latest/UserGuide/resiliency_failover.html)。

**资源类型**
+ aws: directconnect: 虚拟接口

**参数**
+ `duration`— 持续时间，从 10 分钟到 12 小时不等。在 AWS FIS API 中，该值是 ISO 8601 格式的字符串。例如， PT10M 代表十分钟。在 AWS FIS 控制台中，您可以输入秒数、分钟数或小时数。

**Permissions**
+ `directconnect:DescribeVirtualInterfaces`
+ `directconnect:StartBgpFailoverTest`
+ `directconnect:ListVirtualInterfaceTestHistory`
+ `directconnect:StopBgpFailoverTest`
+ `tag:GetResources`