您的身份堆栈是为两种参与者构建的。代理商是第三位。

您的身份堆栈是为两种参与者构建的。代理商是第三位。一名工程师本周将一个代理运送到生产环境。它需要调用内部 API,因此它使用工程师环境中已有的密钥。代理运行。它现在还拥有工程师拥有的所有权限。那就是......您的身份堆栈帖子是为两种演员构建的。代理商是第三位。首先出现在 DataRobot 上。

来源:DataRobot博客

您的身份堆栈是为两种参与者构建的。代理商是第三位。

工程师本周将代理运送到生产环境。它需要调用内部 API,因此它使用工程师环境中已有的密钥。代理运行。它现在还拥有工程师拥有的所有权限。

这是当今大多数代理部署的默认状态。代理没有自己的身份,因此借用了一个。它在第一天就起作用,这正是问题未被注意到的原因。非人类进程现在具有人类的完全访问权限,审核日志中的任何内容都无法区分两者。

这不是配置错误。这是结构性差距。身份和访问管理假设参与者是以下两种情况之一:一个人,或者一个具有静态权限集的长期服务帐户。两者都很稳定。两人每天都做大致相同的事情。您的控制、审核模型和配置流程都建立在这种稳定性的基础上。

代理两者都不是。它们代表人们行事,因此它们不是服务帐户。他们按照自己的时间表起起落落,所以他们不是人。它们位于您的 IAM 堆栈没有类别的间隙中,而该间隙就是凭证被借用的地方。

为什么你不能只修补这个

现有的 IAM 不能简单地吸收代理的原因是非确定性。服务帐户每次都以相同的节奏调用相同的端点。给两个代理相同的权限和相同的目标,他们可以采取不同的操作,因为每个代理都会在运行时根据其提示、上下文和调用它的输出来选择其工具链。

当您授予代理权限时,代理将实际执行的操作集是不可知的。这将设计时最小特权转变为对运行时问题的设计时答案。当演员只有在运行时才决定要做什么时,你是在提前决定演员可以做什么。

如果你本周什么都不做

解决这个问题实际上是什么样的

DataRobot 适合的地方

即将发生什么