一般示例 - 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 用户、组或角色的详细信息页面上的 Access Advisor (访问顾问) 选项卡显示该实体已使用的 AWS 服务,并按最近的访问顺序进行排序。

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

    • 默认情况下, AWS STS 是一项全球服务,必须包含在全局服务排除列表中。但是,您可以 AWS STS 允许使用区域终端节点而不是单个全球终端节点。如果执行此操作,则可以从以下示例 SCP 中的全球服务豁免列表中删除 STS。有关更多信息,请参阅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": { "StringNotLike": { "aws:PrincipalARN":"arn:aws:iam::*:role/name-of-admin-role-to-allow" } } } ] }

    要求 MFA 执行 API 操作

    使用如下所示的 SCP,要求先启用多重身份验证(MFA),之后 IAM 用户和角色才能执行操作。在此示例中,操作是停止 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" ] } } } ] }

    阻止成员账户退出组织

    以下策略阻止使用 LeaveOrganization API 操作,以便成员账户的管理员无法从组织中删除其账户。

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