Jay*_*dha 5 python amazon-s3 amazon-web-services amazon-iam aws-lambda
我正在尝试使用 lambda 函数从我的 s3 存储桶中读取 json 文件。
我因以下错误而被拒绝访问:
Starting new HTTPS connection (1): test-dev-cognito-settings-us-west-2.s3.us-west-2.amazonaws.com
An error occurred (AccessDenied) when calling the GetObject operation: Access Denied: ClientError
Run Code Online (Sandbox Code Playgroud)
我的代码片段如下:
import boto3
import logging
def trigger_handler(event, context):
logger = logging.getLogger()
logger.setLevel(logging.INFO)
s3 = boto3.resource('s3')
obj = s3.Object('test-dev-cognito-settings-us-west-2', 'test/map.json') // This line working
regions=obj.get()['Body'].read() // This line giving Access Denied :(
logger.info('received event: %s ',obj)
return event
Run Code Online (Sandbox Code Playgroud)
我附加到 lambda 函数的 IAM 角色如下:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Test",
"Effect": "Allow",
"Action": "s3:Get*",
"Resource": "arn:aws:s3:::*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
附加到 s3 存储桶的 IAM 角色如下。
{
"Sid": "AllowForSpecificLambda",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::XXXXXXXXXX:role/lambda_allow_pretoken_generation_jdtest"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::test-dev-cognito-settings-us-west-2/*",
"arn:aws:s3:::test-dev-cognito-settings-us-west-2"
]
},
Run Code Online (Sandbox Code Playgroud)
有什么帮助吗?
谢谢
| 归档时间: |
|
| 查看次数: |
4983 次 |
| 最近记录: |