如何允许单个 ARN 放弃我的拒绝 SCP 政策?

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

这是我第一次使用 AWS SCP。大家好!

我正在设计一个 AWS 测试 SCP 策略,我很想知道为什么这不起作用。目标是拒绝除此 ARN arn:aws:sts::1111111:assumed-role/myawsrole/[email protected] 之外的所有网络修改。我目前正在测试此 SCP,暂时仅评估此 ARN。但当 arn:aws:sts::1111111:assumed-role/myawsrole/[email protected] 尝试创建 VPC 或 SCP 中列出的任何其他操作时,我仍然收到隐式拒绝错误消息。我检查了 cloudtrail 日志,我在 ArnNotLike 运算符中使用的 ARN 应该可以工作。任何指导都会有帮助!

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "MyCompanyNetworkPolicy",
            "Effect": "Deny",
            "Action": [
                "ec2:CreateInternetGateway",
                "ec2:AttachInternetGateway",
                "ec2:CreateTransitGateway",
                "ec2:CreateTransitGatewayPeeringAttachment",
                "ec2:CreateTransitGatewayRoute",
                "ec2:CreateTransitGatewayRouteTable",
                "ec2:CreateTransitGatewayVpcAttachment",
                "ec2:CreateVpc",
                "ec2:CreateVpcPeeringConnection",
                "ec2:CreateVpnConnection",
                "ec2:CreateVpnConnectionRoute",
                "ec2:CreateVpnGateway",
                "ec2:DeleteDhcpOptions",
                "ec2:DeleteRoute",
                "ec2:DeleteRouteTable",
                "ec2:DeleteSubnet",
                "ec2:DeleteTransitGateway",
                "ec2:DeleteTransitGatewayRoute",
                "ec2:DeleteTransitGatewayRouteTable",
                "ec2:DeleteVpc",
                "ec2:ModifyTransitGateway",
                "ec2:ModifyTransitGatewayVpcAttachment",
                "ec2:ModifyVpcPeeringConnectionOptions",
                "ec2:ModifyVpcTenancy",
                "ec2:ModifyVpnConnection",
                "ec2:RejectTransitGatewayPeeringAttachment",
                "ec2:RejectTransitGatewayVpcAttachment"
            ],
            "Resource": "*",
            "Condition": {
                "ArnNotLike": {
                    "aws:PrincipalArn": [
                        "arn:aws:sts::1111111:assumed-role/myawsrole/[email protected]"
                    ]
                }
            }
        }
    ]
}

我尝试将全局运算符从 ArnNotLike 更改为 StringNotLike。我阅读了文档,看起来我的做法是正确的,除非我的政策存在疏忽。我期望 ARN arn:aws:sts::1111111:assumed-role/myawsrole/[email protected],这是登录到 AWS 账户以在该 AWS 账户中创建 VPC 的用户。

json amazon-web-services scp identity-management
1个回答
0
投票

查看 Amazon EC2 的操作、资源和条件键 - 服务授权参考

它提供了所有与 EC2 相关的 API 调用的列表以及它们接受的条件

操作表的

Condition 键列包含您可以在策略语句的 Condition

 元素中指定的键。有关与服务资源关联的条件键的更多信息,请参阅资源类型表的条件键列。

一些 API 调用需要很少的条件。例如,

CreateTransitGateway

仅允许标签和区域的条件。

不可能编写通过不使用的条件来限制 API 调用的策略。您列出的大多数 API 调用都不接受 ARN。

相反,您可以在指定

资源时使用 ARN:

操作表的

资源类型列指示每个操作是否支持资源级权限。如果此列没有值,您必须在策略声明的 *

 元素中指定策略应用的所有资源 (
Resource
)。如果该列包含资源类型,则您可以在具有该操作的语句中指定该类型的 ARN。

因此,您可能会更幸运地指定

NotResource

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