本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 FIS和 AWS 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 – 警示狀態,以逗號分隔。可能的警示狀態為
OK
、ALARM
和INSUFFICIENT_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-error
,ec2: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-error
,ec2:FisTargetArns
條件索引鍵設定為目標 Auto Scaling 群組。 -
autoscaling:DescribeAutoScalingGroups
如需政策範例,請參閱 範例:使用 的條件索引鍵 ec2:InjectApiError。
aws:ec2:reboot-instances
在目標EC2執行個體RebootInstances上執行 Amazon EC2API動作。
資源類型
-
aws:ec2:instance
參數
-
無
許可
-
ec2:RebootInstances
-
ec2:DescribeInstances
AWS 受管政策
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 受管政策
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 受管政策
aws:ec2:terminate-instances
在目標EC2執行個體TerminateInstances上執行 Amazon EC2API動作。
資源類型
-
aws:ec2:instance
參數
-
無
許可
-
ec2:TerminateInstances
-
ec2:DescribeInstances
AWS 受管政策
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 受管政策
aws:ecs:stop-task
執行 Amazon ECSAPI動作StopTask以停止目標任務。
資源類型
-
aws:ecs:task
參數
無
許可
ecs:DescribeTasks
ecs:ListTasks
ecs:StopTask
tag:GetResources
AWS 受管政策
aws:ecs:task-cpu-stress
對目標任務執行CPU壓力。使用 AWSFIS-Run-CPU-Stress
資源類型
-
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
資源類型
-
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-ProcesspidMode
設定為 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-PortpidMode
設定為 task
。任務必須由 管理 AWS Systems Manager。您無法在任務定義bridge
中networkMode
將 設定為 。如需詳細資訊,請參閱ECS 任務動作。
資源類型
-
aws:ecs:task
參數
-
duration – 測試持續時間,格式為 ISO 8601。
-
port – 連接埠號碼。
-
trafficType – 流量的類型。可能的值為
ingress
和egress
。 -
protocol - 選用。通訊協定。可能的值為
tcp
和udp
。預設值為tcp
。 -
installDependencies – 選用。如果此值為
True
,Systems Manager 會在SSM代理程式的側載容器上安裝所需的相依性,如果尚未安裝這些相依性。預設值為True
。相依性為 atd、 dig和 iptables。
許可
ssm:SendCommand
ssm:ListCommands
ssm:CancelCommand
aws:ecs:task-network-latency
使用將流量輸出到特定來源tc的工具,將延遲和抖動新增至網路介面。使用 AWSFIS-Run-Network-Latency-SourcespidMode
設定為 task
。任務必須由 管理 AWS Systems Manager。您無法在任務定義bridge
中networkMode
將 設定為 。如需詳細資訊,請參閱ECS 任務動作。
資源類型
-
aws:ecs:task
參數
-
duration – 測試持續時間,格式為 ISO 8601。
-
delayMilliseconds - 選用。延遲,以毫秒為單位。預設值為 200。
-
jitterMilliseconds - 選用。抖動,以毫秒為單位。預設為 10。
-
sources - 選用。來源,以逗號分隔。可能的值包括:IPv4地址、IPv4CIDR區塊、網域名稱、
DYNAMODB
和S3
。如果您指定DYNAMODB
或S3
,這僅適用於目前區域中的區域端點。預設值為 0.0.0.0/0,符合所有IPv4流量。 -
installDependencies - 選用。如果此值為
True
,Systems Manager 會在SSM代理程式的 Sidecar 容器上安裝所需的相依性,如果尚未安裝這些相依性。預設值為True
。相依性為 atd、jq、 dig和 tc。
許可
ssm:SendCommand
ssm:ListCommands
ssm:CancelCommand
aws:ecs:task-network-packet-loss
使用輸出流量至特定來源tc的工具,將封包遺失新增至網路介面。使用 AWSFIS-Run-Network-Packet-Loss-SourcespidMode
設定為 task
。任務必須由 管理 AWS Systems Manager。您無法在任務定義bridge
中networkMode
將 設定為 。如需詳細資訊,請參閱ECS 任務動作。
資源類型
-
aws:ecs:task
參數
-
duration – 測試持續時間,格式為 ISO 8601。
-
lossPercent - 選用。封包遺失的百分比。預設值為 7%。
-
sources - 選用。來源,以逗號分隔。可能的值包括:IPv4地址、IPv4CIDR區塊、網域名稱、
DYNAMODB
和S3
。如果您指定DYNAMODB
或S3
,這僅適用於目前區域中的區域端點。預設值為 0.0.0.0/0,符合所有IPv4流量。 -
installDependencies - 選用。如果此值為
True
,Systems Manager 會在SSM代理程式的 Sidecar 容器上安裝所需的相依性,如果尚未安裝這些相依性。預設值為True
。相依性為 atd、jq、 dig和 tc。
許可
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
參數
kubernetesApiVersion – Kubernetes 自訂資源
的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
。
-
kubernetesNamespace – Kubernetes 命名空間
。 kubernetesSpec – Kubernetes 自訂資源的
spec
區段,JSON格式為 。maxDuration – 自動化執行允許的完成時間上限,從一分鐘到 12 小時。在 中 AWS FIS API,該值是 ISO 8601 格式的字串。例如, PT1M代表一分鐘。在 AWS FIS 主控台中,您可以輸入秒數、分鐘數或小時數。
許可
此動作不需要 AWS 身分和存取管理 (IAM) 許可。使用此動作所需的許可由 Kubernetes 使用RBAC授權控制。如需詳細資訊,請參閱官方 Kubernetes 文件中的使用RBAC授權
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。可能的值為 privileged
、baseline
和restricted
。此動作與所有政策層級相容。
許可
eks:DescribeCluster
ec2:DescribeSubnets
tag:GetResources
AWS 受管政策
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。可能的值為 privileged
、baseline
和restricted
。此動作與所有政策層級相容。
許可
eks:DescribeCluster
ec2:DescribeSubnets
tag:GetResources
AWS 受管政策
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。可能的值為 privileged
、baseline
和restricted
。此動作與所有政策層級相容。
許可
eks:DescribeCluster
ec2:DescribeSubnets
tag:GetResources
AWS 受管政策
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。可能的值為 privileged
、baseline
和restricted
。此動作與所有政策層級相容。
許可
eks:DescribeCluster
ec2:DescribeSubnets
tag:GetResources
AWS 受管政策
aws:eks:pod-network-blackhole-port
捨棄指定通訊協定和連接埠的傳入或傳出流量。僅與 Kubernetes 安全標準privileged
政策相容。如需詳細資訊,請參閱EKS Pod 動作。
資源類型
-
aws:eks:pod
參數
-
duration – 測試持續時間,格式為 ISO 8601。
-
protocol – 通訊協定。可能的值為
tcp
和udp
。 -
trafficType – 流量的類型。可能的值為
ingress
和egress
。 -
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 受管政策
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區塊、網域名稱、
DYNAMODB
和S3
。如果您指定DYNAMODB
或S3
,這僅適用於目前區域中的區域端點。預設值為 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 受管政策
aws:eks:pod-network-packet-loss
使用 tc工具將封包遺失新增至網路介面。僅與 Kubernetes 安全標準privileged
政策相容。如需詳細資訊,請參閱EKS Pod 動作。
資源類型
-
aws:eks:pod
參數
-
duration – 測試持續時間,格式為 ISO 8601。
-
interface - 選用。網路介面。預設值為
eth0
。 -
lossPercent – 選用。封包遺失的百分比。預設值為 7%。
-
sources - 選用。來源,以逗號分隔。可能的值包括:IPv4地址、IPv4CIDR區塊、網域名稱、
DYNAMODB
和S3
。如果您指定DYNAMODB
或S3
,這僅適用於目前區域中的區域端點。預設值為 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 受管政策
aws:eks:terminate-nodegroup-instances
在目標節點群組TerminateInstances上執行 Amazon EC2API動作。
資源類型
-
aws:eks:nodegroup
參數
instanceTerminationPercentage – 要終止的執行個體百分比 (1-100)。
許可
ec2:DescribeInstances
ec2:TerminateInstances
eks:DescribeNodegroup
tag:GetResources
AWS 受管政策
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 受管政策
aws:rds:reboot-db-instances
在目標資料庫執行個體上執行 Amazon RDSAPI動作 RebootDBInstance。
資源類型
-
aws:rds:db
參數
forceFailover - 選用。如果值為 true,且執行個體為多可用區域, 會強制容錯移轉至另一個可用區域。預設值為 false。
許可
rds:RebootDBInstance
rds:DescribeDBInstances
tag:GetResources
AWS 受管政策
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 受管政策
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
- 選用。如果自動化文件擔任 角色,則需要 。