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

如何创建AWS Policy限制用户仅操作指定Amplify项目相关资源?

解决方案:限制用户仅操作指定Amplify项目资源

报错原因

你写的Policy里,ARN使用了*stringname*这种中间通配符的写法,不符合AWS IAM的资源ARN规则——AWS仅允许在ARN的末尾使用*通配符,或在服务允许的特定位置使用,不能在ARN中间随意插入正则风格的*。

可行方案

方案1:精准匹配Amplify项目ARN格式

Amplify资源有固定的ARN结构,先找到你的Amplify项目的App ID(可在Amplify控制台项目设置中查看),然后编写Policy匹配该App下的所有资源:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "amplify:*",
            "Resource": [
                "arn:aws:amplify:*:*:apps/<你的Amplify App ID>",
                "arn:aws:amplify:*:*:apps/<你的Amplify App ID>/*"
            ]
        },
        // 若需操作Amplify关联的其他资源(如S3存储桶、CloudFront分发),添加对应规则
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "cloudfront:UpdateDistribution"
            ],
            "Resource": [
                "arn:aws:s3:::<你的Amplify存储桶名>*",
                "arn:aws:cloudfront::*:distribution/<关联的CloudFront ID>"
            ]
        }
    ]
}

方案2:使用IAM条件键限制操作范围

利用Amplify专属的amplify:AppId条件键,限制所有Amplify操作仅针对指定项目,同时可扩展其他服务的条件匹配:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "amplify:*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "amplify:AppId": "<你的Amplify App ID>"
                }
            }
        },
        // 匹配包含特定字符串的S3存储桶
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "s3:bucket": "*<项目标识字符串>*"
                }
            }
        }
    ]
}

方案3:合规使用通配符匹配资源

如果必须通过特定字符串匹配资源,需遵循AWS ARN的通配符规则:仅在ARN末尾使用*,或在服务允许的分段中使用。例如,若资源ARN的后缀包含你的项目字符串,可写成:

arn:aws:*:*:*:*<项目字符串>*

注意:不同AWS服务的ARN结构不同,需对应调整通配符位置,确保符合该服务的ARN格式要求。

额外建议

遵循IAM最小权限原则,尽量避免使用Action: "*",而是明确指定用户需要的具体操作(如amplify:UpdateEnvironment、amplify:CreateBranch),提升安全性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 00:32:44