所以我在一个类似的安全协议下
- 本地机器被授予一个用户组,以使用基本只读权限登录aws
- 本地计算机然后创建一个本地~/.aws/credentials文件,其中包含多个配置文件
- 现在,对于不同的项目,这些本地aws配置文件可以通过以下命令承担项目IAM角色
aws sts assume-role $PROJECT_IAM_ROLE_ARN --role-session-name $DUMMY_SESSION_NAME --profile $DESIRED_AWS_PROFILE > temp_credentials_file.json
- 步骤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"
}
}
- ,我的凭据文件如下
[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