You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Lambda跨AWS账户复制AMI提示KMS密钥不可访问如何解决

报错根因

跨账户AMI复制场景下,AWS底层在执行关联快照的跨账户复制时,要求参与复制流程的双方身份都具备目标加密KMS密钥的使用权限。你当前仅在源账户KMS密钥的策略中为源账户Lambda角色授予了权限,缺少对目标账户扮演角色arn:aws:iam::TTTTTTTTTT:role/CopyAmiLambdaFunction的权限授权,因此触发密钥不可访问的报错。
另外你当前的copy_ami函数逻辑存在缺陷:遍历AMI列表时第一个AMI复制任务提交后就直接return,会导致其余AMI无法完成复制。

修复步骤
    1. 修改源账户KMS密钥的密钥策略,新增对目标账户角色的权限授权,在密钥策略的Statement块中添加如下配置:
{
    "Sid": "Allow target account copy role to use KMS key",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::TTTTTTTTTT:role/CopyAmiLambdaFunction"
    },
    "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
    ],
    "Resource": "*"
}
    1. 在目标账户的CopyAmiLambdaFunction角色的IAM权限策略中,新增源账户KMS密钥的使用权限,避免跨账户调用时的权限拦截:
{
    "Effect": "Allow",
    "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
    ],
    "Resource": "arn:aws:kms:eu-west-2:SXXXXXXXXXX:key/fabc4ee4-2c73-4c8d-a93e-ca572053a124"
}
    1. 可选优化copy_ami函数逻辑,修复提前返回的问题,修改后参考代码如下:
def copy_ami(session, source_region, target_region, ami_id):
    """
    该函数用于将未加密AMI复制为使用源账户KMS密钥加密的AMI
    """
    print("开始执行AMI复制")
    copied_image_ids = []
    client = session.client('ec2', region_name = source_region)
    for i in ami_id:
        response = client.copy_image(
            Description='加密镜像',
            Encrypted=True,
            KmsKeyId='arn:aws:kms:eu-west-2:SXXXXXXXXXX:key/fabc4ee4-2c73-4c8d-a93e-ca572053a124',
            Name=f'Demo-Copy-AMI-{i.id}',
            SourceImageId=i.id,
            SourceRegion=target_region
        )
        copied_image_ids.append(response["ImageId"])
        print(f"AMI {i.id} 复制任务已提交,新AMI ID:{response['ImageId']}")
    return copied_image_ids

内容的提问来源于stack exchange,提问作者krisdigitx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:36:07