AWS CLI使用s3

aws CLI是什么东西,暂且先不去了解,目前的需求是s3.

我在Jenkins上创建一个bucket,然后申请access_key,然后就可以使用s3来存储数据了。也就是说,s3就是一个网盘。

1.安装CLI

文档:http://docs.aws.amazon.com/cli/latest/userguide/installing.html

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
$ unzip awscli-bundle.zip
$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

2.配置

配置很简单,提供access_key 和secret_access_key以及region就可以了。

aws configure

3.脚本配置

由于给我的key是1h的,因此需要每次使用的时候更新它。

脚本中使用环境变量是最好的。参考:http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-environment

然后,我明明在脚本中export了key,却总是不通过。纠结了好久之后,百度了n个帖子之后,还是Linux环境变量的问题。

  • 子shell复制父shell的环境变量
  • export的环境变量是当前有效并且针对当前用户的
  • 脚本中aws默认寻找总的环境变量,这就导致自己设置的环境变量没有读取
  • 所以需要在脚本的开头声明环境变量文件: . /etc/profile . ~/.bash_profile
#!/bin/bash

# update aws configure
# configure environment variables for the default user
#  ~/.aws/credentials
# [default]
#   aws_access_key_id = AKIAJB2HUQ2N2SVSWDDA
#   aws_secret_access_key = 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
#  ~/.aws/config
# [default]
# output = json
# region = us-west-2

. /etc/profile
. ~/.bash_profile
#get client_token
 client_token_json=`curl -XPOST https://store.test.expedia.com/v1/auth/app-id/login -d '{"app_id":"d8xxxxxxxx789871","user_id":"710xxxxxxxxxb65-b8xxxxxaf1b01"}' --silent  -k`
 client_token=$(echo $client_token_json | jq .auth.client_token | cut -d "\"" -f 2)
 aws_auth=$(curl -H "X-Vault-Token:$client_token" -X GET   https://store.test.expedia.com/v1/test/creds/epc-content-mongodb --silent  -k)

# set environment, only effec in this shell
 access=$(echo $aws_auth | jq .data.access_key | cut -d "\"" -f 2)
 secret=$(echo $aws_auth | jq .data.secret_key | cut -d "\"" -f 2)

 export AWS_ACCESS_KEY_ID=$access
 export AWS_SECRET_ACCESS_KEY=$secret
 env | grep AWS


echo "[default]" > ~/.aws/credentials
echo "aws_access_key_id="$access>>~/.aws/credentials
echo "aws_secret_access_key="$secret>>~/.aws/credentials

echo "[default]"> ~/.aws/config
echo "output = json">>~/.aws/config
echo "region = us-west-2">>~/.aws/config
 echo "aws key has updated!"

# wait for effective
#sleep 10s
#test aws s3
#aws s3 ls s3://epc-content-mongodb-export --output json --region us-west-2

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏信安之路

渗透测试信息收集工具篇

如果知道目标的域名,你首先要做的就是通过 Whois 数据库查询域名的注册信息,Whois 数据库是提供域名的注册人信息,包括联系方式,管理员名字,管理员邮箱等...

900
来自专栏令仔很忙

用户登录失败,Microsoft sql server 错误:18456

    电脑上的安全软件,不小心拒绝了一个net1.exe的进程,结果在登录 SQL server 2008 的时候,就总是提示“用户登录失败,错误:18456...

712
来自专栏武军超python专栏

2018年8月9号飞机大战项目答辩得到的经验和基本的win终端命令

今天遇到的新单词: adapter n适配器 virtual adj 虚拟的 interface n接口 corporation n公司,法人

813
来自专栏林德熙的博客

如何安装 btsync 优点windows 安装Centos 6 安装国内如何下载搭建预定义主机ZeroTier

本文告诉大家如何在 windows 和 Linux 安装使用 Btsync ,而且分享一些小东西给大家

571
来自专栏生信技能树

跟着jimmy学docker系列之第2讲:一个软件一个容器

回过头来看当初在生信技能树发布的docker教程已经是2017-07-07的事情了,那是一个好日子?:

722
来自专栏北京马哥教育

jenkins+gitlab构建安卓自动编译环境

因工作关系接触到接触到安卓自动编译环境,网上的资料都推荐了jenkins,因为第一次接触安卓和jenkins,踩了不少的坑,有总结才有进步。 gitlab环境之...

3305
来自专栏王磊的博客

聊聊excel生成图片的几种方式

目录     I:需求。    II:实现思路。     III:实现方式。     IV:优缺点分析。     V:结论。     VI:wps安装与配置。 ...

33911
来自专栏大魏分享(微信公众号:david-share)

身份验证和权限管理---Openshift3.9学习系列第三篇

OAuth是由Blaine Cook、Chris Messina、Larry Halff 及David Recordon共同发起的,目的在于为API访问授权提供...

1936
来自专栏木头编程 - moTzxx

微信小程序 转发功能实例讲解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

1623
来自专栏PHP技术

PHP 安全性漫谈

原文出处: 彭长霖 本文所讨论的安全性环境是在Linux+Apache+Mysql+PHP。超出此范围的安全性问题不在本文范畴之内 一、apache serv...

2777

扫码关注云+社区