开发者学堂课程【5分钟玩转阿里云容器服务:容器安全-如何实现 Pod 权限隔离】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1038/detail/16047
容器安全-如何实现 Pod 权限隔离
内容介绍
一、容器安全-如何实现 Pod 权限隔离
一、容器安全-如何实现 Pod 权限隔离
RRSA 的全称叫 RAM Roles for Service Accounts,中文名称叫做使用于服务账户的 RAM 角色。
通过 RC 功能,我们可以在集群内实现 pod 维度的 OpenAPI 权限隔离。
将演示如何为集群开启 RSSA 功能,以及通过一个 demo 程序向大家演示 RSSA 功能的实际工作效果。
首先我们来开启 RSSA 功能,我们可以直接在控制台上开启 RSSA 功能,只需要点击集群信息页面的启用 RSSA 功能按钮即可。可以看到原件启用层功能。
这里会有一个 RSSA OIDC 提供商 URL 以及在 RAM 的 SSO 管理页面。我们可以看到一个专属的身份提供商。
下面演示一下如何使用 RSSA 功能。
首先需要创建一个 RAM 角色,我们的应用程序将用这个 RAM 角色所使用的权限来访问云资源。
然后就是修改角色的信任策略,信任我们的服务账户。第三就是为 RAM 角色授权授予这个角色我们程序所需要的云资源访问权限。最后就是部署应用程序的配置中的这个 audience 。配置的值必须是 sts.aliyuncs.com 。
我们的示例应用程序的域名空间是 rrsa- demo-ns 所使用的服务账户是 sa-a 对应的角色是 rras- demo-ns 。我们先来创建对应的 RAM角色。这里需要配置我们程序所使用的服务账户。替换一下相应的命名空间或服务账户信息。我们来看一下对应的信任策略。完成了信任策略的配置之后,我们还需要为它授予相应的任务权限。
我们来看一下这个权限策略的内容,我们来看一下我们程序的样。首先它是下载了一个 social counter token。
我们的程序执行成功了,通过日志可以看到它可以正确的访问对应的云资源,并且拿到我们想要的结果。
作为对比,我创建了另外一个应用程序,它跟前面这个应用程序唯一的区别就是它们使用的服务账户不一样,预期我们这个使用 sa-b 这个服务账户的程序部署以后将没有任何的权限。
可以看到这位程序适应失败了,来看一下日志,日志中的报错时说他没有任何的权限
所以这个结果是符合预期的。