我正在使用以下代码从dyanoDB中读取
import boto3
session = boto3.Session(
aws_access_key_id='XXXXXXXXXXXXXXXXXXXX',
aws_secret_access_key='XXXXXXXXXXXXXXXXXXXXXXX')
dynamodb = session.resource('dynamodb')
table = dynamodb.Table('Employee')
resp = table.get_item(Key={"Empid": 551554297})
该用户具有AWSAdmin访问权限,DynamoDBfull访问权限和DyanamoDBread访问权限 但是我仍然在运行代码时陷入错误之中
botocore.exceptions.ClientError: An error occurred (AccessDeniedException)
when calling the GetItem operation: User:
arn:aws:iam::944198216610:user/cduser is not authorized to perform:
dynamodb:GetItem on resource: arn:aws:dynamodb:us-east-
1:944198216610:table/Employee
有人可以帮我弄清楚我在做什么错吗?
答案 0 :(得分:0)
我发现使用 docker 容器,即使您在构建期间将访问和秘密密钥设置为环境变量,您仍然必须在脚本中明确声明区域、key_id 和 access_key:ex. boto3.resource('dynamodb', region_name=<>, aws_access_key_id=<>, aws_secret_access_key=<>) .
在脚本的纯文本中设置这些设置的另一种方法是将它们存储在 ~/.aws/config 和 ~/.aws/credentials 中,或者更好的是,作为秘密安装。