Week 12: AWS Networking, EC2, ECS and ECR
Take into account this example 1

There are quite a few:
We’ll be using AWS, because we’ve access to aws academy.
IP Addressing in Amazon Virtual Private Cloud (VPC) refers to the assignment of IP addresses to the resources within a VPC.
VPC is Amazon Web Services (AWS) solution for providing isolated network environments for AWS resources. IP addresses in a VPC are used for communication between resources within the VPC, as well as for communication between the VPC and the Internet.
Our app runs on a server/virtual machine that you don’t have to buy or manage.
You could (theoritecally) scale to zero.
IAM means: Identity and Access Management.
Roles are very useful for:
Granting temporary or time-limited access.
Letting external identities or different AWS accounts access resources
Letting AWS services (like EC2, Lambda, etc.) act on your behalf without embedding permanent credentials
Policies assigned to a Role or User, tells us the capabilties it has:
$ aws iam get-account-authorization-details --no-cli-pager
...
{
"Path": "/",
"RoleName": "LabRole",
"RoleId": "AROAVRUVSF2D77Y24LJWD",
"Arn": "arn:aws:iam::381492014727:role/LabRole",
"CreateDate": "2025-12-01T09:02:47+00:00",
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::381492014727:role/LabRole",
"Service": [
"elasticloadbalancing.amazonaws.com",
"ec2.amazonaws.com",
"iot.amazonaws.com",
"elasticfilesystem.amazonaws.com",
"lambda.amazonaws.com",
"eks.amazonaws.com",
"rekognition.amazonaws.com",
"logs.amazonaws.com",
"glue.amazonaws.com",
"iotevents.amazonaws.com",
"cloudtrail.amazonaws.com",
"codecommit.amazonaws.com",
"events.amazonaws.com",
"servicecatalog.amazonaws.com",
"elasticbeanstalk.amazonaws.com",
"codewhisperer.amazonaws.com",
"rds.amazonaws.com",
"cloud9.amazonaws.com",
"backup.amazonaws.com",
"credentials.iot.amazonaws.com",
"pipes.amazonaws.com",
"ecs-tasks.amazonaws.com",
"batch.amazonaws.com",
"scheduler.amazonaws.com",
"sagemaker.amazonaws.com",
"autoscaling.amazonaws.com",
"states.amazonaws.com",
"apigateway.amazonaws.com",
"elasticmapreduce.amazonaws.com",
"ec2.application-autoscaling.amazonaws.com",
"cognito-idp.amazonaws.com",
"eks-fargate-pods.amazonaws.com",
"resource-groups.amazonaws.com",
"cloudformation.amazonaws.com",
"deepracer.amazonaws.com",
"forecast.amazonaws.com",
"athena.amazonaws.com",
"firehose.amazonaws.com",
"secretsmanager.amazonaws.com",
"codedeploy.amazonaws.com",
"sqs.amazonaws.com",
"redshift.amazonaws.com",
"ecs.amazonaws.com",
"dynamodb.amazonaws.com",
"kinesisanalytics.amazonaws.com",
"application-autoscaling.amazonaws.com",
"ssm.amazonaws.com",
"kms.amazonaws.com",
"iotanalytics.amazonaws.com",
"kinesis.amazonaws.com",
"sns.amazonaws.com",
"s3.amazonaws.com",
"databrew.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
},
"InstanceProfileList": [
{
"Path": "/",
"InstanceProfileName": "LabInstanceProfile",
"InstanceProfileId": "AIPAVRUVSF2D4J5LB7TUJ",
"Arn": "arn:aws:iam::381492014727:instance-profile/LabInstanceProfile",
"CreateDate": "2025-12-01T09:03:12+00:00",
"Roles": [
{
"Path": "/",
"RoleName": "LabRole",
"RoleId": "AROAVRUVSF2D77Y24LJWD",
"Arn": "arn:aws:iam::381492014727:role/LabRole",
"CreateDate": "2025-12-01T09:02:47+00:00",
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::381492014727:role/LabRole",
"Service": [
"elasticloadbalancing.amazonaws.com",
"ec2.amazonaws.com",
"iot.amazonaws.com",
"elasticfilesystem.amazonaws.com",
"lambda.amazonaws.com",
"eks.amazonaws.com",
"rekognition.amazonaws.com",
"logs.amazonaws.com",
"glue.amazonaws.com",
"iotevents.amazonaws.com",
"cloudtrail.amazonaws.com",
"codecommit.amazonaws.com",
"events.amazonaws.com",
"servicecatalog.amazonaws.com",
"elasticbeanstalk.amazonaws.com",
"codewhisperer.amazonaws.com",
"rds.amazonaws.com",
"cloud9.amazonaws.com",
"backup.amazonaws.com",
"credentials.iot.amazonaws.com",
"pipes.amazonaws.com",
"ecs-tasks.amazonaws.com",
"batch.amazonaws.com",
"scheduler.amazonaws.com",
"sagemaker.amazonaws.com",
"autoscaling.amazonaws.com",
"states.amazonaws.com",
"apigateway.amazonaws.com",
"elasticmapreduce.amazonaws.com",
"ec2.application-autoscaling.amazonaws.com",
"cognito-idp.amazonaws.com",
"eks-fargate-pods.amazonaws.com",
"resource-groups.amazonaws.com",
"cloudformation.amazonaws.com",
"deepracer.amazonaws.com",
"forecast.amazonaws.com",
"athena.amazonaws.com",
"firehose.amazonaws.com",
"secretsmanager.amazonaws.com",
"codedeploy.amazonaws.com",
"sqs.amazonaws.com",
"redshift.amazonaws.com",
"ecs.amazonaws.com",
"dynamodb.amazonaws.com",
"kinesisanalytics.amazonaws.com",
"application-autoscaling.amazonaws.com",
"ssm.amazonaws.com",
"kms.amazonaws.com",
"iotanalytics.amazonaws.com",
"kinesis.amazonaws.com",
"sns.amazonaws.com",
"s3.amazonaws.com",
"databrew.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
}
]
}
],
"RolePolicyList": [],
"AttachedManagedPolicies": [
{
"PolicyName": "c189452a4889395l12836487t1w381492014727-VocLabPolicy1-zEGBNp6Sfju0",
"PolicyArn": "arn:aws:iam::381492014727:policy/c189452a4889395l12836487t1w381492014727-VocLabPolicy1-zEGBNp6Sfju0"
},
{
"PolicyName": "c189452a4889395l12836487t1w381492014727-VocLabPolicy2-egpPySJqgXEM",
"PolicyArn": "arn:aws:iam::381492014727:policy/c189452a4889395l12836487t1w381492014727-VocLabPolicy2-egpPySJqgXEM"
},
{
"PolicyName": "c189452a4889395l12836487t1w381492014727-VocLabPolicy3-zGRYRYp1eJvu",
"PolicyArn": "arn:aws:iam::381492014727:policy/c189452a4889395l12836487t1w381492014727-VocLabPolicy3-zGRYRYp1eJvu"
},
{
"PolicyName": "AmazonSSMManagedInstanceCore",
"PolicyArn": "arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore"
},
{
"PolicyName": "AmazonEKSClusterPolicy",
"PolicyArn": "arn:aws:iam::aws:policy/AmazonEKSClusterPolicy"
},
{
"PolicyName": "AmazonEC2ContainerRegistryReadOnly",
"PolicyArn": "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"
},
{
"PolicyName": "AmazonEKSWorkerNodePolicy",
"PolicyArn": "arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy"
}
],
"Tags": [
{
"Key": "cloudlab",
"Value": "c189452a4889395l12836487t1w381492014727"
}
],
"RoleLastUsed": {
"LastUsedDate": "2025-12-01T12:11:28+00:00",
"Region": "us-east-1"
}
},
...In AWS Academy, no IAM users are created for us.
We cannot modify policies, create roles, or add new users.
Instead, AWS Academy provides a preconfigured role called LabRole, which already has the necessary permissions attached.
This role gives us all the access we need to complete the assignment.
If you really want to understand a little bit more what happens under the hood, you can do the following exercices. Be aware that you should read the “Really Recommended References” first, and then try to do this exercices.

AMSA 2025-2026 - 🏠 Home