【问题标题】:Lambda function is throwing "You are not authorized to perform this operation" when trying to copy snapshots between regions尝试在区域之间复制快照时,Lambda 函数抛出“您无权执行此操作”
【发布时间】:2019-01-06 16:18:53
【问题描述】:

我正在尝试运行一个测试功能,以便在 AWS 的 2 个区域之间复制单个快照(将来我想自动化它)。但是当我运行测试时它会抛出一个错误

"errorType": "ClientError", "errorMessage": "调用 CopySnapshot 操作时发生错误(UnauthorizedOperation):您无权执行此操作。"

这是我的 IAM 的样子:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:*"
            ],
            "Resource": "arn:aws:logs:*:*:*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:Describe*",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateSnapshot",
                "ec2:DeleteSnapshot",
                "ec2:CreateTags",
                "ec2:ModifySnapshotAttribute",
                "ec2:ResetSnapshotAttribute"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

函数如下:

import boto3

def lambda_handler(event, context):
client = boto3.client('ec2')
client.copy_snapshot(SourceSnapshotId='snap-xxxxxxxxxxxxxxxxxxxxx',
                     SourceRegion='us-central-1',
                     DestinationRegion='eu-west-3')

【问题讨论】:

    标签: json amazon-web-services amazon-ec2 aws-lambda amazon-iam


    【解决方案1】:

    您的策略还需要授予ec2:CopySnapshot 权限。

    提示:大多数权限与其允许的命令的名称相匹配!

    【讨论】:

    • 我试过了,但没有快乐。这就是我决定粘贴原始 JSON 的原因。
    • 您的原始 JSON 没有 CopySnapshot 权限。有时(很少)IAM 权限需要时间来复制。另外,我不认为 us-central-1 是有效区域。
    • OH MY .. 就是这样 .. 错误的地区 .. 我的意思是欧盟,不是我们。但我仍然添加了 CopySnapshot。谢谢大佬!
    猜你喜欢
    • 2017-06-03
    • 2021-09-30
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多