如何使用cli为配置文件更新~/.aws/credentials文件中的aws密钥



所以我在一个类似的安全协议下

  1. 本地机器被授予一个用户组,以使用基本只读权限登录aws
  2. 本地计算机然后创建一个本地~/.aws/credentials文件,其中包含多个配置文件
  3. 现在,对于不同的项目,这些本地aws配置文件可以通过以下命令承担项目IAM角色aws sts assume-role $PROJECT_IAM_ROLE_ARN --role-session-name $DUMMY_SESSION_NAME --profile $DESIRED_AWS_PROFILE > temp_credentials_file.json
  4. 步骤3创建一个有效期为一小时的临时凭据,并以如下格式写入文件
{
"AssumedRoleUser": {
"AssumedRoleId": "dummy_aasume_role_id:DUMMY_SESSION_NAME_VALUE", 
"Arn": "PROJECT_IAM_ROLE_ARN/DUMMY_SESSION_NAME_VALUE"
}, 
"Credentials": {
"SecretAccessKey": "dummy_SecretAccessKey", 
"SessionToken": "dummy_SessionToken", 
"Expiration": "_some_time_stamp", 
"AccessKeyId": "dummy_AccessKeyId"
}
}
  1. ,我的凭据文件如下
[profile_1]
aws_access_key_id = dummy_access_key_id_profile_1
aws_secret_access_key = dummy_aws_secret_access_key_profile_1
region = dummy_region_profile_1
aws_session_token = dummy_aws_session_token_profile_1
[profile_2]
aws_access_key_id = dummy_access_key_id_profile_2
aws_secret_access_key = dummy_aws_secret_access_key_profile_2
region = dummy_region_profile_2
aws_session_token = dummy_aws_session_token_profile_2
[profile_3]
aws_access_key_id = dummy_access_key_id_profile_3
aws_secret_access_key = dummy_aws_secret_access_key_profile_3
region = dummy_region_profile_3
aws_session_token = dummy_aws_session_token_profile_3

现在,我如何读取temp_credentials.json文件,并通过cli为~/.aws/credentials文件中的任何给定配置文件设置所有3个aws密钥,而不影响其他文件

我也试过

sudo aws configure set AccessKeyId dummy_value --profile profile_2

但它不起作用

命令成功执行,但~/.aws/credentials文件中的内容不会更改

它应该类似于:

aws configure set aws_access_key_id dummy_access_key_id_profile_1 --profile profile_1
aws configure set aws_secret_access_key dummy_aws_secret_access_key_profile_1  --profile profile_1

变量的名称需要与配置支持的这些名称相匹配。在您的示例中,set AccessKeyId试图设置一个无效的变量。需要更改为set aws_access_key_id

https://docs.aws.amazon.com/cli/latest/reference/configure/set.html

最新更新