bezpieczenstwo-w-chmurze/skrypty/create-ec2-for-inspector.sh
2024-10-31 11:44:14 +01:00

41 lines
1.8 KiB
Bash

#!/bin/bash
# Variables
KEY_NAME="uam-bwc-key"
INSTANCE_TYPE="t2.micro"
SECURITY_GROUP_NAME="uam-bwc-sg"
AMI_ID="ami-0ddc798b3f1a5117e"
REGION="us-east-1"
# Generate SSH key pair
aws ec2 create-key-pair --key-name $KEY_NAME --query 'KeyMaterial' --output text --region $REGION > ${KEY_NAME}.pem
chmod 400 ${KEY_NAME}.pem
# Create security group
SECURITY_GROUP_ID=$(aws ec2 create-security-group --group-name $SECURITY_GROUP_NAME --description "Security group for uam-bwc EC2 instance" --query 'GroupId' --output text --region $REGION)
# Add rules to security group
aws ec2 authorize-security-group-ingress --group-id $SECURITY_GROUP_ID --protocol tcp --port 22 --cidr 0.0.0.0/0 --region $REGION
aws ec2 authorize-security-group-ingress --group-id $SECURITY_GROUP_ID --protocol tcp --port 80 --cidr 0.0.0.0/0 --region $REGION
aws ec2 authorize-security-group-ingress --group-id $SECURITY_GROUP_ID --protocol tcp --port 443 --cidr 0.0.0.0/0 --region $REGION
# User data script
USER_DATA_SCRIPT=$(cat <<EOF
#!/bin/bash
yum install -y httpd
systemctl start httpd
curl -O https://inspector-agent.amazonaws.com/linux/latest/install
sudo bash install
EOF
)
# Provision EC2 instance
INSTANCE_ID=$(aws ec2 run-instances --image-id $AMI_ID --count 1 --instance-type $INSTANCE_TYPE --key-name $KEY_NAME --security-group-ids $SECURITY_GROUP_ID --user-data "$USER_DATA_SCRIPT" --query 'Instances[0].InstanceId' --output text --region $REGION)
# Wait for the instance to be in running state
aws ec2 wait instance-running --instance-ids $INSTANCE_ID --region $REGION
# Get the public IP of the instance
INSTANCE_PUBLIC_IP=$(aws ec2 describe-instances --instance-ids $INSTANCE_ID --query 'Reservations[0].Instances[0].PublicIpAddress' --output text --region $REGION)
echo "EC2 instance is running. Public IP: $INSTANCE_PUBLIC_IP"