首页 > 其他分享 >AWS CLI 权限配置

AWS CLI 权限配置

时间:2023-05-02 17:33:22浏览次数:53  
标签:profile CLI AWS aws us sso role 权限

01 配置秘钥

环境变量秘钥

Linux | Mac

export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AWS_DEFAULT_REGION=us-west-2

Windows CMD

setx AWS_ACCESS_KEY_ID AKIAIOSFODNN7EXAMPLE
setx AWS_SECRET_ACCESS_KEY wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
setx AWS_DEFAULT_REGION us-west-2

Powershell

$Env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
$Env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
$Env:AWS_DEFAULT_REGION="us-west-2"

声明 profile

CLI 参数声明

aws ec2 describe-instances --profile user1

环境变量声明

linux | mac

export AWS_PROFILE=user1

Windows

setx AWS_PROFILE user1

aws configure

配置 default profile

# aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json


02 aws configure 命令

list [--profile PROFILE]

获取某个 profile 的配置信息

# aws configure list --profle xxx
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************ABCD  shared-credentials-file    
secret_key     ****************ABCD  shared-credentials-file    
    region                us-west-2             env    AWS_DEFAULT_REGION

list-profiles

获取已配置的所有 profile

# aws configure list-profiles
default
test

import 

从在 console 中下载的 csv 中导入

aws configure import --csv file://credentials.csv

get

# aws configure get region --profile integ
us-west-2

set

# aws configure set region us-west-2 --profile integ

03 配置文档字段

范例

~/.aws/credentials(Linux 和 Mac)或 %USERPROFILE%\.aws\credentials (Windows)

[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

[user1]
aws_access_key_id=AKIAI44QH8DHBEXAMPLE
aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY

~/.aws/config(Linux 和 Mac)或 %USERPROFILE%\.aws\config (Windows)

[default]
region=us-west-2
output=json

[profile user1]
region=us-east-1
output=text

credentials

秘钥相关

aws_access_key_id = AKIAIOSFODNN7EXAMPLE
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk

config

cli_auto_prompt

为 AWS CLI 版本 2 启用自动提示。可以使用两种设置:

  • on 每次尝试运行 aws 命令时都会使用完整的自动提示模式。这包括在完整或不完整的命令之后按 ENTER 键。
cli_auto_prompt = on
  • on-partial 使用部分自动提示模式。如果命令不完整或由于客户端验证错误而无法运行,则使用自动提示。如果您已有现有脚本、运行手册,或者如果您希望只对于不熟悉的命令收到自动提示,而不是每个命令都收到提示,则此模式将非常有帮助。
cli_auto_prompt = on-partial

您可以使用 aws_cli_auto_prompt 环境变量或 --cli-auto-prompt 和 --no-cli-auto-prompt 命令行参数覆盖此设置。


cli_pager

指定用于处理输出的分页程序。预设情况下,AWS CLI 版本 2 会通过操作系统的原定设置分页程序返回所有输出。

可以被 AWS_PAGER 环境变量覆盖。

cli_pager=less

要完全禁用外部分页程序,请将该变量设置为空字符串,如以下示例所示。

cli_pager=

cli_timestamp_format

指定输出中包含的时间戳值的格式。可以指定以下任一值:

  • iso8601 – AWS CLI 版本 2 的原定设置值。如果指定,AWS CLI 根据 ISO 8601 对所有时间戳进行重新格式化。
    ISO 8601 格式的时间戳与以下示例类似。第一个示例通过在时间之后加入 Z,显示以协调世界时 (UTC) 表示的时间。日期和时间由 T 分隔。
2019-10-31T22:21:41Z

要指定不同的时区,不是使用 Z,而是指定 + 或 - 以及所需时区在 UTC 之前或之后的小时数作为两位数值。以下示例显示的时间与上一个示例相同,但调整为太平洋标准时间(比 UTC 晚 8 小时):

2019-10-31T14:21:41-08
  • wire – AWS CLI 版本 1 的原定设置值。如果指定,AWS CLI 按原样显示在 HTTP 查询响应中收到的所有时间戳值。

该条目没有等效的环境变量或命令行选项。

cli_timestamp_format = iso8601

max_attempts

指定 AWS CLI 重试处理程序使用的最大重试次数值,其中初始调用计入您提供的 max_attempts 值。

您可以使用 AWS_MAX_ATTEMPTS 环境变量覆盖此值。

max_attempts = 3

output

指定使用该配置文件请求的命令的原定设置输出格式。您可以指定以下任意值:

  • json – 输出采用 JSON 字符串的格式。
  • yaml – 输出采用 YAML 字符串的格式。
  • yaml-stream – 输出被流式处理并采用 YAML 字符串的格式。串流支持更快地处理大型数据类型。
  • text – 输出采用多个制表符分隔字符串值行的格式。这对于将输出传递到文本处理器(如 grepsed 或 awk)很有用。
  • table – 输出采用表格形式,使用字符 +|- 以形成单元格边框。它通常以“人性化”格式呈现信息,这种格式比其他格式更容易阅读,但从编程方面来讲不是那么有用。

可以被 AWS_DEFAULT_OUTPUT 环境变量或 --output 命令行选项覆盖。

output = table

region

对于使用该配置文件请求的命令,指定要将请求发送到的 AWS 区域。

  • 您可以指定可用于所选服务的任何区域代码,有关列表,请参阅《Amazon Web Services 一般参考》中的 AWS 区域和终端节点
  • 通过 aws_global,您可以为不仅支持区域端点,还支持全局端点的服务指定全局端点,例如 AWS Security Token Service (AWS STS) 和 Amazon Simple Storage Service (Amazon S3)。

您可以使用 AWS_REGION 环境变量、AWS_DEFAULT_REGION 环境变量或 --region 命令行选项覆盖此值。

region = us-west-2

S3 自有属性

[profile development]
s3 =
  max_concurrent_requests = 20
  max_queue_size = 10000
  multipart_threshold = 64MB
  multipart_chunksize = 16MB
  max_bandwidth = 50MB/s
  use_accelerate_endpoint = true
  addressing_style = path

04 AWS IAM Identity Center (SSO)配置

configure 配置

配置信息

$ aws configure sso
SSO session name (Recommended): my-sso
SSO start URL [None]: https://my-sso-portal.awsapps.com/start
SSO region [None]: us-east-1
SSO registration scopes [None]: sso:account:access

浏览器验证

If the browser does not open or you wish to use a different device to authorize this request, open the following URL:
 
https://device.sso.us-west-2.amazonaws.com/

Then enter the code:

QCFK-N451

选择账号和角色

There are 2 AWS accounts available to you.
> DeveloperAccount, [email protected] (123456789011) 
  ProductionAccount, [email protected] (123456789022)
Using the account ID 123456789011
There are 2 roles available to you.
> ReadOnly
  FullAccess

设置 config

CLI default client Region [None]: us-west-2<ENTER>
CLI default output format [None]: json<ENTER>
CLI profile name [123456789011_ReadOnly]: my-dev-profile<ENTER>

成功验证

To use this profile, specify the profile name using --profile, as shown:

aws s3 ls --profile my-dev-profile

~/.aws/config 自动写入以下数据

[profile my-dev-profile]
sso_session = my-sso
sso_account_id = 123456789011
sso_role_name = readOnly
region = us-west-2
output = json

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_registration_scopes = sso:account:access

也可多 profile 共用一个 session配置方式如下,

[profile dev]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[profile prod]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole2

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start

再次登录过程

登录 profile

# aws sso login --profile my-dev-profile
Using a browser, open the following URL:
 
https://device.sso.us-west-2.amazonaws.com/

and enter the following code:
QCFK-N451

登录 session

# aws sso login --sso-session my-dev-session
Attempting to automatically open the SSO authorization page in your default browser.
If the browser does not open or you wish to use a different device to authorize this request, open the following URL:
 
https://device.sso.us-west-2.amazonaws.com/

and enter the following code:
QCFK-N451

Successfully logged into Start URL: https://cli-reinvent.awsapps.com/start

登出

# aws sso logout
Successfully signed out of all SSO profiles.

配置 IAM 角色

IAM 角色的定义要定义在 ~/.aws/config

基本设置

[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
source_profile = user1

同账号带有 MFA 信息

[profile role-without-mfa]
region = us-west-2
role_arn= arn:aws:iam::128716708097:role/cli-role
source_profile=cli-user

[profile role-with-mfa]
region = us-west-2
role_arn= arn:aws:iam::128716708097:role/cli-role
source_profile = cli-user
mfa_serial = arn:aws:iam::128716708097:mfa/cli-user

[profile anika]
region = us-west-2
output = json

带有External ID 的配置

[profile crossaccountrole]
role_arn = arn:aws:iam::234567890123:role/SomeRole
source_profile = default
mfa_serial = arn:aws:iam::123456789012:mfa/saanvi
external_id = 123456

带有 Session Name 的配置

[profile namedsessionrole]
role_arn = arn:aws:iam::234567890123:role/SomeRole
source_profile = default
role_session_name = Session_Maria_Garcia

带有 Session name 后, sts caller identity 会显示以下格式

arn:aws:iam::234567890123:assumed-role/SomeRole/Session_Maria_Garcia

清除凭证缓存

linux | mac

rm -r ~/.aws/cli/cache

Windows

del /s /q %UserProfile%\.aws\cli\cache














标签:profile,CLI,AWS,aws,us,sso,role,权限
From: https://blog.51cto.com/u_14155780/6240052

相关文章

  • typescript重写canvas --7.利用clip在指定区域绘图
    typescript重写canvas--7.利用clip在指定区域绘图1.使用canvas利用clip在指定区域绘图<!DOCTYPEHTML><html><head><metacharset="utf-8"/></head><body><canvasid="myCanvas"width="250"height="200......
  • 基础-SQL-DCL-权限控制
    注意事项:•多个权限之间,使用逗号分隔•授权时,数据库名和表名可以使用*进行通配,代表所有。1).查询权限SHOWGRANTSFOR'用户名'@'主机名';2).授予权限GRANT权限列表ON数据库名.表名TO'用户名'@'主机名';3).撤销权限REVOKE权限列表ON数据库名.表名FR......
  • eclipse中创建简单maven项目,并导出jar包运行
     第一步,eclipse--New--Other 第二步,选择MavenProject 第三步,直接如图所示点击Next 第四步,也是如图所示点击Next 第五步,输入公司名和项目名,再点击Finish 第六部,右键项目RunAs--Maveninstall,生成jar包,然后复制jar到C盘根目录第七步,如图所示,直接运行......
  • MFC-NM_CLICK鼠标左键点击CListCtrl控件消息
    NM_CLICK是鼠标左键点击CListCtrl控件客户区时激发的消息添加消息函数选中控件-->          ......
  • MFC-CListCtrl-获得总列数
     intnHeadNum=mylist4.GetHeaderCtrl()->GetItemCount();//获得总列数str.Format(_T("总列数nHeadNum=%d\r\n"),nHeadNum);OutputDebugString(str);   ......
  • MFC-CListCtrl-DeleteAllItems删除所有项
     BOOLb7=mylist4.DeleteAllItems();//删除所有项    ......
  • mapreduce测试时出现INFO client.RMProxy: Connecting to ResourceManager at 0.0.0.0
    如运行wordcount后出现INFOclient.RMProxy:ConnectingtoResourceManagerat0.0.0.0:8032长时间不动,我尝试修改我的yarn-site.xml配置后可以成功运行  <property>    <name>yarn.nodemanager.aux-services</name>    <value>mapreduce_shuffle</value>  </pr......
  • Docker CLI docker compose port常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • 使用eclipse开发ndk之:导入现有的…
    网上有很多NDK开发的例子,拿来二次开发很好。eclipse是功能强大的IDE开发环境,如果能将这些NDK工程导入可以加快进度。网上查了很久,没有具体的导入方法。通过自己摸索,终于找到了正确的导入办法。1,假设eclipse,jdk,androidSDK,androidNDK,CDT都安装并设置好了。2,在eclipse新建工程......
  • MFC-CListCtrl-LVITEM结构
     typedefstruct_LVITEM{UINTmask;//说明LVITEM结构中哪些成员有效LVIF_TEXT:表示pszText成员有效LVIF_IMAGE:表示iImage成员有效LVIF_PARAM:表示lPa......