我尝试使用kubectl get sa default
命令,但仅看到一些非常基本的值。在k8s中查看与特定服务帐户相关联的权限/角色的命令是什么?
答案 0 :(得分:2)
以下命令可能会有所帮助。它基本上获得RoleBindings和ClusterRoleBindings,其中.subjects [0]是ServiceAccount的名称。
$ kubectl get rolebinding,clusterrolebinding --all-namespaces -o jsonpath='{range .items[?(@.subjects[0].name=="SERVICE_ACCOUNT_NAME")]}[{.roleRef.kind},{.roleRef.name}]{end}'
注意:它不会在主题字段中列出包含多个对象的RoleBindings / ClusterRoleBindings
例如,如果将weave-net部署为网络插件,则可以获取weave-net ServiceAccount使用的Role和ClusterRole:
$ kubectl get rolebinding,clusterrolebinding --all-namespaces -o jsonpath='{range .items[?(@.subjects[0].name=="weave-net")]}[{.roleRef.kind},{.roleRef.name}]{end}'
[Role,weave-net][ClusterRole,weave-net]
希望这会有所帮助。
答案 1 :(得分:1)
在Kubernetes中,使用ClusterRoleBinding对象将服务帐户映射到特权(集群级别或命名空间级别)。您需要先查找RoleBinding或ClusterRoleBinding对象,然后再查找Role或ClusterRole对象,以查看其在集群中具有哪些特权。
答案 2 :(得分:1)
using Microsoft.Azure.Functions.Extensions.DependencyInjection;
using Microsoft.Azure.WebJobs.Host.Bindings;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using System;
[assembly: FunctionsStartup(typeof(MyDurableFunction.Startup))]
namespace MyDurableFunction
{
public class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
var executioncontextoptions = builder.Services.BuildServiceProvider()
.GetService<IOptions<ExecutionContextOptions>>().Value;
var currentDirectory = executioncontextoptions.AppDirectory;
var environment = Environment.GetEnvironmentVariable("AZURE_FUNCTIONS_ENVIRONMENT");
var config = new ConfigurationBuilder()
.SetBasePath(currentDirectory)
.AddJsonFile($"settings.{environment}.json", optional: false, reloadOnChange: false)
.AddEnvironmentVariables()
.Build();
builder.Services.AddSingleton<IMyBusinessService1>(sp =>
{
var secretFromAppSettings = config["secretKey"];
var passwordFromAppSettings = config["secretPassword"];
return new MyBusinessService1(secretFromAppSettings, passwordFromAppSettings);
});
builder.Services.AddSingleton<IDatabaseHelper, DatabaseHelper>();
builder.Services.AddLogging();
}
}
}
您可以尝试使用此命令生成一个表以显示映射
答案 3 :(得分:0)
使用以下命令获取绑定到服务帐户Role
的{{1}}名称。
default
或kubectl get rolebinding --output=yaml
现在使用获取角色配置
kubectl get clusterrolebinding --output=yaml