AWS CLI 权限配置

目录

01 配置秘钥

环境变量秘钥

声明 profile

aws configure

02 aws configure 命令

list [--profile PROFILE]

list-profiles 

import 

03 配置文档字段

范例

credential​s

config

04 AWS IAM Identity Center (SSO)配置

configure 配置

再次登录过程

登出

配置 IAM 角色

基本设置

同账号带有 MFA 信息

带有External ID 的配置

带有 Session Name 的配置

清除凭证缓存


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

credential​s

秘钥相关

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​​​ – 输出采用多个制表符分隔字符串值行的格式。这对于将输出传递到文本处理器(如 ​​grep​​​、​​sed​​​ 或 ​​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, developer-account-admin@example.com (123456789011) 
  ProductionAccount, production-account-admin@example.com (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

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要升级AWS CLI,你可以使用以下步骤进行操作: 1. 首先,验证AWS CLI是否已正确安装。你可以在命令行窗口中运行`aws --version`来检查已安装的版本。 2. 如果你已经安装了AWS CLI,你可以通过运行以下命令来升级它:`pip install --upgrade awscli`。这将使用pip工具来升级AWS CLI到最新版本。请确保你已经安装了Python和pip,并且使用的是管理员权限或适当的用户权限来执行此命令。 3. 安装完成后,你可以再次运行`aws --version`来验证AWS CLI是否已成功升级到最新版本。 4. 另外,你还可以考虑使用AWS CLI别名存储库中的awscli-aliases工具来简化AWS CLI的使用。确保你使用的是版本1.11.24或更高版本的AWS CLI,并参考相关的安装和升级信息。 请注意,升级AWS CLI时可能会出现一些依赖关系或配置问题。如果遇到任何问题,请参考AWS CLI的官方文档或寻求AWS支持来获取帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [在 macOS 上安装 AWS CLI](https://blog.csdn.net/sinat_38036426/article/details/93026334)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [aws cli入门之简介](https://blog.csdn.net/qq_27868061/article/details/122378455)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [awscli-aliases, AWS CLI别名存储库.zip](https://download.csdn.net/download/weixin_38743968/11758709)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值