AWS FIS 動作參考 - AWS 故障注入服務

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS FIS 動作參考

動作是指您使用 AWS Fault Injection Service (AWS FIS) 在目標上執行的故障注入活動。 為跨 AWS 服務的特定類型目標 AWS FIS 提供預先設定的動作。您可以將動作新增至實驗範本,然後用來執行實驗。

此參考描述 中的常見動作 AWS FIS,包括動作參數和所需IAM許可的相關資訊。您也可以使用 AWS FIS 主控台或來自 AWS Command Line Interface () 的 list-actions 命令列出支援 AWS FIS 的動作AWS CLI。擁有特定動作的名稱後,您可以使用 get-action 命令檢視動作的詳細資訊。如需搭配 使用 AWS FIS 命令的詳細資訊 AWS CLI,請參閱 AWS CLI 命令參考 中的AWS Command Line Interface 使用者指南fi

如需 AWS FIS 動作運作方式的詳細資訊,請參閱 的動作 AWS FISAWS Fault Injection Service 如何搭配 使用 IAM

故障注入動作

AWS FIS 支援下列故障注入動作。

aws:fis:inject-api-internal-error

將內部錯誤注入目標IAM角色提出的請求。特定回應取決於每個 服務和 API。如需詳細資訊,請檢閱 SDK和 服務API的文件。

資源類型
  • aws:iam:role

參數
  • duration – 持續時間,從一分鐘到 12 小時。在 中 AWS FIS API,該值是 ISO 8601 格式的字串。例如, PT1M代表一分鐘。在 AWS FIS 主控台中,您可以輸入秒數、分鐘數或小時數。

  • service – 目標 AWS API命名空間。支援的值為 ec2

  • percentage – 將故障注入的呼叫百分比 (1-100)。

  • operations – 將故障注入 的操作,使用逗號分隔。如需ec2命名空間API的動作清單,請參閱 Amazon EC2API參考 中的動作

許可
  • fis:InjectApiInternalError

aws:fis:inject-api-throttle-error

將限流錯誤注入目標IAM角色提出的請求。特定回應取決於每個 服務和 API。如需詳細資訊,請檢閱 SDK和 服務API的文件。

資源類型
  • aws:iam:role

參數
  • duration – 持續時間,從一分鐘到 12 小時。在 中 AWS FIS API,該值是 ISO 8601 格式的字串。例如, PT1M代表一分鐘。在 AWS FIS 主控台中,您可以輸入秒數、分鐘數或小時數。

  • service – 目標 AWS API命名空間。支援的值為 ec2

  • percentage – 將故障注入的呼叫百分比 (1-100)。

  • operations – 將故障注入 的操作,使用逗號分隔。如需ec2命名空間API的動作清單,請參閱 Amazon EC2API參考 中的動作

許可
  • fis:InjectApiThrottleError

aws:fis:inject-api-unavailable-error

將無法使用的錯誤注入目標IAM角色提出的請求。特定回應取決於每個 服務和 API。如需詳細資訊,請檢閱 SDK和 服務API的文件。

資源類型
  • aws:iam:role

參數
  • duration – 持續時間,從一分鐘到 12 小時。在 中 AWS FIS API,該值是 ISO 8601 格式的字串。例如, PT1M代表一分鐘。在 AWS FIS 主控台中,您可以輸入秒數、分鐘數或小時數。

  • service – 目標 AWS API命名空間。支援的值為 ec2

  • percentage – 將故障注入的呼叫百分比 (1-100)。

  • operations – 將故障注入 的操作,使用逗號分隔。如需ec2命名空間API的動作清單,請參閱 Amazon EC2API參考 中的動作

許可
  • fis:InjectApiUnavailableError

等待動作

AWS FIS 支援下列等待動作。

aws:fis:wait

執行 AWS FIS 等待動作。

參數
  • duration – 持續時間,從一分鐘到 12 小時。在 中 AWS FIS API,該值是 ISO 8601 格式的字串。例如, PT1M代表一分鐘。在 AWS FIS 主控台中,您可以輸入秒數、分鐘數或小時數。

許可

Amazon CloudWatch 動作

AWS FIS 支援下列 Amazon CloudWatch 動作。

aws:cloudwatch:assert-alarm-state

驗證指定的警示是否處於其中一個指定的警示狀態。

資源類型
參數
  • alarmArns – 警示ARNs的 ,以逗號分隔。您最多可以指定五個警示。

  • alarmStates – 警示狀態,以逗號分隔。可能的警示狀態為 OKALARMINSUFFICIENT_DATA

許可
  • cloudwatch:DescribeAlarms

Amazon DynamoDB 動作

AWS FIS 支援下列 Amazon DynamoDB 動作。

aws:dynamodb:global-table-pause-replication

暫停 Amazon DynamoDB 全域資料表複寫至任何複本資料表。資料表可在動作開始後繼續複寫最多 5 分鐘。

下列陳述式將動態附加至目標 DynamoDB 全域資料表的政策:

{ "Statement":[ { "Sid": "DoNotModifyFisDynamoDbPauseReplicationEXPxxxxxxxxxxxxxxx" "Effect":"Deny", "Principal":{ "AWS":"arn:aws:iam::123456789012:role/aws-service-role/replication.dynamodb.amazonaws.com/AWSServiceRoleForDynamoDBReplication" }, "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" } } } ] }

下列陳述式將動態附加至目標 DynamoDB 全域資料表串流的政策:

{ "Statement":[ { "Sid": "DoNotModifyFisDynamoDbPauseReplicationEXPxxxxxxxxxxxxxxx" "Effect":"Deny", "Principal":{ "AWS":"arn:aws:iam::123456789012:role/aws-service-role/replication.dynamodb.amazonaws.com/AWSServiceRoleForDynamoDBReplication" }, "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" } } ] }

如果目標資料表或串流沒有任何連接的資源政策,則會在實驗期間建立資源政策,並在實驗結束時自動刪除。否則,故障陳述式會插入現有政策中,而不會對現有政策陳述式進行任何額外的修改。然後,故障陳述式會在實驗結束時從政策中移除。

資源類型
  • aws:dynamodb:global-table

參數
  • duration – 在 中 AWS FIS API,該值是 ISO 8601 格式的字串。例如, PT1M代表一分鐘。在 AWS FIS 主控台中,您可以輸入秒數、分鐘數或小時數。

許可
  • dynamodb:PutResourcePolicy

  • dynamodb:DeleteResourcePolicy

  • dynamodb:GetResourcePolicy

  • dynamodb:DescribeTable

  • tag:GetResources

Amazon EBS動作

AWS FIS 支援下列 Amazon EBS動作。

aws:ebs:pause-volume-io

在目標EBS磁碟區上暫停 I/O 操作。目標磁碟區必須位於相同的可用區域中,且必須連接至在 Nitro 系統上建置的執行個體。磁碟區無法連接至 Outpost 上的執行個體。

若要使用 Amazon EC2主控台啟動實驗,請參閱 Amazon EC2使用者指南 中的 Amazon 故障測試EBS

資源類型
  • aws:ec2:ebs-volume

參數
  • duration – 持續時間,從一秒到 12 小時。在 中 AWS FIS API,該值是 ISO 8601 格式的字串。例如, PT1M代表一分鐘, PT5S 代表五秒, PT6H代表六小時。在 AWS FIS 主控台中,您可以輸入秒數、分鐘數或小時數。如果持續時間很短,例如 PT5S,則 I/O 會在指定的持續時間內暫停,但由於初始化實驗所需的時間,實驗可能需要更長的時間才能完成。

許可
  • ec2:DescribeVolumes

  • ec2:PauseVolumeIO

  • tag:GetResources

Amazon EC2動作

AWS FIS 支援下列 Amazon EC2動作。

AWS FIS 也支援透過 Agent 的 AWS Systems Manager SSM故障注入動作。Systems Manager 使用定義要在EC2執行個體上執行之動作SSM的文件。您可以使用自己的文件來插入自訂故障,也可以使用預先設定SSM的文件。如需詳細資訊,請參閱搭配 Systems Manager SSM 文件使用 AWS FIS

aws:ec2:api-insufficient-instance-capacity-error

對目標IAM角色提出的請求注入InsufficientInstanceCapacity錯誤回應。支援的作業為 RunInstances、 CreateCapacityReservation StartInstances、、 CreateFleet 呼叫。不支援在多個可用區域中包含容量請求的請求。此動作不支援使用資源標籤、篩選條件或參數定義目標。

資源類型
  • aws:iam:role

參數
  • duration – 在 中 AWS FIS API,該值是 ISO 8601 格式的字串。例如, PT1M代表一分鐘。在 AWS FIS 主控台中,您可以輸入秒數、分鐘數或小時數。

  • availabilityZoneIdentifiers – 可用區域以逗號分隔的清單。支援區域 IDs(例如 "use1-az1, use1-az2") 和區域名稱 (例如 "us-east-1a")。

  • percentage – 將故障注入的呼叫百分比 (1-100)。

許可
  • ec2:InjectApiError條件索引鍵ec2:FisActionId值設定為 aws:ec2:api-insufficient-instance-capacity-errorec2:FisTargetArns條件索引鍵設定為目標IAM角色。

如需政策範例,請參閱 範例:使用 的條件索引鍵 ec2:InjectApiError

aws:ec2:asg-insufficient-instance-capacity-error

對目標 Auto Scaling 群組提出的請求注入InsufficientInstanceCapacity錯誤回應。此動作僅支援使用啟動範本的 Auto Scaling 群組。若要進一步了解執行個體容量不足的錯誤,請參閱 Amazon EC2使用者指南

資源類型
  • aws:ec2:autoscaling-group

參數
  • duration – 在 中 AWS FIS API,該值是 ISO 8601 格式的字串。例如, PT1M代表一分鐘。在 AWS FIS 主控台中,您可以輸入秒數、分鐘數或小時數。

  • availabilityZoneIdentifiers – 可用區域以逗號分隔的清單。支援區域 IDs(例如 "use1-az1, use1-az2") 和區域名稱 (例如 "us-east-1a")。

  • percentage - 選用。目標 Auto Scaling 群組注入故障的啟動請求百分比 (1-100)。預設為 100。

許可
  • ec2:InjectApiError條件索引鍵 ec2:FisActionId 值設定為 aws:ec2:asg-insufficient-instance-capacity-errorec2:FisTargetArns條件索引鍵設定為目標 Auto Scaling 群組。

  • autoscaling:DescribeAutoScalingGroups

如需政策範例,請參閱 範例:使用 的條件索引鍵 ec2:InjectApiError

aws:ec2:reboot-instances

在目標EC2執行個體RebootInstances上執行 Amazon EC2API動作。

資源類型
  • aws:ec2:instance

參數
許可
  • ec2:RebootInstances

  • ec2:DescribeInstances

aws:ec2:send-spot-instance-interruptions

中斷目標 Spot 執行個體。將 Spot 執行個體中斷通知傳送給目標 Spot 執行個體兩分鐘,再中斷它們。中斷時間由指定的durationBeforeInterruption參數決定。中斷時間後兩分鐘,Spot 執行個體會終止或停止,視其中斷行為而定。在您重新啟動前, AWS FIS 停止的 Spot 執行個體會保持在停止狀態。

動作啟動後,目標執行個體會立即收到EC2執行個體重新平衡建議 。如果您指定 durationBeforeInterruption,則重新平衡建議與中斷通知之間可能會有延遲。

如需詳細資訊,請參閱教學課程:使用測試 Spot 執行個體中斷 AWS FIS。或者,若要使用 Amazon EC2主控台啟動實驗,請參閱 Amazon EC2使用者指南 中的啟動 Spot 執行個體中斷

資源類型
  • aws:ec2:spot-instance

參數
  • durationBeforeInterruption – 中斷執行個體前的等待時間,從 2 分鐘到 15 分鐘。在 中 AWS FIS API,該值是 ISO 8601 格式的字串。例如, PT2M代表兩分鐘。在 AWS FIS 主控台中,您可以輸入分鐘數。

許可
  • ec2:SendSpotInstanceInterruptions

  • ec2:DescribeInstances

aws:ec2:stop-instances

在目標EC2執行個體StopInstances上執行 Amazon EC2API動作。

資源類型
  • aws:ec2:instance

參數
  • startInstancesAfterDuration - 選用。啟動執行個體前的等待時間,從一分鐘到 12 小時。在 中 AWS FIS API,該值是 ISO 8601 格式的字串。例如, PT1M代表一分鐘。在主控台中 AWS FIS ,您可以輸入秒數、分鐘數或小時數。如果執行個體具有加密EBS磁碟區,您必須授予用於加密磁碟區的KMS金鑰 AWS FIS 許可,或將實驗角色新增至KMS金鑰政策。

  • completeIfInstancesTerminated - 選用。如果為 true,且如果 startInstancesAfterDuration 也是 true,則當目標EC2執行個體被外部的單獨請求終止FIS且無法重新啟動時,此動作將不會失敗。例如,Auto Scaling 群組可以在此動作完成之前終止其控制的已停止EC2執行個體。預設值為 false。

許可
  • ec2:StopInstances

  • ec2:StartInstances

  • ec2:DescribeInstances - 選用。在 completeIfInstances終止時為必要,以在動作結束時驗證執行個體狀態。

  • kms:CreateGrant - 選用。使用 startInstancesAfter持續時間,以使用加密磁碟區重新啟動執行個體。

aws:ec2:terminate-instances

在目標EC2執行個體TerminateInstances上執行 Amazon EC2API動作。

資源類型
  • aws:ec2:instance

參數
許可
  • ec2:TerminateInstances

  • ec2:DescribeInstances

Amazon ECS動作

AWS FIS 支援下列 Amazon ECS動作。

aws:ecs:drain-container-instances

執行 Amazon ECSAPI動作UpdateContainerInstancesState,以耗盡目標叢集上 Amazon EC2執行個體的指定百分比。

資源類型
  • aws:ecs:cluster

參數
  • drainagePercentage – 百分比 (1-100)。

  • duration – 持續時間,從一分鐘到 12 小時。在 中 AWS FIS API,該值是 ISO 8601 格式的字串。例如, PT1M代表一分鐘。在 AWS FIS 主控台中,您可以輸入秒數、分鐘數或小時數。

許可
  • ecs:DescribeClusters

  • ecs:UpdateContainerInstancesState

  • ecs:ListContainerInstances

  • tag:GetResources

aws:ecs:stop-task

執行 Amazon ECSAPI動作StopTask以停止目標任務。

資源類型
  • aws:ecs:task

參數
許可
  • ecs:DescribeTasks

  • ecs:ListTasks

  • ecs:StopTask

  • tag:GetResources

aws:ecs:task-cpu-stress

對目標任務執行CPU壓力。使用 AWSFIS-Run-CPU-Stress SSM 文件。任務必須由 管理 AWS Systems Manager。如需詳細資訊,請參閱ECS 任務動作

資源類型
  • aws:ecs:task

參數
  • duration – 壓力測試的持續時間,格式為 ISO 8601。

  • percent - 選用。目標負載百分比,從 0 (無負載) 到 100 (滿載)。預設為 100。

  • workers - 選用。要使用的壓力源數量。預設值為 0,它使用所有壓力源。

  • installDependencies - 選用。如果此值為 True,Systems Manager 會在SSM代理程式的側載容器上安裝所需的相依性,如果尚未安裝這些相依性。預設值為 True。相依性為 stress-ng

許可
  • ssm:SendCommand

  • ssm:ListCommands

  • ssm:CancelCommand

aws:ecs:task-io-stress

對目標任務執行 I/O 應力。使用 AWSFIS-Run-IO-Stress SSM 文件。任務必須由 管理 AWS Systems Manager。如需詳細資訊,請參閱ECS 任務動作

資源類型
  • aws:ecs:task

參數
  • duration – 壓力測試的持續時間,格式為 ISO 8601。

  • percent - 選用。檔案系統上要在壓力測試期間使用的可用空間百分比。預設值為 80%。

  • workers - 選用。工作程序數量。工作者會執行循序、隨機和記憶體映射讀取/寫入操作、強制同步和快取捨棄的混合。多個子程序會在同一檔案上執行不同的 I/O 操作。預設為 1。

  • installDependencies - 選用。如果此值為 True,Systems Manager 會在SSM代理程式的側載容器上安裝所需的相依性,如果尚未安裝這些相依性。預設值為 True。相依性為 stress-ng

許可
  • ssm:SendCommand

  • ssm:ListCommands

  • ssm:CancelCommand

aws:ecs:task-kill-process

使用 killall命令停止任務中的指定程序。使用 AWSFIS-Run-Kill-Process SSM 文件。任務定義必須pidMode設定為 task。任務必須由 管理 AWS Systems Manager。如需詳細資訊,請參閱ECS 任務動作

資源類型
  • aws:ecs:task

參數
  • processName – 要停止的程序名稱。

  • signal - 選用。隨 命令一起傳送的訊號。可能的值為 SIGTERM(接收者可以選擇忽略) 和 SIGKILL(無法忽略)。預設值為 SIGTERM

  • installDependencies – 選用。如果此值為 True,Systems Manager 會在SSM代理程式的側載容器上安裝所需的相依性,如果尚未安裝這些相依性。預設值為 True。相依性為 killall

許可
  • ssm:SendCommand

  • ssm:ListCommands

  • ssm:CancelCommand

aws:ecs:task-network-blackhole-port

捨棄指定通訊協定和連接埠的傳入或傳出流量。使用 AWSFIS-Run-Network-Blackhole-Port SSM 文件。任務定義必須pidMode設定為 task。任務必須由 管理 AWS Systems Manager。您無法在任務定義bridgenetworkMode將 設定為 。如需詳細資訊,請參閱ECS 任務動作

資源類型
  • aws:ecs:task

參數
  • duration – 測試持續時間,格式為 ISO 8601。

  • port – 連接埠號碼。

  • trafficType – 流量的類型。可能的值為 ingressegress

  • protocol - 選用。通訊協定。可能的值為 tcpudp。預設值為 tcp

  • installDependencies – 選用。如果此值為 True,Systems Manager 會在SSM代理程式的側載容器上安裝所需的相依性,如果尚未安裝這些相依性。預設值為 True。相依性為 atddigiptables

許可
  • ssm:SendCommand

  • ssm:ListCommands

  • ssm:CancelCommand

aws:ecs:task-network-latency

使用將流量輸出到特定來源tc的工具,將延遲和抖動新增至網路介面。使用 AWSFIS-Run-Network-Latency-Sources SSM 文件。任務定義必須pidMode設定為 task。任務必須由 管理 AWS Systems Manager。您無法在任務定義bridgenetworkMode將 設定為 。如需詳細資訊,請參閱ECS 任務動作

資源類型
  • aws:ecs:task

參數
  • duration – 測試持續時間,格式為 ISO 8601。

  • delayMilliseconds - 選用。延遲,以毫秒為單位。預設值為 200。

  • jitterMilliseconds - 選用。抖動,以毫秒為單位。預設為 10。

  • sources - 選用。來源,以逗號分隔。可能的值包括:IPv4地址、IPv4CIDR區塊、網域名稱、 DYNAMODBS3。如果您指定 DYNAMODBS3,這僅適用於目前區域中的區域端點。預設值為 0.0.0.0/0,符合所有IPv4流量。

  • installDependencies - 選用。如果此值為 True,Systems Manager 會在SSM代理程式的 Sidecar 容器上安裝所需的相依性,如果尚未安裝這些相依性。預設值為 True。相依性為 atdjqdigtc

許可
  • ssm:SendCommand

  • ssm:ListCommands

  • ssm:CancelCommand

aws:ecs:task-network-packet-loss

使用輸出流量至特定來源tc的工具,將封包遺失新增至網路介面。使用 AWSFIS-Run-Network-Packet-Loss-Sources SSM 文件。任務定義必須pidMode設定為 task。任務必須由 管理 AWS Systems Manager。您無法在任務定義bridgenetworkMode將 設定為 。如需詳細資訊,請參閱ECS 任務動作

資源類型
  • aws:ecs:task

參數
  • duration – 測試持續時間,格式為 ISO 8601。

  • lossPercent - 選用。封包遺失的百分比。預設值為 7%。

  • sources - 選用。來源,以逗號分隔。可能的值包括:IPv4地址、IPv4CIDR區塊、網域名稱、 DYNAMODBS3。如果您指定 DYNAMODBS3,這僅適用於目前區域中的區域端點。預設值為 0.0.0.0/0,符合所有IPv4流量。

  • installDependencies - 選用。如果此值為 True,Systems Manager 會在SSM代理程式的 Sidecar 容器上安裝所需的相依性,如果尚未安裝這些相依性。預設值為 True。相依性為 atdjqdigtc

許可
  • ssm:SendCommand

  • ssm:ListCommands

  • ssm:CancelCommand

Amazon EKS動作

AWS FIS 支援下列 Amazon EKS動作。

aws:eks:inject-kubernetes-custom-resource

在單一目標叢集上執行 ChaosMesh 或 Litmus 實驗。您必須在目標叢集上安裝 ChaosMesh 或 Litmus。

當您建立實驗範本並定義類型 的目標時aws:eks:cluster,您必須將此動作鎖定為單一 Amazon Resource Name (ARN)。此動作不支援使用資源標籤、篩選條件或參數定義目標。

安裝 時 ChaosMesh,您必須指定適當的容器執行時間。從 Amazon 1.23 EKS版開始,預設執行時間從 Docker 變更為 containerd。從 1.24 版開始,Docker 已移除。

資源類型
  • aws:eks:cluster

參數
  • kubernetesApiVersionKubernetes 自訂資源 的API版本。可能的值為 chaos-mesh.org/v1alpha1 | litmuschaos.io/v1alpha1

  • kubernetesKind – Kubernetes 自訂資源類型。值取決於API版本。

    • chaos-mesh.org/v1alpha1 – 可能的值為 AWSChaos | DNSChaos | GCPChaos | HTTPChaos | IOChaos | | JVMChaos | KernelChaos | NetworkChaos | PhysicalMachineChaos | PodChaos | PodHttpChaos | PodIOChaos PodNetworkChaos | Schedule | StressChaos | | | TimeChaos |

    • litmuschaos.io/v1alpha1 – 可能的值為 ChaosEngine

  • kubernetesNamespaceKubernetes 命名空間

  • kubernetesSpec – Kubernetes 自訂資源的 spec區段,JSON格式為 。

  • maxDuration – 自動化執行允許的完成時間上限,從一分鐘到 12 小時。在 中 AWS FIS API,該值是 ISO 8601 格式的字串。例如, PT1M代表一分鐘。在 AWS FIS 主控台中,您可以輸入秒數、分鐘數或小時數。

許可

此動作不需要 AWS 身分和存取管理 (IAM) 許可。使用此動作所需的許可由 Kubernetes 使用RBAC授權控制。如需詳細資訊,請參閱官方 Kubernetes 文件中的使用RBAC授權。如需 Chaos Mesh 的詳細資訊,請參閱官方 Chaos Mesh 文件。如需 Litmus 的詳細資訊,請參閱官方 Litmus 文件。

aws:eks:pod-cpu-stress

在目標 Pod 上執行CPU壓力。如需詳細資訊,請參閱EKS Pod 動作

資源類型
  • aws:eks:pod

參數
  • duration – 壓力測試的持續時間,格式為 ISO 8601。

  • percent - 選用。目標負載百分比,從 0 (無負載) 到 100 (滿載)。預設為 100。

  • workers - 選用。要使用的壓力源數量。預設值為 0,它使用所有壓力源。

  • kubernetesServiceAccount – Kubernetes 服務帳戶。如需必要許可的詳細資訊,請參閱設定 Kubernetes 服務帳戶

  • fisPodContainerImage - 選用。用於建立故障注入器 Pod 的容器映像。預設為使用 提供的映像 AWS FIS。如需詳細資訊,請參閱Pod 容器映像

  • maxErrorsPercent – 選用。在故障注入失敗之前可能失敗的目標百分比。預設值為 0。

  • fisPodLabels - 選用。連接至 建立之故障協調 Pod 的 Kubernetes 標籤FIS。

  • fisPodAnnotations - 選用。連接至 建立之故障協調 Pod 的 Kubernetes 註釋FIS。

  • fisPodSecurityPolicy - 選用。Kubernetes 安全標準政策,用於 FIS和暫時容器建立的故障協調 Pod。可能的值為 privilegedbaselinerestricted。此動作與所有政策層級相容。

許可
  • eks:DescribeCluster

  • ec2:DescribeSubnets

  • tag:GetResources

aws:eks:pod-delete

刪除目標 Pod。如需詳細資訊,請參閱EKS Pod 動作

資源類型
  • aws:eks:pod

參數
  • gracePeriodSeconds - 選用。等待 Pod 正常終止的持續時間,以秒為單位。如果值為 0,我們會立即執行動作。如果值為零,我們會使用 Pod 的預設寬限期。

  • kubernetesServiceAccount – Kubernetes 服務帳戶。如需必要許可的詳細資訊,請參閱設定 Kubernetes 服務帳戶

  • fisPodContainerImage - 選用。用於建立故障注入器 Pod 的容器映像。預設為使用 提供的映像 AWS FIS。如需詳細資訊,請參閱Pod 容器映像

  • maxErrorsPercent – 選用。在故障注入失敗之前可能失敗的目標百分比。預設值為 0。

  • fisPodLabels - 選用。連接至 建立之故障協調 Pod 的 Kubernetes 標籤FIS。

  • fisPodAnnotations - 選用。連接至 建立之故障協調 Pod 的 Kubernetes 註釋FIS。

  • fisPodSecurityPolicy - 選用。Kubernetes 安全標準政策,用於由 FIS和暫時容器建立的故障協調 Pod。可能的值為 privilegedbaselinerestricted。此動作與所有政策層級相容。

許可
  • eks:DescribeCluster

  • ec2:DescribeSubnets

  • tag:GetResources

aws:eks:pod-io-stress

在目標 Pod 上執行 I/O 壓力。如需詳細資訊,請參閱EKS Pod 動作

資源類型
  • aws:eks:pod

參數
  • duration – 壓力測試的持續時間,格式為 ISO 8601。

  • workers - 選用。工作程序數量。工作者會執行循序、隨機和記憶體映射讀取/寫入操作、強制同步和快取捨棄的混合。多個子程序會在同一檔案上執行不同的 I/O 操作。預設為 1。

  • percent - 選用。檔案系統上要在壓力測試期間使用的可用空間百分比。預設值為 80%。

  • kubernetesServiceAccount – Kubernetes 服務帳戶。如需必要許可的詳細資訊,請參閱設定 Kubernetes 服務帳戶

  • fisPodContainerImage - 選用。用於建立故障注入器 Pod 的容器映像。預設為使用 提供的映像 AWS FIS。如需詳細資訊,請參閱Pod 容器映像

  • maxErrorsPercent – 選用。在故障注入失敗之前可能失敗的目標百分比。預設值為 0。

  • fisPodLabels - 選用。連接至 建立之故障協調 Pod 的 Kubernetes 標籤FIS。

  • fisPodAnnotations - 選用。連接至 建立之故障協調 Pod 的 Kubernetes 註釋FIS。

  • fisPodSecurityPolicy - 選用。Kubernetes 安全標準政策,用於由 FIS和暫時容器建立的故障協調 Pod。可能的值為 privilegedbaselinerestricted。此動作與所有政策層級相容。

許可
  • eks:DescribeCluster

  • ec2:DescribeSubnets

  • tag:GetResources

aws:eks:pod-memory-stress

在目標 Pod 上執行記憶體壓力。如需詳細資訊,請參閱EKS Pod 動作

資源類型
  • aws:eks:pod

參數
  • duration – 壓力測試的持續時間,格式為 ISO 8601。

  • workers - 選用。要使用的壓力源數量。預設為 1。

  • percent - 選用。在壓力測試期間要使用的虛擬記憶體百分比。預設值為 80%。

  • kubernetesServiceAccount – Kubernetes 服務帳戶。如需必要許可的詳細資訊,請參閱設定 Kubernetes 服務帳戶

  • fisPodContainerImage - 選用。用於建立故障注入器 Pod 的容器映像。預設為使用 提供的映像 AWS FIS。如需詳細資訊,請參閱Pod 容器映像

  • maxErrorsPercent – 選用。在故障注入失敗之前可能失敗的目標百分比。預設值為 0。

  • fisPodLabels - 選用。連接至 建立之故障協調 Pod 的 Kubernetes 標籤FIS。

  • fisPodAnnotations - 選用。連接至 建立之故障協調 Pod 的 Kubernetes 註釋FIS。

  • fisPodSecurityPolicy - 選用。Kubernetes 安全標準政策,用於 FIS和暫時容器建立的故障協調 Pod。可能的值為 privilegedbaselinerestricted。此動作與所有政策層級相容。

許可
  • eks:DescribeCluster

  • ec2:DescribeSubnets

  • tag:GetResources

aws:eks:pod-network-blackhole-port

捨棄指定通訊協定和連接埠的傳入或傳出流量。僅與 Kubernetes 安全標準privileged政策相容。如需詳細資訊,請參閱EKS Pod 動作

資源類型
  • aws:eks:pod

參數
  • duration – 測試持續時間,格式為 ISO 8601。

  • protocol – 通訊協定。可能的值為 tcpudp

  • trafficType – 流量的類型。可能的值為 ingressegress

  • port – 連接埠號碼。

  • kubernetesServiceAccount – Kubernetes 服務帳戶。如需必要許可的詳細資訊,請參閱設定 Kubernetes 服務帳戶

  • fisPodContainerImage - 選用。用於建立故障注入器 Pod 的容器映像。預設為使用 提供的映像 AWS FIS。如需詳細資訊,請參閱Pod 容器映像

  • maxErrorsPercent – 選用。在故障注入失敗之前可能失敗的目標百分比。預設值為 0。

  • fisPodLabels - 選用。連接至 建立之故障協調 Pod 的 Kubernetes 標籤FIS。

  • fisPodAnnotations - 選用。連接至 建立之故障協調 Pod 的 Kubernetes 註釋FIS。

許可
  • eks:DescribeCluster

  • ec2:DescribeSubnets

  • tag:GetResources

aws:eks:pod-network-latency

使用 tc工具將延遲和抖動新增至網路介面,以處理往來特定來源的流量。僅與 Kubernetes 安全標準privileged政策相容。如需詳細資訊,請參閱EKS Pod 動作

資源類型
  • aws:eks:pod

參數
  • duration – 測試持續時間,格式為 ISO 8601。

  • interface - 選用。網路介面。預設值為 eth0

  • delayMilliseconds – 選用。延遲,以毫秒為單位。預設值為 200。

  • jitterMilliseconds - 選用。抖動,以毫秒為單位。預設為 10。

  • sources - 選用。來源,以逗號分隔。可能的值包括:IPv4地址、IPv4CIDR區塊、網域名稱、 DYNAMODBS3。如果您指定 DYNAMODBS3,這僅適用於目前區域中的區域端點。預設值為 0.0.0.0/0,符合所有IPv4流量。

  • kubernetesServiceAccount – Kubernetes 服務帳戶。如需必要許可的詳細資訊,請參閱設定 Kubernetes 服務帳戶

  • fisPodContainerImage - 選用。用於建立故障注入器 Pod 的容器映像。預設為使用 提供的映像 AWS FIS。如需詳細資訊,請參閱Pod 容器映像

  • maxErrorsPercent – 選用。在故障注入失敗之前可能失敗的目標百分比。預設值為 0。

  • fisPodLabels - 選用。連接至 建立之故障協調 Pod 的 Kubernetes 標籤FIS。

  • fisPodAnnotations - 選用。連接至 建立之故障協調 Pod 的 Kubernetes 註釋FIS。

許可
  • eks:DescribeCluster

  • ec2:DescribeSubnets

  • tag:GetResources

aws:eks:pod-network-packet-loss

使用 tc工具將封包遺失新增至網路介面。僅與 Kubernetes 安全標準privileged政策相容。如需詳細資訊,請參閱EKS Pod 動作

資源類型
  • aws:eks:pod

參數
  • duration – 測試持續時間,格式為 ISO 8601。

  • interface - 選用。網路介面。預設值為 eth0

  • lossPercent – 選用。封包遺失的百分比。預設值為 7%。

  • sources - 選用。來源,以逗號分隔。可能的值包括:IPv4地址、IPv4CIDR區塊、網域名稱、 DYNAMODBS3。如果您指定 DYNAMODBS3,這僅適用於目前區域中的區域端點。預設值為 0.0.0.0/0,符合所有IPv4流量。

  • kubernetesServiceAccount – Kubernetes 服務帳戶。如需必要許可的詳細資訊,請參閱設定 Kubernetes 服務帳戶

  • fisPodContainerImage - 選用。用於建立故障注入器 Pod 的容器映像。預設為使用 提供的映像 AWS FIS。如需詳細資訊,請參閱Pod 容器映像

  • maxErrorsPercent – 選用。在故障注入失敗之前可能失敗的目標百分比。預設值為 0。

  • fisPodLabels - 選用。連接至 建立之故障協調 Pod 的 Kubernetes 標籤FIS。

  • fisPodAnnotations - 選用。連接至 建立之故障協調 Pod 的 Kubernetes 註釋FIS。

許可
  • eks:DescribeCluster

  • ec2:DescribeSubnets

  • tag:GetResources

aws:eks:terminate-nodegroup-instances

在目標節點群組TerminateInstances上執行 Amazon EC2API動作。

資源類型
  • aws:eks:nodegroup

參數
  • instanceTerminationPercentage – 要終止的執行個體百分比 (1-100)。

許可
  • ec2:DescribeInstances

  • ec2:TerminateInstances

  • eks:DescribeNodegroup

  • tag:GetResources

Amazon ElastiCache 動作

AWS FIS 支援下列 ElastiCache 動作。

aws:elasticache:interrupt-cluster-az-power

中斷目標 Redis OSS複寫群組指定可用區域中節點的電源。每個複寫群組一次只能影響一個可用區域。當主要節點成為目標時,具有最小複寫延遲的對應僅供讀取複本會提升為主要節點。在此動作期間,會封鎖指定可用區域中的僅供讀取複本替換,這表示目標複寫群組會以較低的容量運作。

資源類型
  • aws:elasticache:redis-replicationgroup

參數
  • duration – 持續時間,從一分鐘到 12 小時。在 中 AWS FIS API,該值是 ISO 8601 格式的字串。例如, PT1M代表一分鐘。在 AWS FIS 主控台中,您可以輸入秒數、分鐘數或小時數。

許可
  • elasticache:InterruptClusterAzPower

  • elasticache:DescribeReplicationGroups

  • tag:GetResources

網路動作

AWS FIS 支援下列網路動作。

aws:network:disrupt-connectivity

拒絕至目標子網路的指定流量。使用網路 ACLs。

資源類型
  • aws:ec2:subnet

參數
  • scope – 要拒絕的流量類型。當範圍不是 時all,網路中的項目數量上限為 ACLs 20。可能值如下:

    • all – 拒絕所有進出子網路的流量。請注意,此選項允許子網路內流量,包括往返子網路中網路介面的流量。

    • availability-zone – 拒絕其他可用區域中子網路的內VPC傳流量。中可以鎖定目標的子網路數量上限為 VPC 30。

    • dynamodb – 拒絕目前區域中 DynamoDB 的區域端點往返流量。

    • prefix-list – 拒絕往來指定字首清單的流量。

    • s3 – 拒絕目前區域中 Amazon S3 區域端點的往返流量。

    • vpc – 拒絕傳入和離開 的流量VPC。

  • duration – 持續時間,從一分鐘到 12 小時。在 中 AWS FIS API,該值是 ISO 8601 格式的字串。例如, PT1M代表一分鐘。在 AWS FIS 主控台中,您可以輸入秒數、分鐘數或小時數。

  • prefixListIdentifier – 如果範圍為 prefix-list,則這是客戶受管字首清單的識別符。您可以指定名稱、ID 或 ARN。字首清單最多可以有 10 個項目。

許可
  • 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:network:route-table-disrupt-cross-region-connectivity

封鎖源自目標子網路且目的地為指定區域的流量。建立路由表,其中包含區域隔離的所有路由。若要允許FIS建立這些路由表,請將 Amazon VPC 配額提高routes per route table至 250,加上現有路由表中的路由數量。

資源類型
  • aws:ec2:subnet

參數
  • region – 要隔離的區域程式碼 (例如 eu-west-1)。

  • duration – 動作持續的時間長度。在 中 AWS FIS API,該值是 ISO 8601 格式的字串。例如, PT1M代表一分鐘。在 AWS FIS 主控台中,您可以輸入秒數、分鐘數或小時數。

許可
  • 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:network:transit-gateway-disrupt-cross-region-connectivity

封鎖來自目標傳輸閘道對等附件的流量,這些附件目的地為指定的區域。

資源類型
  • aws:ec2:transit-gateway

參數
  • region – 要隔離的區域程式碼 (例如 eu-west-1)。

  • duration – 動作持續的時間長度。在 中 AWS FIS API,該值是 ISO 8601 格式的字串。例如, PT1M代表一分鐘。在 AWS FIS 主控台中,您可以輸入秒數、分鐘數或小時數。

許可
  • ec2:AssociateTransitGatewayRouteTable

  • ec2:DescribeTransitGatewayAttachments

  • ec2:DescribeTransitGatewayPeeringAttachments

  • ec2:DescribeTransitGateways

  • ec2:DisassociateTransitGatewayRouteTable

Amazon RDS動作

AWS FIS 支援下列 Amazon RDS動作。

aws:rds:failover-db-cluster

在目標 Aurora 資料庫叢集上執行 Amazon RDSAPI動作 FailoverDBCluster

資源類型
  • aws:rds:cluster

參數
許可
  • rds:FailoverDBCluster

  • rds:DescribeDBClusters

  • tag:GetResources

aws:rds:reboot-db-instances

在目標資料庫執行個體上執行 Amazon RDSAPI動作 RebootDBInstance

資源類型
  • aws:rds:db

參數
  • forceFailover - 選用。如果值為 true,且執行個體為多可用區域, 會強制容錯移轉至另一個可用區域。預設值為 false。

許可
  • rds:RebootDBInstance

  • rds:DescribeDBInstances

  • tag:GetResources

Amazon S3 動作

AWS FIS 支援下列 Amazon S3 動作。

aws:s3:bucket-pause-replication

暫停從目標來源儲存貯體到目的地儲存貯體的複寫。目的地儲存貯體可以位於不同的 AWS區域,也可以位於與來源儲存貯體相同的 區域內。現有物件可在動作開始後繼續複寫長達一小時。此動作僅支援以標籤為目標。若要進一步了解 Amazon S3 複寫,請參閱 Amazon S3 使用者指南

資源類型
  • aws:s3:bucket

參數
  • duration – 持續時間,從一分鐘到 12 小時。在 中 AWS FIS API,該值是 ISO 8601 格式的字串。例如, PT1M代表一分鐘。在 AWS FIS 主控台中,您可以輸入秒數、分鐘數或小時數。

  • region – 目的地儲存貯體所在的AWS區域。

  • destinationBuckets - 選用。以逗號分隔的目的地 S3 儲存貯體清單 (S3)。

  • prefixes - 選用。以逗號分隔 S3 物件金鑰字首清單與複寫規則篩選條件。目標儲存貯體的複寫規則 (根據字首的篩選條件) 將會暫停。

許可
  • S3:PutReplicationConfiguration 條件索引鍵S3:IsReplicationPauseRequest設定為 True

  • S3:GetReplicationConfiguration 條件索引鍵S3:IsReplicationPauseRequest設定為 True

  • S3:PauseReplication

  • S3:ListAllMyBuckets

  • tag:GetResources

如需政策範例,請參閱 範例:使用 的條件金鑰 aws:s3:bucket-pause-replication

Systems Manager 動作

AWS FIS 支援下列 Systems Manager 動作。

aws:ssm:send-command

在目標EC2執行個體SendCommand上執行 Systems Manager API動作。Systems Manager 文件 (SSM 文件) 會定義 Systems Manager 在執行個體上執行的動作。如需詳細資訊,請參閱使用 aws:ssm:send-command 動作

資源類型
  • aws:ec2:instance

參數
  • documentArn – 文件的 Amazon Resource Name (ARN)。在 主控台中,如果您從動作類型中選擇對應於其中一個預先設定 AWS FIS SSM文件 的值,則會為您完成此參數。

  • documentVersion - 選用。文件的版本。如果為空,則預設版本會執行。

  • documentParameters – 有條件。文件接受的必要和選用參數。格式是具有金鑰的JSON物件,這些金鑰是字串,而值可以是字串或字串陣列。

  • duration – 持續時間,從一分鐘到 12 小時。在 中 AWS FIS API,該值是 ISO 8601 格式的字串。例如, PT1M代表一分鐘。在 AWS FIS 主控台中,您可以輸入秒數、分鐘數或小時數。

許可
  • ssm:SendCommand

  • ssm:ListCommands

  • ssm:CancelCommand

aws:ssm:start-automation-execution

執行 Systems Manager API動作 StartAutomationExecution

資源類型
參數
  • documentArn – 自動化文件的 Amazon Resource Name (ARN)。

  • documentVersion - 選用。文件的版本。如果為空,則預設版本會執行。

  • documentParameters – 有條件。文件接受的必要和選用參數。格式是具有金鑰的JSON物件,這些金鑰是字串,而值可以是字串或字串陣列。

  • maxDuration – 自動化執行允許的完成時間上限,從一分鐘到 12 小時。在 中 AWS FIS API,該值是 ISO 8601 格式的字串。例如, PT1M代表一分鐘。在 AWS FIS 主控台中,您可以輸入秒數、分鐘數或小時數。

許可
  • ssm:GetAutomationExecution

  • ssm:StartAutomationExecution

  • ssm:StopAutomationExecution

  • iam:PassRole - 選用。如果自動化文件擔任 角色,則需要 。