Я хочу отправить уведомление из SNS (Аккаунт A) в Lambda (Аккаунт B). Следовал этому руководству, но все еще получал ошибку ниже: https://docs.aws.amazon.com/lambda/latest/dg/with-sns-example.html
Код ошибки: AccessDeniedException - Сообщение об ошибке: Пользователь: arn: aws: sts :: AccountA: предполагаемая роль / AdministratorAccessRole / A12345 не разрешено выполнять: lambda: AddPermission для ресурса: arn: aws: lambda: us-east-1: AccountB: function: TestLambda
Ниже того, что я сделал: 1. В учетной записи A, Добавленная ниже политика в Политике доступа SNS:
{
"Version": "2008-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "_abc_",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::AccountB:root"
},
"Action": [
"SNS:Subscribe",
"SNS:Receive"
],
"Resource": "arn:aws:sns:us-east-1:AccountA:TriggerLambdaB-SNS"
}
]
}
2. В учетной записи B добавлена политика в отношении ресурсов на основе лямбды:
{
"Version": "2012-10-17",
"Id": "default",
"Statement": [
{
"Sid": "_abc_",
"Effect": "Allow",
"Principal": {
"Service": "sns.amazonaws.com"
},
"Action": "lambda:InvokeFunction",
"Resource": "arn:aws:lambda:us-east-1:AccountB:function:TestLambda",
"Condition": {
"ArnLike": {
"AWS:SourceArn": "arn:aws:sns:us-east-1:AccountA:TriggerLambdaB-SNS"
}
}
}
]
}
Я могу видеть имя SNS в разделе Lambda триггера моей лямбды на счете B. Но когда я пытаюсь подписаться лямбда под SNS, тогда получаю эту ошибку. Пожалуйста, укажите, что мне здесь не хватает.
Это потому, что у меня разные типы ролей в этих учетных записях, например AdminAccessRole в учетной записи A и FederatedRoleAccess в учетной записи B?