Commande avec AWS CLI (Command Line Interface)
Références
AWS CLI References
General Configuration
Check credentials configuration |
---|
| |
Get user ID & Account |
---|
| aws sts get-caller-identity
|
EC2 (Elastic Compute Cloud)
EC2 References
O7 Pro Tip
Command -> o7 cli ec2
Lists any of your instances that have the tag Name=MyInstance. |
---|
| aws ec2 describe-instances --filters "Name=tag:Name,Values=MyInstance"
|
List to only your t2.micro instances and outputs only the InstanceId |
---|
| aws ec2 describe-instances \
--filters "Name=instance-type,Values=t2.micro" \
--query "Reservations[].Instances[].InstanceId"
|
Get Instance Id with a specific name |
---|
| aws ec2 describe-instances \
--filters "Name=tag:Name,Values=stelar-devops-bastion" \
--query "Reservations[0].Instances[0].InstanceId" \
--output text
|
Delete an instance |
---|
| aws ec2 terminate-instances --instance-ids i-5203422c
|
S3 (Simple Storage Service)
O7 Pro Tip
Command -> o7 cli s3
Sync Current Directory |
---|
| aws --profile o7 s3 sync --sse AES256 [s3://bucket/folder] .
|
Directory Size |
---|
| aws s3 ls [s3://bucket/folder/] --recursive \
| awk 'BEGIN {total=0}{total+=$3}END{print total/1024/1024/1024" GB"}'
|
See Object Version |
---|
| aws s3api list-object-versions \
--bucket [s3://bucket/folder/] \
--prefix [filter.. ex: *.zip]
|
Re-Encripter des fichiers dans un S3 |
---|
| export BUCKET="bucket-name"
export FOLDER="folder-name"
# Test
aws s3 cp s3://$BUCKET/$FOLDER/ s3:/$BUCKET/$FOLDER/ --sse AES256 --recursive --dryrun
# Execute
aws s3 cp s3://$BUCKET/$FOLDER/ s3:/$BUCKET/$FOLDER/ --sse AES256 --recursive
|
Effacer tous les fichiers d'un bucket versionné |
---|
| export S3_BUCKET_NAME=bucket_name
aws s3api list-object-versions --bucket $S3_BUCKET_NAME | \
jq -r '.Versions[] | @base64' | \
while read -r obj; do
key=$(echo "${obj}" | base64 --decode | jq -r .Key)
versionId=$(echo "${obj}" | base64 --decode | jq -r .VersionId)
echo "Deleting Key=$key VersionId=$versionId"
aws s3api delete-object --bucket $S3_BUCKET_NAME --key "$key" --version-id "$versionId"
done
aws s3api list-object-versions --bucket $S3_BUCKET_NAME | \
jq -r '.DeleteMarkers[] | @base64' | \
while read -r obj; do
key=$(echo "${obj}" | base64 --decode | jq -r .Key)
versionId=$(echo "${obj}" | base64 --decode | jq -r .VersionId)
echo "Deleting Marker Key=$key VersionId=$versionId"
aws s3api delete-object --bucket $S3_BUCKET_NAME --key "$key" --version-id "$versionId"
done
|
ECR (Elastic Container Registry)
Push Image to ECR Repo |
---|
| # prepare variable fron upload to ECR
REGION=ca-cenral-1
ACCOUNT_ID=123456789012
IMAGE="my_image"
ECR_URL=$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com
ECR_URL_REPO=$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com/$IMAGE
$VERSION = '3'
# Tag
docker tag $IMAGE:latest $ECR_URL_REPO:$VERSION
# Get Authentification
aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin $ECR_URL
# Push
echo Pushing the Docker image...
docker push $ECR_URL_REPO:$VERSION
|
ACM (AWS Certificate Manager)
List Certificates |
---|
| aws acm list-certificates
|
SSM (AWS Systems Manager) - Parameter Store
O7 Pro Tip
Command -> o7 cli ps
List My Parameters |
---|
| aws ssm describe-parameters
|
Get Value of a String Param |
---|
| aws ssm get-parameter --name mykey --query "Parameter.Value"
|
Set New Value |
---|
| aws ssm put-parameter --name mykey --value 0.1.1 --overwrite
|
Get AMI Id for linux-2-ecs |
---|
| aws ssm get-parameters \
--names /aws/service/ecs/optimized-ami/amazon-linux-2/recommended/image_id \
--query '[Parameters[0].Value]' \
--output text
|
Secret
O7 Pro Tip
Command -> o7 cli secret
List My Secrets |
---|
| aws secretsmanager list-secrets
|
View a Secrets |
---|
| aws secretsmanager get-secret-value --secret-id <secret-id>
|
Reference
Note
It is now strongly recommend to use IMDSv2. It is now required to conform to recent security standards.
Get Instance ID |
---|
| curl http://169.254.169.254/latest/meta-data/instance-id
|
Get IPV4 Address |
---|
| curl http://169.254.169.254/latest/meta-data/local-ipv4
|
Examples for IMDSv2 |
---|
| TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
export AZ=$(curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/placement/availability-zone)
export REGION=${AZ::-1}
export MAC=$(curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/mac)
export SUBNET_ID=$(curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/network/interfaces/macs/$MAC/subnet-id)
|
ECS Agent Metadata |
---|
| curl -s http://localhost:51678/v1/metadata
|