У меня есть корзина s3 с кучей файлов, к которым я хочу получить доступ из моей лямбды (и лямбда, и корзина s3, созданные одной учетной записью):
def list_all():
s3 = boto3.client('s3')
bucket = 'my-bucket'
resp = s3.list_objects(Bucket=bucket, MaxKeys=10)
print("s3.list_objects returns", resp)
Это выдает ошибку примерно так:
{
"errorMessage": "An error occurred (AccessDenied) when calling the
ListObjects operation: Access Denied",
"errorType": "ClientError",
"stackTrace": [
[
"/var/task/lambda_function.py",
41,
"lambda_handler",
"list_all()"
], ...
Мои настройки ведра отображаются следующим образом на aws:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}
У меня было два вопроса:
1) Что мне установить в поле «Действие», чтобы я мог перечислять все файлы в любой папке из моей лямбды с помощью boto3?
2) что я должен установить для своего принципала, чтобы только моя учетная запись aws (например, когда я запускаю свою лямбду) могла получить доступ к корзинам?