Как предоставить разрешение на отправку сообщений в очередь SQS в другой учетной записи AWS?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как предоставить разрешение на отправку сообщений в очередь SQS в другой учетной записи AWS?

Сообщение Anonymous »

Я пишу приложение Python, которое извлекает данные из учетной записи A и отправляет их в очередь SQS в учетной записи B. При выполнении лямбда-функции возвращается следующая ошибка:

"errorMessage": "Произошла ошибка (AccessDenied) при вызове операции SendMessage: доступ к ресурсу https://eu-central-1.queue.amazonaws.com/ запрещен.",

Если я использую очередь SQS в той же учетной записи, это работает.

Я использую Бессерверную платформу и Мне нужно использовать ExternalId в роли перекрестного аккаунта.

Что я сделал:

В учетной записи A (где выполняется функция Lambda)

Приведенная ниже функция была развернута с использованием бессерверной платформы:

TotalCollectorWeekToDate:
handler: environment.total_wtd_summary_handler
module: collectors
memorySize: 128
role: arn:aws:iam:::role/FunctionsLambdaRole
timeout: 30
events:
- schedule:
rate: cron(0 7 * * ? *)
enabled: true
environment:
COST_DATA_SQS_QUEUE_URL: https://sqs.eu-central-1.amazonaws.com/ ... yser-queue


Роль

Resources:
FunctionsLambdaRole:
Type: AWS::IAM::Role
Properties:
RoleName: FunctionsLambdaRole
AssumeRolePolicyDocument:
Statement:
- Effect: Allow
Principal:
Service:
- lambda.amazonaws.com
Action: "sts:AssumeRole"
Path: /
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole
Policies:
- PolicyName: logs
PolicyDocument:
Statement:
Effect: Allow
Action:
- "logs:CreateLogGroup"
- "logs:CreateLogStream"
- "logs:PutLogEvents"
Resource: "arn:aws:logs:*:*:*"
- PolicyName: lambda
PolicyDocument:
Statement:
Effect: Allow
Action:
- "lambda:InvokeFunction"
Resource: "*"
- PolicyName: VPCAccess
PolicyDocument:
Statement:
Effect: Allow
Action:
- "ec2:CreateNetworkInterface"
- "ec2:DescribeNetworkInterfaces"
- "ec2:DeleteNetworkInterface"
Resource: "*"
- PolicyName: CostExplorerAccess
PolicyDocument:
Statement:
Effect: Allow
Action:
- "ce:*"
Resource: "*"
- PolicyName: AssumeCostAnalyserDelegatedAccessRole
PolicyDocument:
Statement:
Effect: Allow
Action:
- "sts:AssumeRole"
Resource: "arn:aws:iam:::role/DelegatedAccessRole"


В учетной записи B (где находится очередь SQS)

Роль

Resources:
DelegatedAccessPolicy:
Type: 'AWS::IAM::ManagedPolicy'
Properties:
ManagedPolicyName: DelegatedAccessPolicy
Path: /
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Action:
- sqs:SendMessage
- sqs:GetQueueAttributes
- sqs:GetQueueUrl
- sqs:ListQueues
Resource: arn:aws:sqs:eu-central-1::prod-analyser-queue
DelegatedAccessRole:
Type: AWS::IAM::Role
DeletionPolicy: Delete
Properties:
RoleName: DelegatedAccessRole
Path: "/"
AssumeRolePolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Principal:
AWS: !Ref TrustedEntities
Action: sts:AssumeRole
Condition:
StringEquals:
sts:ExternalId: !Ref ExternalId
ManagedPolicyArns:
- { "Fn::GetAtt" : ["DelegatedAccessPolicy", "Arn"]}



SQS


DataPushQueue:
Type: AWS::SQS::Queue
Properties:
QueueName: prod-analyser-queue
DelaySeconds: 5
MaximumMessageSize: 262144
MessageRetentionPeriod: 345600
VisibilityTimeout: 600
DataPushQueuePolicy:
Type: AWS::SQS::QueuePolicy
Properties:
PolicyDocument:
Statement:
- Effect: Allow
Principal:
AWS:
- arn:aws:iam:::role/DelegatedAccessRole
Action:
- sqs:SendMessage
- sqs:DeleteMessage
- sqs:GetQueueAttributes
- sqs:GetQueueUrl
- sqs:ListQueues
- sqs:ReceiveMessage
- sqs:SetQueueAttributes
Resource: { "Fn::GetAtt" : ["DataPushQueue", "Arn"]}
Queues:
- !Ref DataPushQueue



Подробнее здесь: https://stackoverflow.com/questions/622 ... -aws-accou
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»