Я пытаюсь получить доступ к S3 bucket в другой учетной записи с моей AWS Lambda с помощью boto3. Ниже приведены шаги, которые я настроил. 1. В учетной записи A, где находится Lambda, я создаю роль «Выполнение» (Lambda-S3-SNS-VP C -Role) и присоединяю к ней одну управляемую политику AmazonS3FullAccess и одну встроенную политику. как:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1489133353000",
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": [
"arn:aws:iam::<Account-B-ID>:role/access-s3-bucket-from-lambda-in-another-acc-role"
]
}
]
}
В Account-B, где присутствует моя корзина S3, я создал одну роль IAM (access-s3-bucket-from-lambda-in-another-a cc -role) как показано ниже: - Прикрепленная управляемая политика AmazonS3FullAccess и доверительные отношения:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<Account-A-ID>:role/Lambda-S3-SNS-VPC-Role",
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
Кроме того, в S3 Bucket на счете B приведена ниже политика Bucket
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<Account-A-ID>:role/Lambda-S3-SNS-VPC-Role"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-bucket-in-acc-B",
"arn:aws:s3:::my-bucket-in-acc-B/*"
]
}
]
}
Ниже приведен мой код функции Lambda. :
def lambda_handler(event, context):
sts_connection = boto3.client('sts')
acct_b = sts_connection.assume_role(
RoleArn="arn:aws:iam::<Account-B-ID>:role/access-s3-bucket-from-lambda-in-another-acc-role",
RoleSessionName="cross_acct_lambda"
)
print('acct_b: ',acct_b)
Но во время тестирования ничего не происходит, и время ожидания функции истекло. Пожалуйста, руководство.