0Pricing
Cloud & IT Cert Prep · 课时

最小权限原则

在实际场景中应用最小权限原则,并合理使用 AWS 管理型策略与内联策略。

最小权限原则 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。

什么是最低权限?

最低权限意味着只向每个身份授予其真正需要的权限,不多授予任何额外权限。如果凭证泄露,造成的损害也会受到限制。🛡️

从默认拒绝开始

AWS 让最低权限原则更容易实施:新用户或角色一开始拥有零权限。您只需添加确实需要的权限,而不是先授予全部权限再逐项收回。

权限过度授予:常见错误

最典型的错误是因为方便快捷而授予 AdministratorAccess。这样一来,一个错误就可能删除您的数据。请改为将权限限制到特定操作和资源。

# AVOID: wildcard permissions
{
  'Effect': 'Allow',
  'Action': '*',
  'Resource': '*'
}

# PREFER: scoped permissions
{
  'Effect': 'Allow',
  'Action': ['dynamodb:GetItem', 'dynamodb:Query'],
  'Resource': 'arn:aws:dynamodb:us-east-1:123456789:table/Orders'
}

AWS 管理的 policy 与客户管理的 policy

AWS 管理的 policy使用方便,但通常范围过大。客户管理的 policy允许您精确指定应用实际使用的存储桶或表。

# Create a scoped customer-managed policy
aws iam create-policy \
  --policy-name LambdaOrdersReader \
  --policy-document file://orders-reader-policy.json

IAM Access Analyzer

IAM Access Analyzer会监控资源是否暴露给账户外部的主体。它甚至可以通过读取某个身份实际使用过的权限,为您生成范围更精确的 policy。

# Enable IAM Access Analyzer for the account
aws accessanalyzer create-analyzer \
  --analyzer-name MyAccountAnalyzer \
  --type ACCOUNT

使用条件收紧权限

即使必须允许某项操作,条件也可以降低风险:要求 MFA,将访问限制到办公室 IP,或限制用户只能访问自己的文件夹。✨

# Allow users to manage only their own folder in S3
{
  'Effect': 'Allow',
  'Action': ['s3:GetObject', 's3:PutObject'],
  'Resource': 'arn:aws:s3:::shared-bucket/${aws:username}/*'
}

将权限边界作为防护措施

当您允许团队管理自己的 IAM 时,权限边界会限制其角色可以执行的操作。团队可以自由构建,但永远不能超出您设定的范围。

使用会话 policy 限时访问

代入角色时,您可以传入一条会话 policy,进一步缩小该角色在本次会话中的权限范围。这非常适合为一个流水线提供刚好够用的访问权限。

# Assume a role with a restrictive session policy
aws sts assume-role \
  --role-arn arn:aws:iam::123456789012:role/DeployRole \
  --role-session-name deploy-session \
  --policy '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":"lambda:UpdateFunctionCode","Resource":"arn:aws:lambda:us-east-1:123456789012:function:MyApp"}]}'

基于标签的访问控制(ABAC)

ABAC通过匹配标签授予访问权限,而不是逐一列出所有资源。例如,可以允许某个角色只停止带有其所属团队标签的 EC2 实例。

{
  'Effect': 'Allow',
  'Action': 'ec2:StopInstances',
  'Resource': '*',
  'Condition': {
    'StringEquals': {
      'ec2:ResourceTag/Team': '${aws:PrincipalTag/Team}'
    }
  }
}

检查未使用的权限

AWS 会跟踪每项权限最后一次使用的时间。Last Accessed data可以揭示连续 90 多天未使用的权限,这些权限很适合删除。

# Get service last-accessed data for a role
aws iam generate-service-last-accessed-details \
  --arn arn:aws:iam::123456789012:role/MyLambdaRole

# Retrieve the report (use the JobId from above)
aws iam get-service-last-accessed-details --job-id <JobId>

数据访问的最低权限

对数据也要应用最低权限原则:将用户限制在自己的 S3 文件夹中,按用户 ID 限制 DynamoDB 访问,并为每个应用提供独立的数据库登录凭证。

快速检查

测试您对本课 AWS Solutions Architect(SAA-C03)概念的理解。

课程回顾

快速回顾:最低权限意味着只授予最少权限,Access Analyzer 可以找出未使用的权限,条件和边界则能进一步收紧权限。接下来:IAM 最佳实践与 MFA。

常见问题解答

「最小权限原则」课时是免费的吗?

是的 — 「最小权限原则」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。

「最小权限原则」这节课中我会学到什么?

在实际场景中应用最小权限原则,并合理使用 AWS 管理型策略与内联策略。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cloud & IT Cert Prep 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「最小权限原则」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?

能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. IAM 用户与组
  2. IAM 角色与策略
  3. 最小权限原则
  4. IAM 最佳实践与 MFA
← 返回 Cloud & IT Cert Prep