如何访问Python SDK boto3的安全令牌
我想从python脚本访问AWS理解api。没有获得如何删除此错误的任何线索。有一件事我知道,我必须获得会话安全令牌如何访问Python SDK boto3的安全令牌,python,amazon-web-services,aws-sdk,boto3,Python,Amazon Web Services,Aws Sdk,Boto3,我想从python脚本访问AWS理解api。没有获得如何删除此错误的任何线索。有一件事我知道,我必须获得会话安全令牌 try: client = boto3.client(service_name='comprehend', region_name='us-east-1', aws_access_key_id='KEY ID', aws_secret_access_key= 'ACCESS KEY') text = "It is raining today in Seattle" p
try:
client = boto3.client(service_name='comprehend', region_name='us-east-1', aws_access_key_id='KEY ID', aws_secret_access_key= 'ACCESS KEY')
text = "It is raining today in Seattle"
print('Calling DetectEntities')
print(json.dumps(client.detect_entities(Text=text, LanguageCode='en'), sort_keys=True, indent=4))
print('End of DetectEntities\n')
except ClientError as e:
print (e)
错误:调用Detectenties操作时发生错误(UnrecognizedClientException):请求中包含的安全令牌无效
此错误表明您提供的凭据无效 永远不要在源代码中放入凭据也毫无价值。如果其他人获得对源代码的访问权,这可能会导致潜在的安全问题 有几种方法可以向使用AWS SDK的应用程序提供有效凭据(例如
boto3
)
如果应用程序在Amazon EC2实例上运行,请为该实例分配一个IAM角色。这将自动提供可由boto3检索的凭据
如果您在自己的计算机上运行应用程序,请将凭据存储在.aws/credentials
文件中。创建此文件的最简单方法是使用aws configure
命令
请参阅:我每天使用的一个有用工具是: 这使得担任这个角色变得容易多了 在.aws/credentials和.aws/config中设置访问密钥后 您可以执行以下操作:
AWS\u PROFILE=**您的概要文件**AWS概要文件[python x.py]
[]
中的部分可以替换为您想要使用AWS凭据的任何内容。e、 g.地形图
本质上,此实用程序只是将AWS凭据放入os环境变量中。然后,在boto脚本中,您无需担心设置aws\u访问\密钥\u id等问题。使用
aws configure
或更新~/.aws/config
创建配置文件。如果只有一个配置文件要使用=default
,则可以从Session()
调用中省略profile\u name
参数(请参见下面的示例)。然后使用会话对象创建AWS特定于服务的客户端。榜样
import boto3
session = boto3.session.Session(profile_name="test")
ec2_client = session.client('ec2')
ec2_client.describe_instances()
ec2_resource = session.resource(‘ec2’)
提供的凭据是否来自具有访问权限的有效IAM用户?或者它们是临时凭证(在这种情况下,您需要提供aws_会话_令牌)?您是在Amazon EC2实例上还是在自己的计算机上运行此代码?