Date post: | 31-Jan-2023 |
Category: |
Documents |
Upload: | khangminh22 |
View: | 0 times |
Download: | 0 times |
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
李萌 AWS解决方案架构师
AWS IAM权限策略管理
2019/12/31
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
AWS Identity and Access Management (IAM)
策略 临时权限 角色AWSIAM服务
MFA令牌
…
AWS Identity and Access Management (IAM) 是一种 Web 服务,可以帮助您安全地控制对 Amazon Web Services (AWS) 资源的访问。您可以使用 IAM 控制对哪个用户进行身份验证 (登录) 和授权 (具有权限) 以使用资源。
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
AWS IAM策略概览
JSON格式的文档规范
包含指定的语句(权限): • AWS IAM主体可以采取什
么行动• 可以访问哪些资源
策略指定允许用户和系统在哪些资源上执行的AWS服务操作
注意: 默认情况下是Access is denied{ "Statement":[{
"Effect":"effect",
"Principal":"principal",
"Action":"action",
"Resource":"arn",
"Condition":{
"condition":{
"key":"value" }
}
}
]
}
Principal Action Resource Condition
支持多段statement语句,每段语句都包含PARC
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Principal – 举例• 允许或拒绝访问资源的实体
• 通过ARN来表示 ( Amazon Resource Name )<!-- Everyone (anonymous users) -->
"Principal":"AWS":"*.*"
<!-- Specific account or accounts -->
"Principal":{"AWS":"arn:aws:iam::123456789012:root" }
"Principal":{"AWS":"123456789012"}
<!-- Individual IAM user -->
"Principal":"AWS":"arn:aws:iam::123456789012:user/username"
<!-- Federated user (using web identity federation) -->
"Principal":{"Federated":"www.amazon.com"}
"Principal":{"Federated":"graph.facebook.com"}
"Principal":{"Federated":"accounts.google.com"}
<!-- Specific role -->
"Principal":{"AWS":"arn:aws:iam::123456789012:role/rolename"}
<!-- Specific service -->
"Principal":{"Service":"ec2.amazonaws.com"}
用你的AWS账号ID替换
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Action – 举例
• 描述应允许或拒绝的访问类型
• 您可以在文档中找到这些内容,或使用策略编辑器获取下拉列表
• 语句必须包含Action或NotAction元素
<!-- EC2 action -->
"Action":"ec2:StartInstances"
<!-- IAM action -->
"Action":"iam:ChangePassword"
<!– Amazon S3 action -->
"Action":"s3:GetObject"
<!-- Specify multiple values for the Action element-->
"Action":["sqs:SendMessage","sqs:ReceiveMessage"]
<-- Wildcards (* or ?) in the action name. Below covers create/delete/list/update-->
"Action":"iam:*AccessKey*"
Action的四种访问级别:• List – 查看资源列表• Read – 读取资源中的内容• Write – 创建,删除或修改资源• Permissions – 授予或修改资源权限
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Resource – 举例
• 正在请求的一个或多个对象
• 语句必须包含Resource或NotResource元素
<-- S3 Bucket -->
"Resource":"arn:aws:s3:::my_corporate_bucket/*"
<-- Amazon SQS queue-->
"Resource":"arn:aws:sqs:us-west-2:123456789012:queue1"
<-- Multiple Amazon DynamoDB tables -->
"Resource":["arn:aws:dynamodb:us-west-2:123456789012:table/books_table",
"arn:aws:dynamodb:us-west-2:123456789012:table/magazines_table"]
<-- All EC2 instances for an account in a region -->
"Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*"
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Condition - 举例
"Condition" : {
"DateGreaterThan" : {"aws:CurrentTime" : "2016-11-30T11:00:00Z"},
"DateLessThan": {"aws:CurrentTime" : "2016-11-30T15:00:00Z"},
"IpAddress" : {"aws:SourceIp" : ["192.0.2.0/24", "203.0.113.0/24"]}
}
• 允许用户在以下条件下访问资源:• The time is after 11:00 A.M. on 11/30/2016 AND• The time is before 3:00 P.M. on 11/30/2016 AND• The request comes from an IP address in the 192.0.2.0 /24 OR
203.0.113.0 /24 range
必须满足所有条件才能使语句评估为TRUE.
AND
OR
如果您想限制对时间范围和IP地址范围的访问,该怎么办?
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
访问控制策略的类型
基于IAM策略 基于资源的策略
绑定在IAM user, group, role上.
Managed policies
Inline polices
绑定在resource上. Amazon S3 buckets
Amazon Glacier vaults
Amazon SNS topics
Amazon SQS queues
Amazon VPC Endpoint Policy
• 策略生成器:
• https://awspolicygen.s3.cn-north-1.amazonaws.com.cn/policygen.html
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
AWS IAM策略的逻辑和顺序,如下图
AWS IAM策略的执行过程
Yes
有允许吗?No
Yes
No
1)用户权限策略检查——检查该IAM实体是否被授予权限2)资源权限策略检查——检查存储桶所有者是否已授予权限(1,2是OR的关系)3)具体策略检查——查找策略中明确的“允许”
策略执行:任何策略中的明确拒绝均会覆盖所有允许条件
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
{"Version": "2012-10-17","Statement": [
{"Effect": "Allow","Action": [
"ec2:Describe*","ec2:GetConsole*"
],"Resource": "*"
},{
"Sid": "THISLIMITSACCESSTOOWNINSTANCES","Effect": "Allow","Action": [
"ec2:RebootInstances","ec2:StartInstances","ec2:StopInstances","ec2:TerminateInstances"
],"Resource": "arn:aws:ec2:*:123456789012:instance/*","Condition": {
"StringEquals": {"ec2:ResourceTag/OwnerTag": "${aws:username}"
}}
}]
}}
允许从EC2控制台查看所有内容
仅在此标记条件为真时才允许
在此处指定键值(使用标签)和值(变量)
锁定对Amazon EC2实例的访问
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
利用标签(Tag)功能实现ABAC(Attribute Based Access
Control)
IAM user: Anders
Project=Blue
i-a4321b12Project=Green
i-a1234b12
i-a4321b12
{"Version": "2012-10-17","Statement": [{
"Effect": "Allow","Action": "ec2:*","Resource": "*","Condition": {
"StringEquals": {"ec2:ResourceTag/Project" : "Blue"
}}
}]
}
Anders 的IAM策略里赋予他访问所有带有Project=Blue 标签的EC2实例的所有API操作
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Top 11 AWS IAM 最佳实践
0. Users – 为每个用户创建单独的IAM User.
1. Permissions –最小权限原则.
2. Groups –利用IAM Group简化用户组权限管理.
3. Conditions –利用Conditions实现精细化权限管控.
4. Auditing –开启 AWS CloudTrail 以记录所有AWS API访问.
5. Password –配置强密码策略.
6. Rotate –定期轮换密钥.
7. MFA – 为高权限用户开启 MFA 认证.
8. Sharing –利用IAM Role共享权限.
9. Roles –利用 IAM roles赋予和控制某服务访问其他服务的权限.
10. Root –根用户禁止用于日常运维.
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营© 2017 Amazon Web Services, Inc. 或其附属公司。保留所有权利。
安全/资源边界 API 限制/节流 计费分离
AWS 账号
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
单账号,通过 AWS IAM 和 Amazon VPC 隔离
“灰色”边界
逐渐变得复杂和混乱
资源难以追踪
用户之间可能互相影响
所有资源
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营© 2017 Amazon Web Services, Inc. 或其附属公司。保留所有权利。
我应该创建什么账号?
安全 共享服务 计费
开发 生产沙箱 其他预生产
组织账号
日志存档 网络
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营© 2017 Amazon Web Services, Inc. 或其附属公司。保留所有权利。
多 账 号 设 计
开发人员沙箱
开发 预生产
团队/群组账号
安全
核心账号
AWS Organizations
共享服务
网络
日志存档 生产团队共享
服务
网络路径
开发人员账号 数据中心
组织:账号管理
日志存档:安全日志
安全:安全工具、AWS Config 规则
共享服务:目录、限值监控
网络:AWS Direct Connect
开发沙箱:实验、学习
Dev:开发
Pre-Prod:Staging
Prod: 生产
团队共享服务: 团队共享服务、数据湖
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
AWS Landing Zone解决方案
一种易于部署的解决方案,可自动启用如下设置
AWS 多账户新环境
基于 AWS 最佳实践和建议
初始安全
和管理控制
账号分配器 自动部署
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
AWS Landing Zone架构AWS Organizations
共享服务 日志 安全
Parameter
store
Organizations 账号
• 新账号创建/准备
• 账号登录管理(SSO)
共享服务账号
• Active Directory
• 日志分析
日志账号
• 安全日志存储
安全账号
• 审计、安全管控
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
使用案例 1 - 用户通过SSO访问 AWS 账户和资源
用户使用自己现有的企业凭证登录 AWS 账户:
使用 AWS IAM 配置对您的各个 AWS 账户的联合 SSO 访问
AWS SSO 帮您在 AWS 范围内创建本地用户和群体,连接至
现有用户目录,设置权限并集中管理用户对多个 AWS 账户和
应用程序的访问。
使用 IAM 策略在您的 AWS 账户中定义精细用户权限
AWS Organizations 帮您管理多个 AWS 账户对 AWS 服务 API 的使用
情况
AWS中国区用户可采用SAML集成与企业AD域进行集成,实现AD账号登
录AWS控制台。
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
使用案例 2 - 应用程序访问数据和资源
避免在源代码中嵌入安全凭证
您可以使用 IAM 角色替代:
• IAM 角色与 Amazon EC2/Amazon EC2 容器以及
AWS Lambda 函数配合使用
AWS Secrets Manager 使您能够轻松地在整个生命周期轮换、管
理和检索数据库安全凭证、API 密钥和其他密钥。
您可以使用 IAM 策略定义对 AWS 资源的精细访问权限
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
案例2延伸: 应用程序的用户直接访问AWS资源
1
Corporate SSO
4
58
Client
Application
Amazon RDS Mysql
AWS IAM STS
1. Client 访问应用登录页面2. Client浏览器重定向到企业SSO登录页, 用户输入企业用户名密码登录;3. 登录成功后,SSO返回token给到应用程序;4. 应用程序向Amazon RDS数据库查询用户权限;5. 数据库返回;6. 应用调用AWS IAM STS API 获取AWS临时凭证;7. STS 返回临时凭证给应用;8. 应用返回token和AWS临时凭证给Client.
需求:
• 不同用户不同权限• 与企业现有SSO集成• 客户端直接与
S3/DynamoDB交互以提升性能
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
使用案例 3 - 用户访问您自己的应用程序
利用 Amazon Cognito,使用户携带来自于社会和企业身份供应
商的自身身份
Facebook、Google 及 Amazon 内置集成
与支持 OAuth 2.0、SAML 2.0 以及 OpenID
Connect (OIDC) 的企业身份供应商相集成
AWS中国区用户可利用AWS Cognito Identity Pool
与微信、微博等集成实现OpenID认证登录。
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
[email protected] ID: 111122223333
ddb-role
{ "Statement": [{ "Action":
["dynamodb:GetItem","dynamodb:BatchGetItem","dynamodb:DescribeTable",
"dynamodb:ListTables"],"Effect": "Allow","Resource": "*“
}]}
[email protected] ID: 123456789012
利用临时权限调用AWS APIs
{ "Statement": [{"Effect":"Allow","Principal":{"AWS":"123456789012"},"Action":"sts:AssumeRole"
}]}
IAM user: Anders
STS
获取到对应ddb-role权限的临时访问密钥
ddb-role的Policy里允许来自[email protected]
(123456789012)账号的AssumeRole操作
ddb-role的IAM策略
用Anders用户的 access
keys做认证
{ "Statement": [{"Effect": "Allow","Action": "sts:AssumeRole","Resource":
"arn:aws:iam::111122223333:role/ddb-role"}]}
Anders的IAM User权限是允许他 assume account B
中的ddb-role 这个角色
使用案例 4 – 跨账号访问AWS资源
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
其他资源
• AWS IAM home page: http://aws.amazon.com/iam
• Documentation
• http://aws.amazon.com/documentation/iam/
• http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ec2-api-permissions.html
• AWS Security Blog
• https://aws.amazon.com/blogs/security/demystifying-ec2-resource-level-permissions/
• https://aws.amazon.com/blogs/security/granting-users-permission-to-work-in-the-amazon-ec2-console/
• https://aws.amazon.com/blogs/security/how-to-create-a-limited-iam-administrator-by-using-managed-policies/
• IAM forum: https://forums.aws.amazon.com/forum.jspa?forumID=76
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
我们希望您喜欢今天的内容!也请帮助我们完成反馈问卷。
欲获取关于 AWS 的更多信息和技术内容,可以通过以下方式找到我们:
感谢参加 AWS 在线研讨会
微信订阅号:AWS 云计算(awschina)
新浪微博:https://www.weibo.com/amazonaws/
领英:https://www.linkedin.com/company/aws-china/
知乎:https://www.zhihu.com/org/aws-54/activities/
视频中心:http://aws.amazon.bokecc.com/
更多线上活动:https://aws.amazon.com/cn/about-aws/events/webinar/
微信服务号:AWS Builder 俱乐部(amazonaws)
抖音:亚马逊云计算(抖音号:266052872)