Workmail 导出作业无法承担角色

问题描述 投票:0回答:1

我正在尝试以编程方式创建工作邮件导出作业。我可以访问 aws workmail 组织,我什至创建了一个角色,允许访问 s3 存储桶以允许写入其中。我无法弄清楚从 boto 描述邮箱导出作业中得到的响应。它基本上失败了,但我不明白为什么。

我还需要回答的问题是:

  • 邮箱导出作业存在于aws gui环境中的哪里,因为我可以通过sdk获取它们,但不能在aws控制台本身上获取它们。
  • 什么角色需要具有 sts:AssumeRole 策略?如果是工作邮件本身,我将其作为主体添加到可信关系中,但仍然没有任何结果。

我花了很多时间更改 AWS IAM 角色的配置,以允许角色信任不同的委托人。

我对我的程序没有正确的权限有一些想法,但我确实可以访问邮箱中列出的用户等,我不知道我错过了什么。

以下是角色的可信关系状态...

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{My Account}:user/{The username associated with the account}",
                "Service": [
                    "workmail.amazonaws.com",
                    "s3.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

我开始的一项工作的回应:

{'EntityId': '{entity id}',
 'Description': 'Testing job for mailbox export.',
 'RoleArn': 'arn:aws:iam::{Account}:role/ApiReadRole',
 'KmsKeyArn': 'arn:aws:kms:us-west-2:{Account}:key/{arn Id}',
 'S3BucketName': 'communications',
 'S3Prefix': 'media/private/emails',
 'S3Path': 'media/private/emails/{some id}.zip',
 'EstimatedProgress': 0,
 'State': 'FAILED',
 'ErrorInfo': 'Unable to assume role "arn:aws:iam::{Account}:role/ApiReadRole"',
 'StartTime': datetime.datetime(2022, 12, 2, 8, 48, 9, 642000, tzinfo=tzlocal()),
 'EndTime': datetime.datetime(2022, 12, 2, 8, 48, 11, 121000, tzinfo=tzlocal()),
 'ResponseMetadata': {'RequestId': '{some id}',
  'HTTPStatusCode': 200,
  'HTTPHeaders': {'x-amzn-requestid': '{some id}',
   'content-type': 'application/x-amz-json-1.1',
   'content-length': '616',
   'date': 'Fri, 02 Dec 2022 06:48:53 GMT'},
  'RetryAttempts': 0}
}
amazon-web-services amazon-iam amazon-workmail
1个回答
0
投票

我按照此文档并设法执行了导出作业。

https://docs.aws.amazon.com/workmail/latest/adminguide/mail-export.html

但是,我也遇到了一个问题,我无法成功运行该作业。

原因是我没有在 KMS 密钥上设置密钥策略,该密钥是加密 s3 存储桶上导出的内容所需的。 配置密钥策略后,作业就成功运行了。

一定要设置关键策略。 下面的文档中也提到了 KMS 密钥的这种行为:

https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html

任何 AWS 委托人(包括账户根用户或密钥创建者)都没有对 KMS 密钥的任何权限,除非在密钥策略、IAM 策略或授权中明确允许且从未拒绝。

© www.soinside.com 2019 - 2024. All rights reserved.