【问题标题】:Cross-account IAM principal pointing to same account: no-op?指向同一账户的跨账户 IAM 委托人:无操作?
【发布时间】:2022-12-10 01:51:08
【问题描述】:

简而言之:如果我创建了一个包含跨账户 Principal 的 IAM 策略,但相关账户是我已经在其中操作的账户,这是空操作吗?


我的理解(来自here)是像下面这样的 IAM 语句可用于跨账户访问,即委托给另一个账户,允许它允许访问相关资源:

{
  Action = "kms:*"
  Effect = "Allow"
  Principal = {
    AWS = "arn:aws:iam::XYZXYZXYZXYZ:root"
  }
  Resource = "*"
}

(显然,XYZXYZXYZXYZ 是某个帐户 ID)。

但是,如果帐户 ID 不是另一个帐户怎么办? ID希望这什么都不做。 ID恐惧它授予完全访问权限。后一种选择似乎很疯狂:任何人都可以确认吗?

【问题讨论】:

    标签: amazon-web-services identity-management


    【解决方案1】:

    我假设这是在 KMS 密钥策略中,否则指定委托人是没有意义的/无论如何都是不允许的。

    因此我引用https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html

    以下默认密钥策略声明至关重要。

    • 它为拥有 KMS 密钥的 AWS 账户提供了对 KMS 密钥的完全访问权限。
      与其他 AWS 资源策略不同,AWS KMS 密钥策略不会自动向账户或其任何用户授予权限。要向帐户管理员授予权限,密钥策略必须包含提供此权限的显式声明,如下所示。
    • 除了密钥策略外,它还允许账户使用 IAM 策略来允许访问 KMS 密钥。
      如果没有此权限,则允许访问密钥的 IAM 策略无效,但拒绝访问密钥的 IAM 策略仍然有效。
    • 通过向帐户管理员(包括无法删除的帐户根用户)授予访问控制权限,降低了密钥变得难以管理的风险。

    帐户内的委托人不会立即访问密钥,但只需向他们添加策略即可授予他们访问权限。 KMS 是为数不多的服务之一两个都资源和身份策略需要授予访问权限。

    【讨论】:

      猜你喜欢
      • 2019-04-17
      • 2017-03-16
      • 1970-01-01
      • 1970-01-01
      • 2015-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-08
      相关资源
      最近更新 更多