【问题标题】:AWS IAM Comprehend IssueAWS IAM 理解问题
【发布时间】:2020-02-17 11:10:47
【问题描述】:

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

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

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

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

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

关于如何解决这个问题的任何想法?我已授予角色完整的 S3 权限?

【问题讨论】:

  • 你能检查附加到 comprehend 的角色是否具有所需的权限吗?参考:docs.aws.amazon.com/comprehend/latest/dg/…
  • @HassanMurtaza 我已经编辑甚至创建了一个新角色,该角色具有从 S3 存储桶读取、写入和列出内容的完全访问权限,但仍然存在问题。
  • 您确定 S3 存储桶和 Comprehend 在同一区域工作吗?

标签: amazon-web-services amazon-s3 aws-lambda amazon-iam amazon-comprehend


【解决方案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"
    }
  ]
}

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 2022-12-21
      相关资源
      最近更新 更多