通过AWS CLI传入访问密钥和密钥

时间:2017-07-31 19:48:53

标签: amazon-web-services amazon-s3 aws-sdk

由于某些企业限制,我只能通过命令行访问AWS,而且我无法设置环境变量。我想知道是否有办法用这样的方式传递我的键:

aws s3 cp <file> s3://testbucket --aws-access-key <accesskey> --aws-secret-key <secretkey>

我注意到this question非常相似,尽管答案似乎不适用于我的情况或引用ec2din命令,我无法将其转换为将文件复制到s3。我刚收到回复Unknown options: --aws-access-key,--aws-secret-key

4 个答案:

答案 0 :(得分:6)

试试这个:

AWS_ACCESS_KEY_ID=AAAA AWS_SECRET_ACCESS_KEY=BBB aws s3 cp <file> s3://testbucket

这将仅设置此命令的键。如果您需要会话的密钥,请按以下方式导出:

export AWS_ACCESS_KEY_ID=AAAA ; export AWS_SECRET_ACCESS_KEY=BBB ; aws s3 cp <file> s3://testbucket

答案 1 :(得分:2)

您是否可以将AK / SK保存到文件中? (非常像SSH私钥将保存在〜/ .ssh / id_rsa中)

如果是这样,您可以运行命令aws configure,它将提示您输入AK和SK(加上默认区域和默认输出格式)。凭据将保存到〜/ .aws / credentials,区域和输出(如果您选择指定它们)将保存到〜/ .aws / config。

如果您 允许将您的凭据写入文件,请注意通过命令传递凭据的命令,例如 - 这些凭据可能会进入&#34;命令历史记录&#34;文件!在某些shell中,您可以进行配置,以便在命令前添加空格可以防止将其写入历史文件。

答案 2 :(得分:0)

在项目https://circleci.com/docs/2.0/env-vars/中添加环境变量

屏幕: enter image description here

然后配置config .circleci / config.yml:

# deploy to aws s3
  deploy:
    docker: 
      - image: cibuilds/aws:1.15.73
    environment:
      aws_access_key_id: $AWS_ACCESS_KEY_ID
      aws_secret_access_key: $AWS_SECRET_ACCESS_KEY
    steps:
      - attach_workspace:
          at: ./workspace
      - run: 
          name: Deploy to S3 if tests pass and branch is develop
          command: aws s3 sync workspace/public s3://your.bucket/ --delete

答案 3 :(得分:0)

您可以在aws configure自身内部传递密钥,下面是一个示例:

aws configure set aws_access_key_id <accessKeyID>
aws configure set aws_secret_access_key <secretAccessKey>

然后运行您的命令:

aws <command> help
aws <command> <subcommand> help

如果您想将所有这些都放在一行中:

aws configure set aws_access_key_id "xxx" && \
aws configure set aws_secret_access_key "yyy" && \
aws s3 ls