- Logged into an EC2 host and navigated to your working directory
- Created an IAM role dedicated to AWS FIS
- Attached all required IAM policies to the role
- Configured
kubectland applied Kubernetes RBAC - Verified that the metrics-server is operational and checked pod metrics
1. SSH into EC2 & Navigate to the Experiment Directory
First, connect to your EC2 instance (e.g., via EC2 Instance Connect), switch to root, and change into the workshop folder:2. Create the IAM Role for FIS
Yourfis-trust-policy.json defines which AWS service can assume this role. Create the role using:
Ensure the path to
fis-trust-policy.json is correct and your AWS CLI is configured with sufficient permissions.3. Attach IAM Policies to the FIS Role
Grant theeks-fis-role permissions to manage EKS clusters, EC2 instances, Systems Manager, CloudWatch, and networking. You can attach them in a loop or individually. Below is a table of required policies:
| Policy Name | Purpose | AWS CLI Example |
|---|---|---|
| AWSFaultInjectionSimulatorNetworkAccess | VPC and networking operations | arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorNetworkAccess |
| AWSFaultInjectionSimulatorEKSAccess | EKS API actions | arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorEKSAccess |
| AWSFaultInjectionSimulatorEC2Access | EC2 instance management | arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorEC2Access |
| AWSFaultInjectionSimulatorSSMAccess | Systems Manager for remote commands | arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorSSMAccess |
| CloudWatchLogsFullAccess | CloudWatch Logs for experiment logging | arn:aws:iam::aws:policy/CloudWatchLogsFullAccess |
| CloudWatchAgentServerPolicy | CloudWatch Agent metrics push | arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy |
4. Configure kubectl & Apply RBAC
Update your kubeconfig to point at the target EKS cluster (replace $AWS_REGION and PetSite as needed):
Be sure your AWS CLI profile has permission to call
eks:UpdateKubeconfig. Incorrect context may lead to applying objects to the wrong cluster.5. Verify Metrics-Server & Pod Metrics
Ensure the metrics-server pod is running in your cluster:default namespace: