Limitar o acesso a operações de volume do SVM
É possível definir uma função para restringir a administração de volumes de storage em uma SVM.
Uma função tradicional é criada pela primeira vez para permitir o acesso a todas as principais funções de administração de volume, exceto a clonagem. A função é definida com as seguintes caraterísticas:
-
Capaz de executar todas as operações de volume CRUD, incluindo obter, criar, modificar e excluir
-
Não é possível criar um clone de volume
Você pode, então, opcionalmente, atualizar a função conforme necessário. Nesse fluxo de trabalho, a função é alterada na segunda etapa para permitir que o usuário crie um clone de volume.
Passo 1: Crie a função
Você pode emitir uma chamada de API para criar a função RBAC.
Essa chamada de API REST usa o método e o endpoint a seguir.
Método HTTP | Caminho |
---|---|
POST |
/api/security/roles |
curl --request POST \
--location "https://$FQDN_IP/api/security/roles" \
--include \
--header "Accept: */*" \
--header "Authorization: Basic $BASIC_AUTH" \
--data @JSONinput
{
"name": "role1",
"owner": {
"name": "cluster-1",
"uuid": "852d96be-f17c-11ec-9d19-005056bbad91"
},
"privileges": [
{ "path": "volume create", "access": "all" },
{ "path": "volume delete", "access": "all" }
]
}
Passo 2: Atualize a função
Você pode emitir uma chamada de API para atualizar a função existente.
Essa chamada de API REST usa o método e o endpoint a seguir.
Método HTTP | Caminho |
---|---|
POST |
/api/security/roles |
Além dos parâmetros comuns com todas as chamadas de API REST, os seguintes parâmetros também são usados no exemplo curl nesta etapa.
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
SVM_ID |
Caminho |
Sim |
Este é o UUID do SVM que contém a definição de função. |
NOME_FUNÇÃO |
Caminho |
Sim |
Esse é o nome da função na SVM a ser atualizada. |
curl --request POST \
--location "https://$FQDN_IP/api/security/roles/$SVM_ID/$ROLE_NAME/priveleges" \
--include \
--header "Accept: */*" \
--header "Authorization: Basic $BASIC_AUTH" \
--data @JSONinput
{
"path": "volume clone",
"access": "all"
}