O que é Runasuser no ambiente Kubernetes?
O RunasUser é um dos campos de contexto de segurança especificados no arquivo de configuração que especifica o ID do usuário para fornecer os privilégios de segurança para um determinado contêiner ou pod. O valor do campo Runasuser determina que todos os processos no contêiner serão executados com o ID do RuNasUser especificado.
O contexto de segurança é usado para definir as configurações de controle de acesso ou definir os privilégios do usuário para um determinado contêiner ou uma vagem. As principais configurações do contexto de segurança incluem ID de usuário, ID do grupo primário, ID do grupo suplementar, Seccomp, Apparmor, Recursos de Linex, etc. A configuração de contexto de segurança não se limita a essas coisas, há muito mais configurações incluídas.
No entanto, neste artigo, pretendemos orientá -lo sobre como definir os privilégios de segurança para um determinado usuário, para que o processo possa ser executado usando o ID desse usuário em vez do usuário administrador. Então, vamos para a próxima seção para verificar para aprender como definir a configuração de contexto de segurança para um contêiner ou uma cápsula.
Pré -requisitos
Antes de começar, verifique se o seu sistema atende às necessidades pré -requisitos para que você não acabe com erros enquanto usa Kubernetes como usuário geral. A lista dos pré -requisitos é dada abaixo:
Se você tiver todas essas ferramentas instaladas em seu sistema, estará pronto para usar o ambiente Kubernetes como usuário geral.
Especifique o contexto de segurança de Runasuser para o ambiente Kubernetes
Em geral, todos os comandos executados ou trabalhos foram realizados no ambiente Kubernetes com privilégios de administrador. Se você precisar alterar os privilégios de segurança do usuário, poderá alterar os direitos do usuário, permitindo que um determinado usuário tenha acesso ao sistema. Isso pode ser feito seguindo o processo dado abaixo.
Primeiro, precisamos garantir que o cluster Minikube esteja em funcionamento com sucesso e, para isso, usaremos o seguinte comando:
> Minikube Start
Isso iniciará o cluster Minikube se não tiver sido iniciado anteriormente ou garantirá que o minikube esteja no modo ativo.
Agora que nosso cluster Minikube está em funcionamento, estamos prontos para alterar as restrições de segurança para o nosso sistema. Para especificar as configurações de segurança para um pod no cluster, precisaremos de um arquivo de configuração da YAML, onde precisamos fornecer a definição de implantação. Use o comando 'nano' para produzir um novo arquivo de configuração da YAML.
> nano sc.Yaml
Este comando criará um arquivo YAML chamado SC.Yaml. Agora, você pode colocar a definição de implantação neste arquivo de configuração. A definição de implantação é dada abaixo para sua referência:
Agora, salve a definição de implantação no SC.Arquivo de configuração da YAML para que possamos aplicar a implantação nas vagens. Observe que o valor do RunasUser é 1000, o que significa que o ID do usuário é 1000 que podemos usar para consultar o usuário específico. O RunasUser especifica que todos os processos para os contêineres no pod serão executados com o valor de RunasUser fornecido. O RinasGroup especifica o ID do grupo primário para o processo no contêiner do pod, enquanto o FSGroup especifica o ID do grupo suplementar para o processo no contêiner do pod do pod.
Agora, vamos aplicar a definição de configuração na implantação usando o comando dado abaixo:
> kubectl Aplicar -f sc.Yaml
Isso criou os pods da definição de configuração. Vamos verificar o status atual do pod no cluster com o seguinte comando:
> Kubectl Obtenha o POD Security-Context-Demo
O status da vagem é 'Running', o que significa que podemos implantar o shell neste contêiner. Use o comando a seguir para levar o shell ao contêiner em execução Security-Context-Demo da Pod:
> Kubectl Exec -it Security -Context -Demo - -SH
O próximo passo é listar todos os processos que estão em execução:
> ps
Como definimos o Runasuser como 1000, todos os processos estão sendo executados como 1000, o que significa que fornecemos ao usuário 1000 privilégios para ter acesso ao sistema. As preferências de segurança foram alteradas para o usuário 1000. Agora, todos os processos serão executados com o ID do usuário 1000. Vamos navegar para outro diretamente para verificar o contexto de segurança do usuário 1000:
> CD /dados
Isso nos navegará até o diretório de dados /onde podemos listar tudo no diretório com o seguinte comando:
> ls -l
Na saída acima, você pode ver que o diretório /dados está usando o ID do usuário suplementar 2000. Agora, vamos navegar para outro diretório para verificar qual ID de usuário está usando:
> Demonstração do CD
Isso nos levará ao diretório /demonstração, onde podemos listar tudo do diretório:
> ls -l
Vamos ver quais IDs foram usados pelo diretório /Data /Demo:
> id
A saída mostra que os arquivos no diretório /Data /Demo estão usando o ID do usuário 1000, o ID do grupo primário 3000 e o ID do grupo suplementar 2000.
Para fechar o shell, você pode usar o comando de saída e sair do shell imediatamente:
> existir
Lembre -se de que navegamos para diferentes diretórios para verificar os privilégios de RunasUser, por isso precisamos sair corretamente do shell para recuperar os privilégios de segurança do usuário.
Conclusão
Neste artigo, aprendemos especificamente sobre os privilégios de segurança do RunasUser. Aprendemos que o processo pode ser executado no ambiente Kubernetes sem ter direitos de administrador. O contexto de segurança pode ser definido para outros usuários e eles podem ter acesso seguro ao sistema e podem executar todos os processos conforme necessário. Quando você habilita o contexto de segurança para um determinado usuário, atribuindo -lhes o ID do RunasUser, todos os processos nos contêineres da vagem serão executados com esse ID.