【问题标题】:Easiest way to list all the permissions you need in IAM for a specific task?在 IAM 中列出特定任务所需的所有权限的最简单方法是什么?
【发布时间】:2021-07-08 05:53:58
【问题描述】:

我在一个 IAM 由团队管理的组织中工作,我必须要求他们添加特定权限才能执行工作。他们永远不会让任何人完全访问特定服务,我完全同意这种立场。 我经常面临的是我必须在多次迭代中提出多个请求。因为当我得到一个权限错误并得到修复时,我面临更多的权限问题。 事先知道我需要哪些权限的最简单方法是什么?

【问题讨论】:

  • 您所需的权限与所进行的 API 调用直接相关。您是从自己的应用程序调用 AWS 吗?您只是在管理控制台中使用它吗?
  • 假设我是第一次通过管理控制台进行设置
  • 管理控制台权限是硬的。根据服务的不同,控制台通常会检索大量数据,例如计数、状态、名称、统计信息等。没有真正的方法可以预测它将进行哪些底层 API 调用。您可以尝试转到控制台,然后等待几分钟并查看 AWS CloudTrail 中的日志,其中应该列出控制台进行的 API 调用。这将使您了解所需的权限。

标签: amazon-web-services cloud amazon-iam cloud-security


【解决方案1】:

这取决于您尝试通过任何特定服务实现的目标。

要了解哪些权限,您需要了解您计划通过给定的委托人对所述资源执行哪些操作。

例如对于以下策略,您只允许给定资源(即awsexamplebucket1 s3 存储桶)使用PutObjectPutObjectAcl,并将其提供给委托人(即IAM 用户Dave)。

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "statement1",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::12345678901:user/Dave"
        },
        "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl"
        ],
        "Resource": "arn:aws:s3:::awsexamplebucket1/*"
    }
]

}

对任何服务访问(Principal、Action、Resource、Condition)都遵循 PARC 模型。

policies and permissions了解更多信息

【讨论】:

  • 在完成工作之前创建一份详尽的清单有时会很困难。假设要创建一个 PinPoint 事件流,该事件流流向 Kinesis firehose,然后将数据闪存到 S3。如果我尝试通过管理控制台设置这些,我将需要一些不容易猜到的操作的权限。例如,创建和附加角色,或列出要附加到 Lambda 的角色。滚动浏览服务中所有可能操作的列表并选择必要的操作通常会变得很麻烦。
  • 还有另一种方法。当您处于开发阶段时,请使用 aws 托管策略并尝试为您的应用程序(非产品)构建快乐流程,然后使用自定义策略寻求最少访问机制。或者,如果您的用例很常见,那么您可能会找到相应的模板。但我没有看到任何适用于所有情况的现成解决方案。
猜你喜欢
  • 2018-12-18
  • 1970-01-01
  • 1970-01-01
  • 2014-10-24
  • 1970-01-01
  • 2011-11-12
  • 1970-01-01
  • 2010-12-25
  • 1970-01-01
相关资源
最近更新 更多