檢視 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
」。
導覽選單
個人工具
登入
命名空間
頁面
討論
臺灣正體
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
視圖
閱讀
檢視原始碼
檢視歷史
更多
搜尋
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
工具
連結至此的頁面
相關變更
特殊頁面
頁面資訊