Boto 3使用的凭据在"凭据-Boto 3"中进行了汇总,并按指定顺序从8个位置搜索凭据。
凭证搜索顺序
Boto3尝试通过多种方法(例如参数和配置文件)获取凭据。方法和顺序在"配置凭据-凭据— Boto 3"中,相关部分的翻译如下。
boto3的凭据搜索机制是根据以下列表进行搜索,并在找到凭据时在此处停止。 Boto3搜索凭据的顺序为:
凭据作为参数传递给
创建对象时作为参数传递的
我们将在下面介绍其中一些使用API??访问密钥和API秘密密钥或命名配置文件的应用。
1.使用client() 方法和resource() 方法
直接指定
在
<表格>
tr>
header>
<身体>
tr>
tr>
tr>
tbody>
table>
以下是在交互式shell中执行的示例。
1 2 3 | >>> import boto3 >>> client = boto3.client('iam', aws_access_key_id='YOURACCESSKEY', aws_secret_access_key='YOURSECRETKEY') >>> client.list_users() |
即使使用
1 2 3 | >>> import boto3 >>> resource = boto3.resource('iam', aws_access_key_id='YOURACCESSKEY', aws_secret_access_key='YOURSECRETKEY') >>> list(resource.users.all()) |
2.创建Session 对象
时作为参数传递的凭证
指定认证信息
使用
<表格>
tr>
header>
<身体>
tr>
tr>
tr>
tbody>
table>
以下是在交互式shell中执行的示例。
1 2 3 4 | >>> import boto3 >>> session = boto3.session.Session(aws_access_key_id='YOURACCESSKEY', aws_secret_access_key='YOURSECRETKEY') >>> client = session.client('iam') >>> client.list_users() |
指定配置文件
使用
<表格>
tr>
header>
<身体>
tr>
tbody>
table>
以下是在交互式shell中执行的示例。
1 2 3 4 | >>> import boto3 >>> session = boto3.session.Session(profile_name='YOURPROFILENAME') >>> client = session.client('iam') >>> client.list_users() |
3.环境变量
指定认证信息
使用环境变量指定以下内容。如果在上一节之前未指定显式凭证,则将使用此凭证。
<表格>
tr>
header>
<身体>
tr>
tr>
tr>
tbody>
table>
以下是在bash环境中设置上述环境变量之后调用Python交互式shell的执行示例。
1 2 3 4 5 6 7 8 9 | $ export AWS_ACCESS_KEY_ID=YOURACCESSKEY $ export AWS_SECRET_ACCESS_KEY=YOURSECRETKEY $ python3 Python 3.6.9 (default, Nov 7 2019, 10:44:02) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import boto3 >>> client = boto3.client('iam') >>> client.list_users() |
指定配置文件
使用环境变量指定以下内容。如果在上一节中未指定任何显式凭据,则将使用在此指定的命名配置文件中配置的凭据。
<表格>
tr>
header>
<身体>
tr>
tbody>
table>
以下是在bash环境中设置上述环境变量之后调用Python交互式shell的执行示例。
1 2 3 4 5 6 7 8 | $ export AWS_PROFILE=YOURPROFILENAME $ python3 Python 3.6.9 (default, Nov 7 2019, 10:44:02) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import boto3 >>> client = boto3.client('iam') >>> client.list_users() |
4.共享的凭据文件(~/.aws/credentials )
如果到目前为止没有凭据,将使用在凭据文件(
5. AWS配置文件(~/.aws/config )
如果您到目前为止没有凭证,将使用AWS配置文件(
7. Boto2配置文件(/etc/boto.cfg and ~/.boto )
如果到目前为止尚无身份验证信息,则将确认Boto2配置文件中存储的身份验证信息是否存在。 Boto2配置文件默认放置在
1 2 3 4 | # Example ~/.boto file [Credentials] aws_access_key_id = foo aws_secret_access_key = bar |
这是为了向后兼容,除了"凭据"部分外,Boto2配置文件将被忽略。
认证方法,指定方法和优先级
Boto3中可用的凭据包括(a)API访问密钥和API秘密密钥,(b)默认配置文件,(c)命名配置文件和(d)角色(此处未提及细节),这意味着四种类型的身份验证是可能的。到目前为止,这与指定方法相对应。
<表格>
tr>
header>
<身体>
tr>
tr>
tr>
tr>
tbody>
table>
当您认为未使用假定的身份验证方法时,似乎有必要检查是否使用更高优先级的指定方法进行了其他指定。
例如,即使您在
参考
关于boto3身份验证。
- 凭据-Boto 3
关于AWS凭证文件和配置文件。
- 配置和凭证文件设置-AWS命令行界面
- 命名为Profile-AWS命令行界面
- AWS CLI轻松设置--AWS CLI设置--AWS命令行界面
关于boto3的每种方法。
- boto3.client()
- boto3.reference()
- boto3.session.Session()。client()
- boto3.session.Session()。资源()
- boto3.session.Session()
关于Boto2配置文件。
- Boto配置— boto v2.49.0
-
凭据-Boto 3 Docs 1.12.26文档--Boto2 Config