一般示例 - AWS Organizations

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

一般示例

AWS 根据请求拒绝访问 AWS 区域

主题

    这会SCP拒绝访问指定区域以外的任何操作。eu-west-1用 AWS 区域 要使用的替换eu-central-1和。它为已批准的全局服务中的操作提供了豁免。此示例还说明如何豁免由两个指定管理员角色中的任何一个发出的请求。

    注意

    要将 “区域拒绝” SCP 与 “一起使用” AWS Control Tower,请参阅AWS Control Tower 控件参考指南》 AWS 区域中的 “ AWS 根据请求拒绝访问”。

    此策略使用 Deny 效果来拒绝访问不是针对两个批准区域(eu-central-1eu-west-1)之一的操作的所有请求。该NotAction元素允许您列出其操作(或单个操作)不受此限制的服务。由于全球服务具有由 us-east-1 区域物理托管的终端节点,因此必须以这种方式豁免它们。通过这种SCP结构,如果请求的服务包含在NotAction元素中,则允许向该us-east-1地区的全球服务发出请求。此示例策略拒绝对 us-east-1 区域中的服务的任何其他请求。

    注意

    此示例可能不包括所有最新的全局 AWS 服务 或操作。将服务和操作列表替换为由组织中的账户使用的全球服务。

    提示

    您可以在IAM控制台中查看上次访问的服务数据,以确定您的组织使用了哪些全球服务。IAM用户、组或角色的详细信息页面上的 “访问顾问” 选项卡显示该实体已使用的 AWS 服务,按最近的访问权限排序。

    注意事项
    • AWS KMS 并 AWS Certificate Manager 支持区域端点。但是,如果您想将它们与诸如Amazon之类的全球服务一起使用, CloudFront 则必须将其包含在以下示例中的全球服务排除列表中SCP。像 Amazon 这样的全球服务 CloudFront 通常需要访问 AWS KMS 并ACM位于同一区域,而对于全球服务,该区域是美国东部(弗吉尼亚北部)区域 (us-east-1)。

    • 默认情况下, AWS STS 是一项全球服务,必须包含在全局服务排除列表中。但是,您可以 AWS STS 允许使用区域终端节点而不是单个全球终端节点。如果您这样做,则可以在以下示例STS中从全球服务豁免列表中删除SCP。有关更多信息,请参阅AWS STS 在中管理 AWS 区域

    { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllOutsideEU", "Effect": "Deny", "NotAction": [ "a4b:*", "acm:*", "aws-marketplace-management:*", "aws-marketplace:*", "aws-portal:*", "budgets:*", "ce:*", "chime:*", "cloudfront:*", "config:*", "cur:*", "directconnect:*", "ec2:DescribeRegions", "ec2:DescribeTransitGateways", "ec2:DescribeVpnGateways", "fms:*", "globalaccelerator:*", "health:*", "iam:*", "importexport:*", "kms:*", "mobileanalytics:*", "networkmanager:*", "organizations:*", "pricing:*", "route53:*", "route53domains:*", "route53-recovery-cluster:*", "route53-recovery-control-config:*", "route53-recovery-readiness:*", "s3:GetAccountPublic*", "s3:ListAllMyBuckets", "s3:ListMultiRegionAccessPoints", "s3:PutAccountPublic*", "shield:*", "sts:*", "support:*", "trustedadvisor:*", "waf-regional:*", "waf:*", "wafv2:*", "wellarchitected:*" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": [ "eu-central-1", "eu-west-1" ] }, "ArnNotLike": { "aws:PrincipalARN": [ "arn:aws:iam::*:role/Role1AllowedToBypassThisSCP", "arn:aws:iam::*:role/Role2AllowedToBypassThisSCP" ] } } } ] }

    阻止IAM用户和角色进行某些更改

    这SCP限制了IAM用户和角色对您在组织中所有账户中创建的指定IAM角色进行更改。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessToASpecificRole", "Effect": "Deny", "Action": [ "iam:AttachRolePolicy", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePermissionsBoundary", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "iam:UpdateRole", "iam:UpdateRoleDescription" ], "Resource": [ "arn:aws:iam::*:role/name-of-role-to-deny" ] } ] }

    阻止IAM用户和角色进行指定更改,但指定的管理员角色除外

    这SCP建立在前面的示例的基础上,对管理员来说是一个例外。它可以防止受影响账户中的IAM用户和角色更改在组织中所有账户中创建的通用管理IAM角色,但使用指定角色的管理员除外

    { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessWithException", "Effect": "Deny", "Action": [ "iam:AttachRolePolicy", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePermissionsBoundary", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "iam:UpdateRole", "iam:UpdateRoleDescription" ], "Resource": [ "arn:aws:iam::*:role/name-of-role-to-deny" ], "Condition": { "ArnNotLike": { "aws:PrincipalARN":"arn:aws:iam::*:role/name-of-admin-role-to-allow" } } } ] }

    MFA需要执行API操作

    使用SCP如下所示要求在IAM用户或角色可以执行操作之前启用多因素身份验证 (MFA)。在此示例中,操作是停止 Amazon EC2 实例。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyStopAndTerminateWhenMFAIsNotPresent", "Effect": "Deny", "Action": [ "ec2:StopInstances", "ec2:TerminateInstances" ], "Resource": "*", "Condition": {"BoolIfExists": {"aws:MultiFactorAuthPresent": false}} } ] }

    阻止根用户的服务访问

    以下策略限制对成员账户中根用户指定操作的所有访问权限。如果要阻止您的账户以特定方式使用根凭证,请将您自己的操作添加到此策略中。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictEC2ForRoot", "Effect": "Deny", "Action": [ "ec2:*" ], "Resource": [ "*" ], "Condition": { "StringLike": { "aws:PrincipalArn": [ "arn:aws:iam::*:root" ] } } } ] }

    阻止成员账户退出组织

    以下政策禁止使用该LeaveOrganizationAPI操作,因此成员账户的管理员无法将其账户从组织中移除。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "organizations:LeaveOrganization" ], "Resource": "*" } ] }