3

我正在运行一个 lambda,它将通过使用 boto3 自动触发一个理解工作。

但是,由于某种原因,我的 IAM 无法正常工作!我对该工作的角色拥有以下权限:

  • IAM完全访问
  • AmazonS3FullAccess
  • 理解完全访问
  • AWSLambdaExecute

但是,当在理解中创建作业时,它会立即失败并显示以下错误消息:

NO_WRITE_ACCESS_TO_OUTPUT: The provided data access role does not have write access to the output S3 URI.

有想法该怎么解决这个吗?我已授予角色完整的 S3 权限?

4

2 回答 2

1

你能检查一下你的角色的信任策略,看看 comprehend 是否受信任吗?

此处的示例信任策略 - https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions.html

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "comprehend.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
于 2020-12-17T01:49:17.530 回答
0

所有 IAM API 调用都是异步的。因此,如果您通过 boto3 创建角色和策略并立即假设它们并运行理解,它们可能无法正常工作。您可以通过睡眠等待几秒钟或使用重试机制。这就是我解决这个问题的方法。

于 2021-10-07T08:51:57.133 回答