Я пытаюсь поместить текстовый файл из Lambda, который находится в учетной записи B, в корзину S3 в учетной записи A. В корзине S3 (тестовая корзина) используется шифрование AWS -KMS с включенным управляемым ключом aws / s3. 1. Я добавил следующие разрешения в сегменте Account A- S3 (тестовый сегмент):
```
{"Version": "2012-10-17",
"Id": "ExamplePolicy",
"Statement": [
{
"Sid": "ExampleStmt",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::AccountB:role/Lambda-Role"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::test-bucket/*"
}
]
}
Добавлена ниже встроенная политика к моей роли выполнения Lambda в учетной записи B:
{"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt",
"kms:GenerateDataKey",
"kms:DescribeKey",
"kms:ReEncrypt*"
],
"Resource": [
"arn:aws:kms:us-west-2:AccountA:key/AWS-KMS-ID"
]
}
]
}
Это мой код Lambda:
res = s3.put_object(
Body=message,
Key=file_name,
Bucket='test-bucket',
ACL='bucket-owner-full-control'
)
Ошибка при запуске этого кода ниже из учетной записи B Lambda:
An error occurred (AccessDenied) when calling the PutObject operation: Access Denied
Поскольку корзина S3 зашифрована AWS управляемым ключом, я не могу редактировать политику KMS, что мы делаем в случае ключа, управляемого клиентом.
Кто-то пожалуйста, объясни мне, что мне не хватает.