General
Eliminar paginación cli
export AWS_PAGER=""
Conseguir número cuenta
aws sts get-caller-identity --query 'Account' --output text --profile admin
EC2
Cómo saber que versión de AMZ Linux AMI tengo
cat /etc/os-release
NAME="Amazon Linux AMI"
VERSION="2017.03"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2017.03"
PRETTY_NAME="Amazon Linux AMI 2017.03"
ANSI_COLOR="0;33"
CPE_NAME="cpe:/o:amazon:linux:2017.03:ga"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"
Version 2017.03 equivale a Linux AMI 1
cat /etc/os-release
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
Versión 2 equivale a Linux AMI 2
Listar EC2 con AZ, ID
aws ec2 describe-instances --query 'Reservations[].Instances[].{Instance:InstanceId,AZ:Placement.AvailabilityZone,Name:Tags[?Key==Name]|[0].Value}' --output table
Listar EC2 y mostrar SecurityGroupID
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[SecurityGroups[*].GroupId]' --output text | awk 'BEGIN { OFS="\n"}; {$1=$1; print $0 }'| sort | uniq
mismo comando pero también mostrando las características del SG
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[SecurityGroups[*].GroupId]' --output text | awk 'BEGIN { OFS="\n"}; {$1=$1; print $0 }'| sort | uniq | xargs aws ec2 describe-security-groups --group-id
LAMBDA
Listar funciones agrupadas por Runtime
aws lambda list-functions | jq ".Functions | group_by(.Runtime)|[.[]|{ (.[0].Runtime): [.[]|{ name: .FunctionName, timeout: .Timeout, memory: .MemorySize }] }]"
S3
Cambiar owner de todos los objetos
<code>aws s3 ls s3://$BUCKET_DEST/ --recursive --profile default|awk {'print $4'}|xargs -I {} aws s3api put-object-acl --bucket </code><code>$BUCKET_DEST</code> --acl bucket-owner-full-control --key {} --profile default
Cambiar un objeto s3 de Glacier a STANDARD
Tenemos una lista de objetos que tenemos que recuperar del Vault de Glacier y moverlos a S3 STANDAR.
Paso 1, recuperar los archivos. Iniciar una serie de peticiones a S3 para habilitar los archivos durante unos días.
for ... (whatever);
do
aws s3api restore-object --bucket $BUCKET --key $OBJECT --restore-request '{"Days":25,"GlacierJobParameters":{"Tier":"Standard"}}'
done
Una vez hemos hecho las llamadas hemos de esperar.
Cuando el tiempo pase, si accedemos por consola veremos que S3 permite hacer un “Download” del fichero. Lo bajamos a local.
for object in whatever;
aws s3 cp s3://$BUCKET/$object .
done
Ahora solo faltaría volverlo a subir, es decir, sobreescribiendo y configurando la clase STANDARD.
for object in whatever;
do
aws s3 cp $object s3://$BUCKET/$object --storage-class STANDARD;
done
Recurso
EBS
Mostrar el volumen total usado en Gigabytes de la cuenta
aws ec2 describe-volumes --query 'sum(Volumes[].Size)'
RDS
Listar identificadores de RDS
aws rds describe-db-instances --query 'DBInstances[*].[DBInstanceIdentifier]' --output text
Listar snapshots y filtrar por algún tipo de string
aws rds describe-db-snapshots | jq '.DBSnapshots[]|.DBSnapshotIdentifier' |grep beta
List all instances queriyng multiples attributes
aws rds describe-db-instances --query 'DBInstances[*].{ID:DBInstanceIdentifier,Name:DBName,EngineName:Engine,Version:EngineVersion,
Public:PubliclyAccessible,Type:DBInstanceClass,OptionGroup:OptionGroupMemberships[*].OptionGroupName|[0],VpcId:DBSubnetGroup.VpcId}' --output text
Listar security groups únicos en RDS
for sg in $(for rds in $(aws rds describe-db-instances --query 'DBInstances[*].[DBInstanceIdentifier]' --output text);do aws rds describe-db-instances --db-instance-identifier $rds --query 'DBInstances[*].[VpcSecurityGroups]' --output text|awk 'BEGIN { OFS="\n"}; {$1=$1; print $0 }'|grep -v active|sort;done); do echo $sg; done | uniq
IAM
Listar keys
for user in $(aws iam list-users --output text | awk '{print $NF}'); do
aws iam list-access-keys --user $user --output text
done
Listar IAM Roles y buscar string
aws iam list-roles --profile sts | jq -r '.Roles[] | [.Arn]' |grep scaling
aws iam get-role --role-name nombre-del-role --profile sts | jq -r '.Role.AssumeRolePolicyDocument.Statement[].Principal.Service'
aws iam list-roles --profile sts | jq -r '.Roles[].AssumeRolePolicyDocument.Statement[].Principal.Service'|grep -w "^application-autoscaling.amazonaws.com"
Codepipeline
Listar codepipeline
aws codepipeline list-pipelines |grep name|awk {'print $2'}|sed 's/,$//' |tr -d \"
ECS
aws ecs describe-tasks --cluster beta --tasks cc04414fea7b4ab29aab5b6de981d087 --profile sts |jq -r '.tasks[] | [.taskArn, .lastStatus,.healthStatus,.group]'
ECR
Filtrar imágenes en el repositorio y obtener las últimas que fueron subidas
aws ecr describe-images --repository-name base-tomcat/java7-tomcat8 --query 'sort_by(imageDetails,& imagePushedAt)[-1].imagePushedAt' --output text --profile prod --region eu-west-1 |sort -nr |head -1