文章目录
- 专题总览
- 1. Organizational Units (OU) - Examples
- 2. AWS Organizations
- 3. SCP Hierarchy(Service Control Policies 层次结构)
- 4. Amazon EventBridge - 安全性
- 5. IAM 权限边界
- 6. IAM 策略评估逻辑
- 7. AWS IAM 身份中心(AWS Single Sign-On 的后继者)
- 8. Microsoft Active Directory(AD)
- 9. AWS Directory Services
- 10. IAM 身份中心 - Active Directory 设置
- 11. AWS Control Tower
专题总览
专题内容总览和系列博客目录
https://blog.csdn.net/weixin_40815218/article/details/135590291
辅助资料(PDF)
https://download.csdn.net/download/weixin_40815218/88741566
1. Organizational Units (OU) - Examples
2. AWS Organizations
-
全球服务
-
允许管理多个 AWS 账户
-
主账户是管理账户
-
其他账户是成员账户
-
成员账户只能属于一个组织
-
所有账户可以进行统一计费 - 单一付款方式
-
聚合使用量(EC2、S3等)的定价优惠
-
跨账户共享保留实例和储蓄计划折扣
-
提供 API 以自动化创建 AWS 账户
-
优势
- 多账户与一个账户多 VPC
- 使用标签规范进行计费
- 在所有账户上启用 CloudTrail,将日志发送到中央S3账户
- 将CloudWatch日志发送到中央日志账户
- 为管理目的建立跨账户角色
-
安全性:服务控制策略(SCP)
- 将 IAM 策略应用于OU或账户以限制用户和角色
- 不适用于管理账户(具有完整管理员权限)
- 必须有明确的允许(默认不允许任何操作 - 与 IAM 类似)
3. SCP Hierarchy(Service Control Policies 层次结构)
- Management Account
- Any Access
- Except Athena (From itself)
- Account A
- Any Access
- Except Redshift(From Prod OU)
- Account B
- Any Access
- Except Redshift (From Prod OU
- Except Lambda (From HR OU)
- Account C
- Any Access
- Except Redshift (From Prod OU)
3.1 SCP 示例
黑名单和白名单策略
# 黑名单
{
"Version": "2012-10-17"
"Statement": [
{
"Sid": "AllowsAllActions",
"Effect": "Allow",
"Action": "*",
"Resource": "*"
],
{
"Sid": "DenyDynamoDB",
"Effect": "Deny",
"Action": "dynamodb:*",
"Resource": "*"
}
]
}
# 白名单
{
"Version": "2012-10-17"
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:*",
"cloudwatch:*"
],
"Resource": "*"
}
]
}
IAM Conditions
aws:SourceIp 限制 API 调用的客户端IP
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"192.0.2.0/24",
"203.0.113.0/24"
]
}
}
}
]
}
aws:RequestedRegion 限制 API 调用的区域
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": [
"ec2:*",
"rds:*",
"dynamodb: *"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws: RequestedRegion": [
"eu-central-1",
"eu-west-1"
]
}
}
}
]
}
ec2:ResourceTag 基于标签进行限制
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:startInstances",
"ec2:StopInstances"
],
"Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Project": "DataAnalytics",
"aws:PrincipalTag/Department": "Data"
}
}
}
]
}
aws:MultiFactorAuthPresent 强制使用多重身份验证
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:*",
"Resource": "*"
},
{
"Effect": "Deny",
"Action": [
"ec2:StopInstances",
"ec2:TerminateInstances"
],
"Resource": "*",
"Condition": {
"BoolIfExists": {
"aws :MultiFactorAuthPresent": false
}
}
}
]
}
3.2 针对 S3 的 IAM
- s3:ListBucket 权限适用于 arn:aws:s3:::test
- => 桶级权限
- s3:GetObject, s3:PutObject, s3:DeleteObject 权限适用于 arn:awn:s3:::test**/***
- => 对象级权限
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": "arn:aws:s3:::test"
},
{
"Effect": "Allow",
"Action": ["s3:PutObject", "s3:GetObiect", "s3:DeleteObject"],
"Resource": "arn:aws:s3:::test/*"
}
]
}
Resource Policies & aws:PrincipalOrgID
- aws:PrincipalOrgID 可用于任何资源策略,以限制对 AWS 组织成员账户的访问
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:PutObject", "s3:GetObject"],
"Resource": "arn:aws:s3:::2022-financial-data/*",
"Condition": {
"StringEquals": {
"aws:Principal0rgID": [
"o-yyyyyyyyy"
]
}
}
}
]
}
3.3 IAM Roles vs Resource-Based Policies
- 跨账户:
- 将基于资源的策略附加到资源(例如 S3 存储桶策略)
- 或 使用角色作为代理
- 当您扮演一个角色(用户、应用程序或服务)时,您放弃自己的原始权限并获得分配给该角色的权限
- 使用基于资源的策略时,主体不必放弃其权限
- 示例:账户A中的用户需要扫描账户A中的 DynamoDB 表,并将其导出到账户B的S3存储桶中。
- 受支持的服务:Amazon S3 buckets、SNS topics、SQS queues等…
4. Amazon EventBridge - 安全性
在使用 EventBridge 时,当规则触发时,它需要对其指定的目标资源具有适当的权限。这可以通过两种方式来实现:
- 基于资源的策略:Lambda、SNS、SQS、CloudWatch Logs、API Gateway…
- IAM角色:Kinesis stream、Systems Manager Run Command、ECS task…
5. IAM 权限边界
-
IAM 权限边界 适用于用户和角色(不适用于组)
-
使用 托管策略 设置 IAM 实体可以获得的最大权限的高级功能
-
可以确保 IAM 实体仅具有符合其职责的最小权限
-
可以与 AWS Organizations SCP 结合使用
用例
- 在其权限边界内委派非管理员的责任,例如创建新的 IAM 用户
- 允许开发人员自行分配策略和管理自己的权限,同时确保他们无法“提升”自己的特权(=成为管理员)
- 用于限制一个特定用户(而不是使用组织和 SCP 限制整个帐户)
6. IAM 策略评估逻辑
IAM 策略示例
- 是否可以执行sqs:CreateQueue操作?
- 是否可以执行sqs:DeleteQueue操作?
- 是否可以执行ec2:DescribeInstances操作?
7. AWS IAM 身份中心(AWS Single Sign-On 的后继者)
- 一次登录(单点登录)适用于以下所有内容
- AWS 组织中的所有 AWS 帐户
- 业务云应用程序(例如 Salesforce, Box, Microsoft 365…)
- 支持 SAML 2.0 的应用程序
- EC2 Windows实例
- 身份提供者
- IAM 身份中心中的内置身份存储
- 第三方:Active Directory(AD),OneLogin,Okta…
AWS IAM 身份中心 - 登录流程
AWS IAM 身份中心
AWS IAM 身份中心 - 细粒度权限和分配
- 多账户权限
- 在 AWS 组织中管理访问权限
- 权限集合 - 一个或多个 IAM 策略的集合,分配给用户和组以定义 AWS 访问权限
- 应用程序分配
- 对许多 SAML 2.0 业务应用程序(Salesforce, Box, Microsoft 365 等)的 SSO 访问
- 提供所需的 URL,证书和元数据
- 基于属性的访问控制(ABAC)
- 基于用户属性的细粒度权限
- 示例:成本中心,职位,位置…
- 用例:定义一次权限,然后通过更改属性修改 AWS 访问权限
8. Microsoft Active Directory(AD)
- 在具有 AD 域服务的任何 Windows 服务器上找到
- 对象数据库:用户帐户,计算机,打印机,文件共享,安全组
- 集中的安全管理,创建帐户,分配权限
- 对象组织成树状结构
- 一组树构成一个域
9. AWS Directory Services
- AWS 托管的 Microsoft AD
- 在AWS中创建自己的 AD,本地管理用户,支持 MFA
- 与本地 AD 建立“信任”连接
- AD连接器
- 目录网关(代理),用于重定向到本地AD,支持 MFA
- 在本地 AD 上管理用户
- 简单 AD
- 在 AWS 上 AD 兼容的托管目录
- 无法加入本地 AD
10. IAM 身份中心 - Active Directory 设置
- 连接到 AWS 托管的 Microsoft AD(目录服务)
- 集成开箱即用
- 连接到自管理目录
- 使用 AWS 托管的 Microsoft AD 创建双向信任关系
- 创建 AD 连接器
11. AWS Control Tower
- 根据最佳实践方式,设置和管理安全合规的多账户 AWS 环境的简单方法
- AWS控制塔使用 AWS 组织来创建账户
- 优势:
- 点击几下自动设置环境
- 使用守护栏自动管理持续策略
- 检测策略违规并修复
- 通过交互式仪表板监视合规性
AWS Control Tower - Guardrails
- 为您的 Control Tower环境(AWS 帐户)提供持续的治理
- 预防性 Guardrail - 使用 SCP(例如,限制所有帐户的区域)
- 探测性 Guardrail - 使用 AWS Config(例如,识别未标记的资源)