AWS CLIの利用例
関連ページ
aws iam list-users | IAMユーザーの確認 |
aws iam list-groups | IAMグループの確認 |
aws iam list-roles | IAMロールの一覧 |
aws iam create-user --user-name ******** --tags Key=department,Value=******** Key=location,Value=********** aws iam create-access-key --user-name ******** aws iam create-login-profile --user-name ******** --password '************' --password-reset-required aws iam attach-user-policy --user-name ******** --policy-arn arn:aws:iam::aws:policy/IAMUserChangePassword aws iam add-user-to-group --user-name ******** --group-name ******** aws iam add-user-to-group --user-name ******** --group-name ********
aws iam list-users --query "Users[].[UserName,CreateDate,PasswordLastUsed]" --output text
aws iam list-groups --query "Groups[].[GroupName,GroupId,CreateDate]" --output text
echo "GroupName GroupId Arn CreateDate" > /tmp/awscli.tmp aws iam list-groups --query "Groups[].[GroupName,GroupId,Arn,CreateDate]" --output text | sort >> /tmp/awscli.tmp column -t /tmp/awscli.tmp rm /tmp/awscli.tmp
echo "UserName Groups" > /tmp/awscli.tmp aws iam list-users --query "Users[].[UserName]" --output text | sort | while read line do echo ${line} > /tmp/awscli-group.tmp aws iam list-groups-for-user --user-name ${line} --query "Groups[].[GroupName]" --output text >> /tmp/awscli-group.tmp cat /tmp/awscli-group.tmp | tr "\n" " " | sed 's/$/\n/g' >> /tmp/awscli.tmp done column -t /tmp/awscli.tmp rm /tmp/awscli.tmp /tmp/awscli-group.tmp
aws iam list-roles --query "Roles[].[RoleName,CreateDate]" --output text
aws iam list-roles --query "Roles[].[RoleName,AssumeRolePolicyDocument][]"
aws iam list-policies --scope Local
aws iam list-policies --scope Local --query "Policies[].[PolicyName,CreateDate,AttachmentCount,DefaultVersionId,UpdateDate]" --output text
aws iam list-users --query "Users[].[UserName]" --output text | while read line do echo UserName:$line aws iam list-attached-user-policies --user-name $line --query "AttachedPolicies[].[PolicyName,PolicyArn]" --output text echo "" done
aws iam list-groups --query "Groups[].[GroupName]" --output text | while read line do echo GroupName:$line aws iam list-attached-group-policies --group-name $line --query "AttachedPolicies[].[PolicyName,PolicyArn]" --output text echo "" done
aws iam list-roles --query "Roles[].[RoleName]" --output text | while read line do echo RoleName:$line aws iam list-attached-role-policies --role-name $line --query "AttachedPolicies[].[PolicyName,PolicyArn]" --output text echo "" done
aws iam list-access-keys --query "AccessKeyMetadata[].[UserName,AccessKeyId,Status,CreateDate]" --output text
echo "AccessKey LastUsedDate ServiceName Region" for access_key in $(aws iam list-access-keys --query "AccessKeyMetadata[].AccessKeyId" --output text); do IAMTEMP=$(aws iam get-access-key-last-used --access-key-id $access_key --query "AccessKeyLastUsed.[LastUsedDate,ServiceName,Region]" --output text); echo "$access_key $IAMTEMP" >> /tmp/awscli.tmp done column -t /tmp/awscli.tmp rm /tmp/awscli.tmp
aws ec2 describe-vpcs aws ec2 describe-vpcs --vpc-ids vpc-xxxxxxx
aws ec2 create-vpc --cidr-block 10.0.0.0/16
aws ec2 delete-vpc --vpc-id vpc-xxxxxxx
aws ec2 create-tags --resources vpc-xxxxxxx --tags Key=Name,Value=VPC-TEST
aws ec2 create-subnet --vpc-id vpc-xxxxxxx --cidr-block 10.0.1.0/24 --availability-zone ap-northeast-1a
aws ec2 delete-subnet --subnet-id subnet-xxxxxxx
#リージョン内で稼働している全インスタンスの情報を取得 aws ec2 describe-instances
echo "NameTag InstanceId ImageId InstanceType AvailabilityZone KeyName PrivateIpAddress State VpcId SubnetId" > /tmp/awscli.tmp aws ec2 describe-instances --query "Reservations[].Instances[].[Tags[?Key=='Name'] | [0].Value,InstanceId,ImageId,InstanceType,Placement.AvailabilityZone,KeyName,PrivateIpAddress,State.Name,VpcId,SubnetId]" --output text >> /tmp/awscli.tmp column -t /tmp/awscli.tmp rm /tmp/awscli.tmp
GlobalIP,Name,Platform,PrivateIp,SecurityGroupId,State
aws ec2 describe-instances --output=table --query 'Reservations[].Instances[].{PrivateIp: join(`, `, NetworkInterfaces[].PrivateIpAddress), GlobalIP: join(`, `, NetworkInterfaces[].Association.PublicIp), Platform:Platform, State: State.Name, SecurityGroupId: join(`, `, SecurityGroups[].GroupId) ,Name: Tags[?Key==`Name`].Value|[0]}' Org: https://qiita.com/Raccoon-san/items/497fb3ba49bcf870e4e6 aws ec2 describe-instances --output=table --query 'Reservations[].Instances[].{InstanceId: InstanceId, PrivateIp: join(`, `, NetworkInterfaces[].PrivateIpAddress), GlobalIP: join(`, `, NetworkInterfaces[].Association.PublicIp), Platform:Platform, State: State.Name, SecurityGroupId: join(`, `, SecurityGroups[].GroupId) ,Name: Tags[?Key==`Name`].Value|[0]}'
aws ec2 describe-instances --instance-ids ${instance-id} aws ec2 describe-instances --instance-ids ${instance-id} ${instance-id-2} ${instance-id-3}
#インスタンスの状態が「running」のもののみ取得 aws ec2 describe-instances --filter "Name=instance-state-name,Values=running" 「pending」「shutting-down」「terminated」「stopping」「stopped」 aws ec2 describe-instances --filter "Name=instance-type,Values=m3.xlarge" aws ec2 describe-instances --filter "Name=instance-state-name,Values=running" "Name=instance-type,Values=m3.xlarge" #タグを条件に指定 aws ec2 describe-instances --filter "Name=tag:Name,Values=web"
#インスタンスIDのみ取得 aws ec2 describe-instances | jq '.Reservations[].Instances[].InstanceId' #インスタンスID、インスタンスタイプ、プライベートIPを取得 aws ec2 describe-instances | jq '.Reservations[].Instances[] | {InstanceId, InstanceType, PrivateIpAddress}' #インスタンスID、プライベートIP、タグ名(Key=Name)を取得 aws ec2 describe-instances | jq '.Reservations[].Instances[] | {InstanceId, PrivateIpAddress, InstanceName: (.Tags[] | select(.Key=="Name").Value)}'
aws s3 ls | バケットの一覧を表示 |
aws s3 ls s3://バケット名/パス | バケットの内容を表示 |
aws s3 mb s3://バケット名 aws --region リージョン s3 mb s3://バケット名 aws --region ap-northeast-1 s3 mb s3://バケット名 | バケットを作成 |
aws s3 rb s3://バケット名 | バケットを削除 (空でない場合は削除されない) |
aws s3 rb s3://バケット名 --force | バケットを削除 (空でなくても削除) |
aws s3 sync フォルダ s3://バケット名/パス | バケットの内容をローカルのフォルダと同期 (追加・更新のみで削除されない) |
aws s3 sync フォルダ s3://バケット名/パス --delete | バケットの内容をローカルのフォルダと同期 (削除もされる) |
aws s3 cp ファイルパス s3://バケット名/パス/ | ローカルのファイルをバケットにコピー |
aws s3 mv ファイルパス s3://バケット名/パス/ | ローカルのファイルをバケットに移動 |
aws s3 rm s3://バケット名/ファイル | バケットのファイルを削除 |
aws s3 rm s3://バケット名/フォルダ --recursive | バケットのフォルダを削除 |
aws s3 sync /xxxx/dir/ s3://test-bucket/dir1/ --exclude "*" --include "*.txt"
aws s3api list-buckets --output talbe aws s3api list-buckets --output json