【问题标题】:Boto3 Error in AWS SDK: botocore.exceptions.NoCredentialsError: Unable to locate credentialsAWS 开发工具包中的 Boto3 错误:botocore.exceptions.NoCredentialsError:无法找到凭证
【发布时间】:2020-01-21 18:28:48
【问题描述】:

当我简单地运行以下代码时,我总是得到这个错误。

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”中提供凭据

【问题讨论】:

    标签: python amazon-web-services aws-sdk boto3 boto


    【解决方案1】:

    我假设您在本地机器上运行此代码。

    您创建的 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 配置。请点击以下链接。

    https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html

    【讨论】:

    • 那么有没有办法直接在程序中设置凭据,而不设置凭据文件?
    • 您可以直接硬编码程序中的密钥或将它们保存在凭据文件中。为了提高安全性,您可以使用加密包加密您的密钥 -> 添加加密密钥 -> 在创建客户端时解密。如果您在 AWS 中部署代码,您可以将凭证存储在 AWS Secrets Manager link
    猜你喜欢
    • 2016-01-22
    • 2022-07-20
    • 1970-01-01
    • 2015-08-18
    • 2020-06-03
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多