跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Gea-Suan Lin's Wiki
搜尋
搜尋
登入
個人工具
登入
檢視 Awscli 的原始碼
頁面
討論
臺灣正體
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
←
Awscli
由於以下原因,您無權編輯此頁面:
您請求的操作只有這個群組的使用者能使用:
使用者
您可以檢視並複製此頁面的原始碼。
{{Lowercase}} '''awscli'''是[[AWS]]官方提供的Command Line Interface(CLI)軟體。 == 安裝 == 可以透過pipx安裝,避免影響到目前環境內的套件,目前官方建議用v2,但沒有上到[[PyPI]]: <syntaxhighlight lang="bash"> pipx install git+https://github.com/aws/aws-cli.git@v2 </syntaxhighlight> 或是裝舊的v1: <syntaxhighlight lang="bash"> pipx install awscli </syntaxhighlight> == 常用指令 == === EC2 === 分成兩段,先是設定的部分,可以針對不同的AWS帳號放到不同的檔案裡面用<code>source</code>拉出來執行: <syntaxhighlight lang="bash"> export AWS_PROFILE=default IMAGE_ID=ami-xxxxxxxxxxxxxxxxx INSTANCE_TYPE=t4g.small KEY_NAME=key-ed25519 NAME=test-100 PRIVATE_IP_ADDRESS=10.1.0.100 REGION=us-east-1 SECURITY_GROUP_IDS=sg-xxxxxxxxxxxxxxxxx SUBNET_ID=subnet-xxxxxxxxxxxxxxxxx </syntaxhighlight> 以及實際執行的部分: <syntaxhighlight lang="bash"> aws ec2 run-instances \ --block-device-mappings "DeviceName=/dev/sda1,Ebs={VolumeType=gp3}" \ --credit-specification CpuCredits=standard \ --image-id "${IMAGE_ID}" \ --instance-type "${INSTANCE_TYPE}" \ --key-name "${KEY_NAME}" \ --network-interfaces "AssociatePublicIpAddress=true,DeviceIndex=0" \ --private-ip-address "${PRIVATE_IP_ADDRESS}" \ --region "${REGION}" \ --security-group-ids "${SECURITY_GROUP_IDS}" \ --subnet-id "${SUBNET_ID}" \ --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=${NAME}}]" </syntaxhighlight> === IAM === 開管理員帳號(這邊是使用AWS內已經有的<code>AdministratorAccess</code>): <syntaxhighlight lang="bash"> aws iam create-user --user-name ${MY_AWS_USERNAME} aws iam attach-user-policy --policy-arn arn:aws:iam::aws:policy/AdministratorAccess --user-name ${MY_AWS_USERNAME} </syntaxhighlight> 生出access key,一個帳號最多兩把。其中的<code>AccessKeyId</code>與<code>SecretAccessKey</code>就是需要的設定,要注意<code>SecretAccessKey</code>之後不會再出現: <syntaxhighlight lang="bash"> aws iam create-access-key --user-name ${MY_AWS_USERNAME} </syntaxhighlight> 超過兩把再呼叫會出現錯誤訊息: <pre> An error occurred (LimitExceeded) when calling the CreateAccessKey operation: Cannot exceed quota for AccessKeysPerUser: 2 </pre> 列出這個帳號所有的access key(只會有<code>AccessKeyId</code>,不會有<code>SecretAccessKey</code>): <syntaxhighlight lang="bash"> aws iam list-access-keys --user-name ${MY_AWS_USERNAME} </syntaxhighlight> === S3 === * 建立一個S3 bucket, * 建立對應的使用者(IAM), * 掛上完整的權限, * 產生對應的key: <syntaxhighlight lang="bash"> BUCKET_NAME=gslin-test; aws s3 mb s3://${BUCKET_NAME}; aws iam create-user --user-name s3.${BUCKET_NAME}.full; aws iam put-user-policy --user-name s3.${BUCKET_NAME}.full --policy-name Policy-s3-${BUCKET_NAME}-full --policy-document '{"Version":"2012-10-17","Statement":[{"Action":["s3:*"],"Resource":"arn:aws:s3:::'${BUCKET_NAME}'/*","Effect":"Allow"}]}'; aws iam create-access-key --user-name s3.${BUCKET_NAME}.full </syntaxhighlight> 如果是只能讀取的話,這邊列出比較常見的操作(<code>"s3:GetObject","s3:HeadObject","s3:ListObjects","s3:ListObjectsV2"</code>這段): <syntaxhighlight lang="bash"> BUCKET_NAME=gslin-test; aws s3 mb s3://${BUCKET_NAME}; aws iam create-user --user-name s3.${BUCKET_NAME}.readonly; aws iam put-user-policy --user-name s3.${BUCKET_NAME}.readonly --policy-name Policy-s3-${BUCKET_NAME}-readonly --policy-document '{"Version":"2012-10-17","Statement":[{"Action":["s3:GetObject","s3:HeadObject","s3:ListObjects","s3:ListObjectsV2"],"Resource":"arn:aws:s3:::'${BUCKET_NAME}'/*","Effect":"Allow"}]}'; aws iam create-access-key --user-name s3.${BUCKET_NAME}.readonly </syntaxhighlight> == 外部連結 == * {{Official|https://aws.amazon.com/cli/}} [[Category:指令]] [[Category:軟體]]
此頁面使用了以下模板:
Template:DISPLAYTITLE
(
檢視原始碼
)
Template:Lowercase
(
檢視原始碼
)
Template:Official
(
檢視原始碼
)
Template:Official website
(
檢視原始碼
)
Template:Trim
(
檢視原始碼
)
Module:Arguments
(
檢視原始碼
)
Module:Official website
(
檢視原始碼
)
Module:URL
(
檢視原始碼
)
返回到「
Awscli
」。
切換限制內容寬度