Как настроить лямбда-функцию AWS для выполнения операции crud над таблицами DynamodB в разных субсчетах aws? - PullRequest
0 голосов
/ 15 октября 2019

В лямбда-функциях у нас есть версия и псевдонимы, у меня есть два псевдонима (test1, test2). test1 выполняет операцию crud для динамодаба в пределах одной и той же учетной записи, в то время как test2 необходимо выполнить crud для динамодеба в другой суб-учетной записи того же региона (чтобы предотвратить переделку в функции lambda).

Как я пытался:

  1. создал роль в основной учетной записи для принятия роли
  2. создал роль в дополнительной учетной записи, будет иметь полный доступ к службе aws
  3. скопировал arn и назначил роль дополнительной учетной записи для основной учетной записи sts accept policy
  4. проверить лямбда-функцию для извлечения данных из таблицы динамической базы данных субсчета
  5. ошибка:
{
  "errorMessage": "User: arn:aws:sts::123456:assumed-role/getAccessSubAccountRole/testlambdafunction is not authorized to perform: dynamodb:Query on resource: arn:aws:dynamodb:region:123456:table/USER",
  "errorType": "AccessDeniedException",
  "stackTrace": [
    "Request.extractError (/var/runtime/node_modules/aws-sdk/lib/protocol/json.js:51:27)",
    "Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:106:20)",
    "Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:78:10)",
    "Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:683:14)",
    "Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)",
    "AcceptorStateMachine.runTo (/var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)",
    "/var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10",
    "Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)",
    "Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:685:12)",
    "Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:116:18)"
  ]
}

1 Ответ

0 голосов
/ 16 октября 2019

В сообщении об ошибке указана проблема:

Пользователь: arn: aws: sts :: 123456: предполагается, что роль / getAccessSubAccountRole / testlambdafunction не авторизован для выполнения: dynamicodb: Запрос к ресурсу:arn: aws: dynamodb: region: 123456: таблица / USER

В # 2, которое вы упомянули, «создание роли в дополнительной учетной записи будет иметь полный доступ к сервису aws», но я думаю, что вам следует дважды проверить, что эта рольимеет доступ, который вы ожидаете. Означает ли это, что у вас есть доступ администратора? Убедившись, что у него есть доступ, проверьте как оцениваются политики .

...