Boto3 Error in AWS SDK: botocore.exceptions.NoCredentialsError: Unable to locate credentials
Boto3 Error in AWS SDK: botocore.exceptions.NoCredentialsError: Unable to locate credentials
当我简单地运行下面的代码时,我总是得到这个错误。
import boto3 as boto
import sys
import json
role_to_assume_arn="arn:aws:iam::xxxxxxxxxxxx:role/AWSxxxx_xxxxxxAdminaccess_xxxxx24fexxx"
role_session_name='AssumeRoleSession1'
sts_client=boto.client('sts')
assumed_role_object=sts_client.assume_role(
RoleArn="arn:aws:iam::xxxxxxxxxxxx:role/AWSxxxx_xxxxxxAdminaccess_xxxxx24fexxx",
RoleSessionName="Sess1",
)
creds=assumed_role_object['Credentials']
sts_assumed_role = boto3.client('sts',
aws_access_key_id=creds['AccessKeyId'],
aws_secret_access_key=creds['SecretAccessKey'],
aws_session_token=creds['SessionToken'],
)
rds_client = boto.client('rds',
aws_access_key_id=creds['AccessKeyId'],
aws_secret_access_key=creds['SecretAccessKey'],
aws_session_token=creds['SessionToken']
)
我不想频繁地设置和更改临时会话密钥,而是希望它们像我刚刚编写的代码一样直接设置。
我错了吗?有没有办法直接在程序中设置这样的凭据?
或者是否必须在“~/.aws/credentials”
中提供凭据
我假设你是运行你本地机器上的这段代码。
您创建的 STS 客户端需要访问密钥和秘密访问密钥。
您必须使用凭据文件配置它,或者您可以直接硬编码您的访问密钥和秘密访问密钥,如下所示(不推荐)。
client = boto3.client('sts', aws_access_key_id=key, aws_secret_access_key=sec_key, region_name=region_name)
https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials_profiles.html
如果您在 EC2 实例中 运行 此代码,请安装 boto3 并执行 AWS Configure。按照下面的link.
https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html
当我简单地运行下面的代码时,我总是得到这个错误。
import boto3 as boto
import sys
import json
role_to_assume_arn="arn:aws:iam::xxxxxxxxxxxx:role/AWSxxxx_xxxxxxAdminaccess_xxxxx24fexxx"
role_session_name='AssumeRoleSession1'
sts_client=boto.client('sts')
assumed_role_object=sts_client.assume_role(
RoleArn="arn:aws:iam::xxxxxxxxxxxx:role/AWSxxxx_xxxxxxAdminaccess_xxxxx24fexxx",
RoleSessionName="Sess1",
)
creds=assumed_role_object['Credentials']
sts_assumed_role = boto3.client('sts',
aws_access_key_id=creds['AccessKeyId'],
aws_secret_access_key=creds['SecretAccessKey'],
aws_session_token=creds['SessionToken'],
)
rds_client = boto.client('rds',
aws_access_key_id=creds['AccessKeyId'],
aws_secret_access_key=creds['SecretAccessKey'],
aws_session_token=creds['SessionToken']
)
我不想频繁地设置和更改临时会话密钥,而是希望它们像我刚刚编写的代码一样直接设置。
我错了吗?有没有办法直接在程序中设置这样的凭据?
或者是否必须在“~/.aws/credentials”
中提供凭据我假设你是运行你本地机器上的这段代码。
您创建的 STS 客户端需要访问密钥和秘密访问密钥。
您必须使用凭据文件配置它,或者您可以直接硬编码您的访问密钥和秘密访问密钥,如下所示(不推荐)。
client = boto3.client('sts', aws_access_key_id=key, aws_secret_access_key=sec_key, region_name=region_name)
https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials_profiles.html
如果您在 EC2 实例中 运行 此代码,请安装 boto3 并执行 AWS Configure。按照下面的link.
https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html