本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
资源控制策略示例
本主题中显示的资源控制策略示例 (RCPs) 仅供参考。有关数据边界的示例,请参阅中的数据外围策略示例
在使用这些示例之前
在组织RCPs中使用这些示例之前,请执行以下操作:
-
请仔细查看并根据您的独特要求RCPs进行自定义。
-
使用您使用的 AWS 服务RCPs在您的环境中彻底测试。
本节中的示例策略演示了的实现和使用RCPs。这些示例策略并不是要完全按照所示实施的官方 AWS 建议或最佳实践。您有责任仔细测试任何策略是否适合满足您环境的业务需求。除非您在策略中添加必要的例外情况,否则基于拒绝的资源控制策略可能会无意中限制或阻止您对 AWS 服务的使用。
一般示例
RCPFullAWSAccess
以下策略是 AWS 托管策略,当您启用资源控制策略(RCPs)时,它会自动附加到组织根目录、每个 OU 和组织中的每个账户。您无法分离此政策。此默认设置RCP允许所有委托人和操作访问您的资源,这意味着在您开始创建和附加之前RCPs,您的所有现有IAM权限将继续按原样运行。您无需测试此策略的效果,因为它允许您的资源继续使用现有的授权行为。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*" } ] }
跨服务混淆了副手保护
有些 AWS 服务 (呼叫服务)使用其 AWS 服务 主体从其他 AWS 服务 (称为服务)访问 AWS 资源。当一个不打算访问 AWS 资源的行为者试图利用委托人的信任与他们 AWS 服务 本来不打算访问的资源进行交互时,这被称为跨服务混乱的副手问题。有关更多信息,请参阅《IAM用户指南》中的 “混淆副手问题”
以下政策要求访问您的资源的 AWS 服务 委托人只能代表贵组织发出的请求访问您的资源。此策略仅对aws:SourceAccount
存在的请求应用控制,这样不需要使用的服务集成就aws:SourceAccount
不会受到影响。如果请求上下文中存在,aws:SourceAccount
则Null
条件的计算结果将为true
,从而强制执行aws:SourceOrgID
密钥。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RCPEnforceConfusedDeputyProtection", "Effect": "Deny", "Principal": "*", "Action": [ "s3:*", "sqs:*", "secretsmanager:*" ], "Resource": "*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceOrgID": "
my-org-id
" }, "Bool": { "aws:PrincipalIsAWSService": "true" }, "Null": { "aws:SourceAccount": "false" } } } ] }
将访问权限限制为仅访问您的资源的HTTPS连接
以下策略要求只有通过 HTTPS (TLS) 的加密连接才能访问您的资源。这可以帮助您防止潜在的攻击者操纵网络流量。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceSecureTransport", "Effect": "Deny", "Principal": "*", "Action": [ "sts:*", "s3:*", "sqs:*", "secretsmanager:*", "kms:*" ], "Resource": "*", "Condition": { "BoolIfExists": { "aws:SecureTransport": "false" } } } ] }
一致的 Amazon S3 存储桶策略控制
以下RCP包含多条语句,用于对组织中的 Amazon S3 存储桶实施一致的访问控制。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceS3TlsVersion", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "*", "Condition": { "NumericLessThan": { "s3:TlsVersion": [ "1.2" ] } } }, { "Sid": "EnforceKMSEncryption", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "*", "Condition": { "Null": { "s3:x-amz-server-side-encryption-aws-kms-key-id": "true" } } } ] }
-
语句 ID
EnforceS3TlsVersion
— 要求最低TLS版本为 1.2 才能访问 S3 存储桶。 -
语句 ID
EnforceKMSEncryption
— 要求在服务器端使用KMS密钥对对象进行加密。