云计算学习笔记
  • 前言
  • AWS入门
    • 如何创建一个AWS账号
    • 创建管理员用户
    • 如何在AWS上创建一个服务器
  • 账户
    • IAM
      • CLI(AWS 命令行接口)
      • 策略
        • 通过资源策略授权跨账户访问S3
        • 使⽤标签限制⽤⼾只能操作⾃⼰的AWS资源
        • 策略示例
  • 计算
    • EKS
      • 使用控制台创建EKS
      • 使用eksctl创建EKS
      • 为其他用户授权使用已经创建的EKS
    • EC2
      • 创建EC2
      • AMI
  • 存储
    • EBS(卷)
  • 粤ICP备20030352号
由 GitBook 提供支持
在本页
  • 示例 将文件上传到AWS S3
  • 如何安装CLI
  • 如何在CLI中配置AWS 账号信息
  • 实战最优

这有帮助吗?

  1. 账户
  2. IAM

CLI(AWS 命令行接口)

AWS CLI 是一个开源工具,让用户可以在命令行shell中使用命令与AWS服务进行交互。它可以让我们使用简单的命令,完成与基于浏览器的AWS管理控制台相同的功能。作为一名极客,我们在使用AWS 时,需要掌所CLI的各种操作来提升我们的效率,所以在《跟我学AWS》中,CLI做为首个被介绍的功能,后续我们很多服务介绍中都会使用CLI来进行操作

上一页IAM下一页策略

最后更新于4年前

这有帮助吗?

示例 将文件上传到AWS S3

将本地机器上的一个文件上传的到s3 上,我们可以这么操作

$ aws s3 cp me.jpg s3://photo/

如果各项配置正确的话,上面命令运行完成后,我们会有photo 存储桶中看到me.jpg文件,相比我们基于浏览器的管理控制台操作上传是不是方便很多

如何安装CLI

在中有介绍使用pip来安装CLI,基于python 2版本2.7+ 或python 3版本3.4+,但是用户在对照执行的时候,很容易出错,报pip或pip3命令不存在,为了解决这些问题,用户又要绕一圈解决pip问题,最后还不一定成功,下面我将介绍使用一个比较有保障的方法来安装CLI

# curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"

# unzip awscli-bundle.zip

# ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

# /usr/local/bin/aws --version
aws-cli/1.16.291 Python/2.7.5 Linux/3.10.0-862.el7.x86_64 botocore/1.13.27

2020年1月10起,AWS CLI版本1.17和更高版本将不在支持python 2.6或python3.3,需要python2.7,python3.4或更高版本才能成功安装AWS CLI,更多信息,请参阅

通过/usr/local/bin/aws --version 我们可以看到CLI已经安装成功,可以将/usr/local/bin/aws添加到环境变量中或用aws 别名代替,后面的操作通过aws就可以直接操作了

[root@ip-172-31-16-125 root]# export PATH=/usr/local/bin:$PATH
[root@ip-172-31-16-125 root]# aws --version
aws-cli/1.16.291 Python/2.7.5 Linux/3.10.0-862.el7.x86_64 botocore/1.13.27

如何在CLI中配置AWS 账号信息

使用CLI与AWS 进行交互时,AWS需要知道你是谁?你要操作哪个区域的资源,你想要交互的格式(默认JSON),因此,我们需要提前配置账号信息

aws configure命令可以帮我们进行配置账号信息

$ aws configure
AWS Access Key ID [None]: AKIAVJAFGOERNWAB774L
AWS Secret Access Key [None]: FAD2K5L6NN5B3J56BKJ 
Default region name [None]: ap-east-1
Default output format [None]: json

上面四个参数中,AWS Access Key ID和 AWS Secret Access Key是在IAM中对应用户的安全证书下配置,一个用户同时最多两对密钥,创建时就是记住这个值,这个值后面不会再展示。Default region name 表示你要操作的区域,示例中ap-east-1代表香港,AWS 上所有的区域值可参考Region表,如果你在CLI需要切换Region,比如从香港切换到法兰克福,需要重新执行aws configure ,在Default region name中设置你要操作Region。Default output format用于指定输出格式(有三个值:json/text/table, 默认json)

配置完账号信息后,我们就可以通过CLI 操作该账号被授权的AWS 资源

实战最优

在使用aws configure 时,我们可以加上一个 --profile参数 ,然后设置一个标识,执行完aws configure 后,会将对应的密钥信息存在~/.aws/credentials文件中,会将对应的region,output format信息保存在 ~/.aws/config文件中,这些配置信息将与我们设置的标识关联,如果不使用--profile 设置标识,在两个文件中将使用default关联

$ aws configure --profile dev

如果我们要在一台机器上设置多个密钥,上面这种方面将很有效,我们在使用aws命令时,可以带上我们设置的标识,aws命令也将使用对应标识的密钥与aws进行交互,如果不指定,将以default对应的密钥进行操作

$ aws s3 ls --profile dev

上面命令访问s3 列表 时,将以dev 标识对应的密钥进行。如果我们知道dev就是默认要操作密钥,而每次带-- profile dev又很麻烦,我们可以通过临时设置 :export AWS_PROFILE=dev 来使我们后面aws 命令操作都以dev对应的密钥进行

在工作中,我们通常会在多个AWS主账号上做一些操作。比如作为技术顾问,我们会对接多个客户的账户。或者在一个主账号下有多个账户(开发,测试),不同账户的密钥功能,权限不一样,如何在一台电脑上有效配置保存这些密钥保障工作中不混淆也是非常重要的事情

官网
官方信息