Tutorial do NerdGraph: Serviço de gerenciamento de segredos
Ao trabalhar com o New Relic, pode ser necessário armazenar informações confidenciais, como chaves de API e credenciais de aplicativos. No New Relic, esses são chamados de segredos. O Secrets management service fornece uma maneira segura de armazenar e recuperar esses segredos em um local centralizado por meio de nossa API NerdGraph.
Importante
Você pode armazenar segredos apenas em formato de string.
Os principais recursos do Secrets management service são:
Chaves exclusivas para segredos: Você pode evitar a exposição acidental de segredos atribuindo uma chave exclusiva a cada um ao armazená-los. Use a chave para recuperar e gerenciar os segredos.
Segredos armazenados no nível da conta ou organização: Para acessar e usar um segredo em várias contas, você pode armazená-lo no nível da organização. Se um segredo é específico para uma única conta, você pode armazená-lo no nível da conta.
Versões de segredos: você pode atualizar um segredo sem perder a versão anterior. O Secrets management service acompanha todas as versões de um segredo.
Exclusão controlada e recuperação de segredos: O serviço permite a exclusão recuperável de segredos. Usuários sem a permissão Purge podem excluir segredos de forma reversível. A exclusão permanente é restrita a usuários com a permissão Purge.
Segredos padrão com acesso baseado em função: segredos padrão são acessíveis a todos os usuários com permissões na conta ou organização. Os administradores controlam o acesso atribuindo funções personalizadas com níveis de permissão que variam de View a Purge.
Segredos compartilháveis com acesso granular: segredos compartilháveis são privados por padrão para o criador, que pode conceder permissões específicas (leitura, atualização, exclusão) a usuários individuais, grupos ou identidades do sistema. Os administradores da organização mantêm acesso total a todos os segredos compartilháveis para supervisão e gerenciamento.
Cobrança dos serviços de gerenciamento de segredos
O Secrets management service é um recurso do Advanced Compute Product oferecido como um complemento ou como parte do modelo de preços do Compute. CCUs Avançadas são consumidas quando as consultas do NerdGraph são executadas para armazenar, recuperar ou gerenciar segredos.
Controle de acesso a segredos padrão
Usuários com funções padrão podem acessar o Secrets management service específico das contas às quais têm acesso, com as seguintes permissões.
Somente leitura: Os usuários só podem recuperar segredos. Eles não podem criar, atualizar ou excluir segredos.
Usuário padrão: Os usuários podem criar, atualizar, recuperar e excluir segredos de forma reversível.
Administrador de todos os produtos: Os usuários têm acesso total ao Secrets management service. Eles podem criar, atualizar, recuperar, excluir suavemente, excluir permanentemente e buscar a lista de segredos.
Usuário de cobrança: Os usuários só podem obter a lista de segredos.
Para gerenciar segredos no nível da conta com uma função não padrão, peça ao seu administrador para criar uma função personalizada com as permissões necessárias e atribuí-las ao seu grupo de usuários.
Para gerenciar segredos no nível da organização, peça ao seu administrador para criar uma função personalizada com escopo de organização via a API NerdGraph, adicione as permissões necessárias e atribua-a ao grupo de usuários. Gerenciadores da organização têm permissões padrão no nível da organização, mas para permitir que eles gerenciem segredos, peça ao seu administrador para atribuir a eles uma função personalizada específica para Secrets management service.
Importante
Configure e defina os usuários, funções, permissões e o acesso ao Secrets management service no nível da conta e da organização, de acordo com as políticas e requisitos da sua organização.
Segredos compartilháveis com acesso detalhado
Embora segredos padrão sejam acessíveis a todos os usuários com permissões em uma conta ou organização, empresas com várias equipes geralmente precisam restringir segredos a indivíduos específicos. Segredos compartilháveis atendem a essa necessidade.
Importante
Para trabalhar com segredos compartilháveis, os usuários devem primeiro ter as permissões básicas descritas em Controle de acesso a segredos padrão. As permissões de acesso detalhadas descritas abaixo são adicionais às exigências básicas.
Ao criar um segredo compartilhável, você se torna automaticamente seu proprietário com controle total. Você pode conceder acesso a usuários, grupos ou identidades do sistema atribuindo permissões individuais ou usando funções que agrupam várias permissões.
Permissões individuais (concedidas além do acesso base):
Ler: Recuperar o valor do segredo
Atualizar: Alterar o valor do segredo
Excluir: Remover o segredo
Funções predefinidas (concedidas além do acesso base):
Proprietário do segredo: Controle total (leitura, atualização, exclusão, concessão/revogação)
Secret Reader: Acesso somente leitura
Você também pode criar funções personalizadas que combinam permissões específicas com base em suas necessidades. Os administradores da organização mantêm acesso total a todos os segredos compartilháveis para supervisão.
Quando você precisa de um monitor sintético, workflow ou outro processo automatizado para acessar seu segredo, você concede acesso à sua identidade do sistema. Uma identidade do sistema é um identificador exclusivo atribuído a cada processo automatizado no New Relic. Ao vincular um segredo a um monitor ou workflow por meio da interface do usuário do New Relic, a identidade do sistema para esse processo automatizado é usada para controlar o acesso em tempo de execução.
Importante
Segredos padrão não podem ser convertidos em segredos compartilháveis. Para migrar um segredo padrão existente, crie um novo segredo compartilhável com o mesmo valor, conceda o acesso apropriado, atualize seus aplicativos e exclua o segredo antigo.
Pré-requisitos
Para usar o Secrets management service, você precisa:
Aqui estão os atributos comuns que você usará nas mutações e consultas:
Nome do atributo
Tipo de dados
Descrição
description
Corda
Uma breve descrição do segredo.
key
Corda
Um identificador exclusivo para o segredo dentro de um namespace. A mesma chave pode existir em diferentes namespaces.
namespace
Corda
Serve como um agrupamento lógico de segredos, organizando-os e categorizando-os para aprimorar o gerenciamento e evitar conflitos. Ele se combina com a chave para criar um endereço exclusivo para o segredo. Este atributo é benéfico em ambientes com várias equipes ou projetos usando o New Relic.
scope
type: Enum
id: corda
O escopo de armazenamento dos segredos em termos de sua acessibilidade. Os atributos definidores são:
type: Para usar o segredo em várias contas, selecione Organization. Se o segredo for específico para uma única conta, selecione Account. Para armazenar um segredo no nível da organização, você deve ter a função personalizada com escopo de organização com as permissões necessárias. Consulte a seção Controle de acesso para obter mais detalhes.
id: ID da conta ou organização correspondente.
tags
Matriz
Funciona como pares de chave-valor que adicionam metadados às suas entidades, incluindo aplicativos, serviços e hosts. Usando tags, você pode aprimorar a capacidade de organizar, filtrar e gerenciar segredos.
value
Corda
O segredo real.
purge
Boleano
Exclui todas as versões do segredo.
true: Exclui o segredo permanentemente.
false: Você pode recuperar o segredo excluído com todas as suas versões.
Somente todos os administradores de produto ou um usuário com uma função personalizada com permissão purge podem excluir segredos permanentemente. Para mais detalhes, consulte a seção Controle de acesso.
version
Corda
Como você pode armazenar várias versões de um segredo, ele representa o número da versão do segredo.
cursor (Opcional)
Corda
Ao recuperar uma lista de segredos, se a resposta contiver o atributo nextCursor, isso indica que há mais segredos disponíveis além da página atual de resultados. Para acessar a próxima página de resultados, use o valor nextCursor no atributo cursor e execute a consulta novamente.
Importante
Copie seu segredo real apenas no atributo value. Certifique-se de que ele não seja declarado em nenhum outro atributo, como description, key ou namespace.
Operações
As operações que você pode realizar com Secrets management service são organizadas em duas categorias:
Dica
Escolhendo entre segredos padrão e compartilháveis:
Use segredos padrão (secretsManagementCreateSecret) quando quiser compartilhar um segredo com todos os usuários que têm acesso à conta ou organização.
Use segredos compartilháveis (secretsManagementCreateShareableSecret) quando precisar controlar exatamente quem pode acessar um segredo, concedendo permissões a usuários, grupos ou identidades de sistema específicos.
Use a mutação secretsManagementCreateSecret com os seguintes parâmetros para armazenar um segredo padrão que estará acessível a todos os usuários com permissões na conta ou organização especificada.
Nome do atributo
Tipo de dados
Descrição
description (Opcional)
Corda
Forneça uma descrição para o segredo.
key (Obrigatório)
Corda
Atribua uma chave exclusiva para o segredo.
namespace (Opcional)
Corda
Atribua um nome se quiser armazenar o segredo em um namespace específico.
scope (Obrigatório)
type: Enum id: string
type: Com base em sua função e requisitos, selecione Account ou Organization.
id: Insira o ID da conta ou da organização correspondente.
tags (Opcional)
Matriz
Atribua um par de chave e valor.
value (Obrigatório)
Corda
Insira o segredo real.
Consulta de exemplo:
mutation{
secretsManagementCreateSecret(
description:"ZXY"
key:"Test2"
scope:{id:1,type:ACCOUNT}
value:"1990@123"
namespace:"Namespace1"
)
}
Resposta
Nome do atributo
Descrição
description
A descrição do segredo, se fornecida.
key
A chave atribuída.
latestVersion
A versão do segredo. Se você criou um novo segredo, a versão será 0.
metadata
Metadados associados ao segredo, se houver.
namespace
O namespace do segredo, se fornecido.
scope
O ID da conta ou organização associado ao segredo.
tags
O par de chave e valor associado ao segredo, se houver.
Resposta de exemplo:
{
"data":{
"secretsManagementCreateSecret":{
"description":"ZXY",
"key":"Test2",
"latestVersion":0,
"scope":{
"id":"1",
"type":"ACCOUNT"
}
}
}
Use a mutação secretsManagementCreateShareableSecret para criar um segredo privado com controle de acesso detalhado. Ao criar um segredo compartilhável, você se torna automaticamente o proprietário com controle total sobre quem pode acessá-lo.
Nome do atributo
Tipo de dados
Descrição
description (Opcional)
Corda
Forneça uma descrição para o segredo.
key (Obrigatório)
Corda
Atribua uma chave exclusiva para o segredo.
namespace (Opcional)
Corda
Atribua um nome se quiser armazenar o segredo em um namespace específico.
scope (Obrigatório)
type: Enum id: string
type: Com base em sua função e requisitos, selecione Account ou Organization.
id: Insira o ID da conta ou da organização correspondente.
tags (Opcional)
Matriz
Atribua um par de chave e valor.
value (Obrigatório)
Corda
Insira o segredo real.
Consulta de exemplo:
mutation{
secretsManagementCreateShareableSecret(
scope:{type:ACCOUNT,id:1}
key:"prod-api-key"
value:"sk_live_abc123xyz"
namespace:"production"
description:"Private API key for production"
tags:[{key:"environment",value:"production"}]
){
scope{
type
id
}
key
namespace
latestVersion
description
tags{
key
value
}
metadata{
createdAt
updatedAt
}
}
}
Resposta
Nome do atributo
Descrição
description
A descrição do segredo, se fornecida.
key
A chave atribuída.
latestVersion
A versão do segredo. Se você criou um novo segredo, a versão será 0.
metadata
Metadados associados ao segredo, incluindo:
createdAt: Timestamp quando o segredo foi criado
updatedAt: Timestamp em que o segredo foi atualizado pela última vez
namespace
O namespace do segredo, se fornecido.
scope
O ID da conta ou organização associado ao segredo.
tags
O par de chave e valor associado ao segredo, se houver.
Resposta de exemplo:
{
"data":{
"secretsManagementCreateShareableSecret":{
"scope":{
"type":"ACCOUNT",
"id":"1"
},
"key":"prod-api-key",
"namespace":"production",
"latestVersion":0,
"description":"Private API key for production",
"tags":[
{
"key":"environment",
"value":"production"
}
],
"metadata":{
"createdAt":"2025-10-30T12:34:56.789Z",
"updatedAt":"2025-10-30T12:34:56.789Z"
}
}
}
}
Dica
Após criar um segredo compartilhável, você se torna o proprietário automaticamente. Para conceder acesso a outros usuários, grupos ou identidades do sistema, use a mutação authorizationManagementGrantAccess. Para mais detalhes, consulte a seção Conceder acesso a um segredo compartilhável.
Use a consulta {customerAdministration {secret}} para recuperar segredos junto com seus detalhes. Você pode recuperar segredos que são restritos apenas à sua conta ou organização atual.
Nome do atributo
Tipo de dados
Descrição
key (Obrigatório)
Corda
Chave do segredo que você deseja recuperar.
namespace (Opcional)
Corda
O namespace do segredo, se disponível.
scope (Obrigatório)
type: Enum id: string
type: Selecione account ou organization em qual nível o segredo é armazenado.
id: Insira o ID da conta ou da organização correspondente.
unlock (Opcional)
Corda
O valor padrão false retorna os metadados do segredo sem desbloqueá-lo. Se você deseja desbloquear o segredo e recuperar seu valor real, defina-o como true.
version (Opcional)
Inteiro
Insira uma versão específica do segredo que você deseja recuperar. Se você não fornecer uma versão, a versão mais recente será recuperada.
Indica se o segredo é um segredo compartilhável com controle de acesso detalhado. Se true, o segredo usa permissões detalhadas e é privado para o criador por padrão. Se false, é um segredo padrão acessível a todos os usuários com permissões na conta ou organização.
key
A chave do segredo.
metadata
Metadados associados ao segredo, se houver.
namespace
O namespace do segredo, se fornecido.
retrievedValue
value: O valor real do segredo, se unlock estiver definido como true.
version: A versão do segredo.
scope
O ID da conta ou organização associado ao segredo.
tags
O par de chave e valor associado ao segredo, se houver.
Resposta de exemplo:
{
"data":{
"customerAdministration":{
"secret":{
"description":"ZXY",
"isSharable":false,
"key":"Test2",
"namespace":null,
"retrievedValue":{
"value":"1995@123",
"version":1
},
"scope":{
"id":"1",
"type":"ACCOUNT"
}
}
}
}
}
Use a mutação secretsManagementUpdateSecret para atualizar o valor dos segredos existentes.
Dica
Cada operação de atualização cria uma nova versão do segredo. A versão mais alta é sempre a versão mais recente do segredo. Para recuperar versões mais antigas do segredo, você pode usar a consulta {customerAdministration {secretVersions}}. Para obter mais detalhes, consulte a seção Recuperar todas as informações da versão de um segredo.
Parâmetros de entrada
Nome do atributo
Tipo de dados
Descrição
description (Opcional)
Corda
Adicione uma descrição se quiser atualizar a existente.
key (Obrigatório)
Corda
Insira a chave do segredo para o qual você deseja atualizar o valor.
namespace (Opcional)
Corda
Namespace do segredo, se disponível.
scope (Obrigatório)
type: Enum id: string
type: Selecione Account ou Organization em qual nível o segredo é armazenado.
id: Insira o ID da conta ou da organização correspondente.
value (Obrigatório)
Corda
O valor atualizado para o segredo.
Consulta de exemplo:
mutation{
secretsManagementUpdateSecret(
key:"Test2"
scope:{id:1,type:ACCOUNT}
value:"1995@123"
)
}
Resposta
Nome do atributo
Descrição
description
Descrição atualizada do segredo, se fornecida.
key
A chave do segredo.
latestVersion
O número da versão mais recente do segredo após a atualização.
metadata
Metadados associados ao segredo, se houver.
namespace
O namespace do segredo, se houver.
scope
O ID da conta ou organização associado ao segredo.
tags
O par de chave e valor associado ao segredo, se houver.
Resposta de exemplo:
{
"data":{
"secretsManagementUpdateSecret":{
"description":"ZXY",
"key":"Test2",
"latestVersion":1,
"scope":{
"id":"1",
"type":"ACCOUNT"
}
}
}
}
Use a consulta {customerAdministration {secretVersions}} para recuperar até 10 versões recentes de um segredo, juntamente com seus detalhes. Você pode recuperar segredos que são restritos apenas à sua conta ou organização atual.
Nome do atributo
Tipo de dados
Descrição
fetchDeleted (Opcional)
Corda
Para obter apenas as versões não excluídas do segredo, defina-o como false. Para obter versões do segredo, incluindo as excluídas suavemente, defina-o como true.
key (Obrigatório)
Corda
Chave do segredo que você deseja recuperar.
namespace (Opcional)
Corda
O namespace do segredo, se disponível.
scope (Obrigatório)
type: Enum id: string
type: Selecione account ou organization em qual nível o segredo é armazenado.
id: Insira o ID da conta ou da organização correspondente.
Consulta de exemplo:
{
customerAdministration{
secretVersions(
fetchDeleted:true
key:"Test2"
scope:{id:1,type:ACCOUNT}
)
}
}
Resposta
Nome do atributo
Descrição
key
A chave do segredo.
latestVersion
O número da versão mais recente do segredo.
namespace
O namespace do segredo, se fornecido.
scope
O ID da conta ou organização associado ao segredo.
secretVersions
Uma matriz de objetos contendo os detalhes de cada versão do segredo, incluindo:
createdAt: Carimbos de data/hora indicando quando cada versão foi criada.
isDeleted: Indica se a versão do segredo foi excluída ou não.
version: O número da versão do segredo.
Resposta de exemplo:
{
"data":{
"customerAdministration":{
"secretVersions":{
"key":"Test2",
"latestVersion":1,
"namespace":null,
"scope":{
"id":"1",
"type":"ACCOUNT"
},
"secretVersions":[
{
"createdAt":"2025-05-26T07:52:23.920250Z",
"isDeleted":false,
"version":1
},
{
"createdAt":"2025-05-26T07:45:19.395796Z",
"isDeleted":false,
"version":0
}
]
}
}
}
}
Use a mutação secretsManagementDeleteSecret para excluir todas as versões de um segredo. Somente todos os administradores de produto ou um usuário com uma função personalizada com a permissão purge podem optar por excluir segredos permanentemente. Outros usuários não podem excluir segredos permanentemente. Se você não excluiu o segredo permanentemente, pode recuperá-lo usando a mutação secretsManagementRecoverSecret.
Atributos de entrada
Nome do atributo
Tipo de dados
Descrição
key (Obrigatório)
Corda
A chave para o segredo que você deseja excluir.
namespace (Opcional)
Corda
Namespace do segredo, se disponível.
purge (Obrigatório)
Boleano
Para excluir o segredo permanentemente, defina o valor como true. Para exclusão suave, defina o valor como false.
scope (Obrigatório)
type: Enum id: string
type: Selecione o nível em que seu segredo é armazenado.
id: Insira o ID da conta ou da organização correspondente.
Consulta de exemplo:
mutation{
secretsManagementDeleteSecret(
key:"Test1"
scope:{id:1,type:ACCOUNT}
purge:false
)
}
Resposta
Nome do atributo
Descrição
key
A chave do segredo excluído.
namespace
O namespace do segredo excluído, se disponível.
scope
O ID da conta ou organização associado ao segredo excluído.
Resposta de exemplo:
{
"data":{
"secretsManagementDeleteSecret":{
"key":"Test1",
"namespace":null,
"scope":{
"id":"1",
"type":"ACCOUNT"
}
}
}
}
Use a mutação secretsManagementRecoverSecret para recuperar segredos que você excluiu usando a mutação secretsManagementDeleteSecret antes, com o atributo purge definido como false. Se um segredo for excluído permanentemente, você não poderá recuperá-lo.
Atributos de entrada
Nome do atributo
Tipo de dados
Descrição
key (Obrigatório)
Corda
A chave do segredo que você deseja recuperar.
namespace (Opcional)
Corda
O namespace do segredo excluído, se disponível.
scope (Obrigatório)
type: Enum id: string
type: Selecione Account ou Organization em qual nível o segredo foi armazenado.
id: Insira o ID correspondente da conta ou organização.
O ID da conta ou organização associado ao segredo recuperado.
Resposta de exemplo:
{
"data":{
"secretsManagementRecoverSecret":{
"key":"Test1",
"latestVersion":1,
"namespace":null,
"scope":{
"id":"1",
"type":"ACCOUNT"
}
}
}
}
Use a mutação secretsManagementDeleteSecretVersion para excluir uma versão específica de um segredo. Somente todos os administradores de produto ou um usuário com uma função personalizada com a permissão purge podem optar por excluí-la permanentemente. Outros usuários não podem excluir a versão do segredo permanentemente. Se você não excluiu a versão do segredo permanentemente, pode recuperá-la usando a mutação secretsManagementDeleteSecretVersion.
Atributos de entrada
Nome do atributo
Tipo de dados
Descrição
key (Obrigatório)
Corda
A chave do segredo para o qual você deseja excluir uma das versões.
namespace (Opcional)
Corda
Namespace do segredo, se disponível.
purge (Obrigatório)
Boleano
Para excluir a versão do segredo permanentemente, defina o valor como true. Para exclusão suave, defina o valor como false.
scope (Obrigatório)
type: Enum id: string
type: Selecione o nível em que seu segredo é armazenado.
id: Insira o ID correspondente da conta ou organização.
version (Opcional)
Corda
A versão específica do segredo que você deseja excluir. Se você não fornecer uma versão, a versão mais recente será excluída e a versão anterior se tornará a versão mais recente.
Consulta de exemplo:
mutation{
secretsManagementDeleteSecretVersion(
key:"Test2"
purge:false
scope:{id:1,type:ACCOUNT}
version:0
)
}
Resposta
Nome do atributo
Descrição
key
A chave do segredo.
latestVersion
A versão mais recente do segredo disponível após a exclusão da versão especificada.
namespace
O namespace do segredo, se disponível.
scope
O ID da conta ou organização associado ao segredo.
Resposta de exemplo:
{
"data":{
"secretsManagementDeleteSecretVersion":{
"key":"Test2",
"latestVersion":1,
"scope":{
"id":"1"
}
}
}
}
Use a mutação secretsManagementRecoverSecretVersion para recuperar uma versão específica do segredo que você excluiu de forma reversível usando a mutação secretsManagementDeleteSecretVersion. Se uma versão for excluída permanentemente, você não poderá recuperá-la.
Atributos de entrada
Nome do atributo
Tipo de dados
Descrição
key (Obrigatório)
Corda
A chave do segredo para o qual você deseja recuperar uma das versões.
namespace (Opcional)
Corda
O namespace do segredo, se disponível.
scope (Obrigatório)
type: Enum id: string
type: Selecione Account ou Organization em qual nível o segredo pertence.
id: Insira o ID correspondente da conta ou organização.
version (Opcional)
Corda
Insira o número da versão do segredo que você deseja recuperar. Se você não fornecer uma versão, ele recupera a versão mais alta do segredo que foi excluída de forma reversível.
Consulta de exemplo:
mutation{
secretsManagementRecoverSecretVersion(
key:"Test2"
scope:{id:1,type:ACCOUNT}
version:0
)
}
Resposta
Nome do atributo
Descrição
key
A chave do segredo.
latestVersion
A versão mais recente do segredo após a recuperação.
namespace
O namespace do segredo, se disponível.
scope
O ID da conta ou organização associado ao segredo.
Resposta de exemplo:
{
"data":{
"secretsManagementRecoverSecretVersion":{
"key":"Test2",
"latestVersion":1,
"namespace":null,
"scope":{
"id":"1",
"type":"ACCOUNT"
}
}
}
}
Use a consulta {customerAdministration {secrets}} para recuperar uma lista de segredos disponíveis na conta ou organização. Você pode recuperar segredos que são restritos apenas à sua conta ou organização atual.
Dica
A lista inclui todos os segredos no escopo, incluindo segredos compartilháveis que você pode não ter permissão para acessar. As permissões de acesso são aplicadas quando você recupera o valor do segredo usando a operação Recuperar um segredo.
Nome do atributo
Tipo de dados
Descrição
cursor (Opcional)
Corda
Use o cursor para navegar pelas listas de segredos. Para obter a primeira página da lista de segredos, esse parâmetro não é necessário. Se você deseja acessar a próxima página, use o valor NextCursor da resposta anterior.
filter (Obrigatório)
deleted (Opcional): Booleano
namespace (Opcional): String
scope (Obrigatório)
type: Enum
id: corda
Adicione o seguinte filtro para aplicar os critérios de pesquisa:
deleted: Para obter todos os segredos, incluindo os excluídos suavemente, defina-o como true. Para obter apenas os segredos não excluídos, defina-o como false.
namespace: Para filtrar segredos por namespace, forneça o nome do namespace.
scope: Para filtrar segredos por escopo, forneça o nível (Account ou Organization) e o ID correspondente.
sort (Opcional)
direction (Obrigatório): Booleano
key (Obrigatório): Booleano
Para classificar a lista de segredos, forneça os seguintes atributos:
direction: Selecione ASC para ordem crescente ou DESC para ordem decrescente.
key: A opção disponível é CREATED_AT. Isso classifica os segredos com base em seu tempo de criação.
Consulta de exemplo:
{
customerAdministration{
secrets(
filter:{
deleted:{eq:false}
scope:{eq:{id:1,type:ACCOUNT}}
}
cursor:""
sort:{direction:DESC,key:CREATED_AT}
)
}
}
Resposta
Nome do atributo
Descrição
nextCursor
O valor do cursor para acessar a próxima página da lista de segredos. Se não houver mais páginas, este valor será null.
scope
O ID da conta ou organização associado ao segredo.
secrets
Os detalhes dos segredos listados, incluindo:
description: A descrição do segredo, se disponível.
isDeleted: Indica se o segredo está em um estado de exclusão suave ou não.
isSharable: Indica se o segredo é um segredo compartilhável com controle de acesso granular.
key: A chave do segredo.
latestVersion: O número da versão mais recente do segredo.
metadata: Metadados associados ao segredo, se houver.
createdAt: Carimbos de data/hora indicando quando o segredo foi criado.
updatedAt: Carimbos de data/hora indicando quando o segredo foi atualizado pela última vez.
namespace: O namespace do segredo, se disponível.
tags: O par chave-valor associado ao segredo, se houver.
totalCount
O número total de segredos disponíveis na conta ou organização, independentemente da paginação.
Depois de criar um segredo compartilhável, você pode conceder permissões específicas a usuários, grupos, identidades do sistema ou grupos de identidade do sistema. Use a mutação authorizationManagementGrantAccess para compartilhar seu segredo com entidades autorizadas.
Importante
O proprietário do segredo (criador), os administradores da organização ou os usuários com a capacidade secret.create.grants podem conceder acesso a um segredo compartilhável.
Atributos de entrada
Nome do atributo
Tipo de dados
Descrição
grantAccessOptions (Obrigatório)
Objeto
Contém a configuração de concessão com dois componentes principais:
entityAccessGrants: Define o segredo e a função a ser concedida
grantee: Especifica quem recebe acesso
entityAccessGrants.entity.id (Obrigatório)
Corda
O ID exclusivo do segredo. O formato é namespace::partition::entry_key_secret.
Por exemplo, se você criou um segredo com a chave prod-api-key na conta 12345 com o namespace production, o ID da entidade é: production::account-12345::prod-api-key. Se nenhum namespace foi fornecido, use uma string vazia: ::account-12345::prod-api-key.
entityAccessGrants.entity.type (Obrigatório)
Corda
O tipo de entidade. Para segredos, isso é sempre secret.
entityAccessGrants.roleId (Obrigatório)
Corda
O ID exclusivo da função a ser concedida. Para encontrar os IDs de função disponíveis, use o explorador da API NerdGraph para consultar funções com escopo secret. Funções comuns incluem Proprietário do segredo (controle total) e Leitor de segredo (acesso somente leitura).
grantee.id (Obrigatório)
Corda
O ID exclusivo do usuário, grupo, identidade do sistema ou grupo de identidade do sistema que está recebendo acesso.
grantee.type (Obrigatório)
Enum
O tipo de cessionário. Valores válidos:
USER: Usuário individual
GROUP: Grupo de usuários
SYSTEM_IDENTITY: Identidade do sistema (para processos automatizados)
SYSTEM_IDENTITY_GROUP: Grupo de identidade do sistema
Uma matriz de atribuições de função criadas pela operação de concessão, incluindo:
id: O identificador exclusivo da concessão
roleId: O ID da função que foi concedida
Resposta de exemplo:
{
"data":{
"authorizationManagementGrantAccess":{
"roles":[
{
"id":"grant-id-xyz789",
"roleId":"role-id-for-secret-reader"
}
]
}
}
}
Dica
Para revogar o acesso a um segredo compartilhável, use a mutação authorizationManagementRevokeAccess.
Use a mutação authorizationManagementRevokeAccess para remover o acesso de usuários, grupos, identidades do sistema ou grupos de identidade do sistema que foram previamente concedidos acesso ao seu segredo compartilhável.
Importante
O proprietário do segredo (criador), os administradores da organização ou usuários com a permissão de revogação apropriada podem remover o acesso a um segredo compartilhável.
Atributos de entrada
Nome do atributo
Tipo de dados
Descrição
grantAccessOptions (Obrigatório)
Objeto
Contém a configuração de revogação com a mesma estrutura da operação de concessão.
entityAccessGrants.entity.id (Obrigatório)
Corda
O ID exclusivo do segredo no formato namespace::partition::entry_key_secret.
entityAccessGrants.entity.type (Obrigatório)
Corda
O tipo de entidade. Para segredos, isso é sempre secret.
entityAccessGrants.roleId (Obrigatório)
Corda
O ID exclusivo da função a ser revogada.
grantee.id (Obrigatório)
Corda
O ID exclusivo do usuário, grupo, identidade do sistema ou grupo de identidade do sistema de quem revogar o acesso.
grantee.type (Obrigatório)
Enum
O tipo de cessionário. Valores válidos: USER, GROUP, SYSTEM_IDENTITY, SYSTEM_IDENTITY_GROUP.
Uma matriz de informações de função relacionadas à concessão revogada.
Resposta de exemplo:
{
"data":{
"authorizationManagementRevokeAccess":{
"roles":[
{
"id":"grant-id-xyz789",
"roleId":"role-id-for-secret-reader"
}
]
}
}
}
Use a consulta customerAdministration/entityGrants para ver quais usuários, grupos, identidades do sistema ou grupos de identidade do sistema receberam acesso ao seu segredo compartilhável.
Dica
Esta consulta retorna apenas concessões explícitas feitas diretamente no segredo. Ele não mostra acesso implícito ou permissões herdadas de escopos pai.
Atributos de entrada
Nome do atributo
Tipo de dados
Descrição
iamParent.id (Obrigatório)
Corda
O ID da conta ou organização onde o segredo é armazenado.
iamParent.scope (Obrigatório)
Enum
O tipo de escopo pai. Valores válidos: ACCOUNT, ORGANIZATION.
entity.id (Opcional)
Corda
O ID exclusivo do segredo no formato namespace::partition::entry_key_secret. Quando fornecido, apenas as concessões para este segredo específico são retornadas.
entity.type (Obrigatório)
Corda
O tipo de entidade. Para segredos, isso é sempre secret.
member.id (Opcional)
Corda
Filtra as concessões pelo ID de um usuário, grupo, identidade do sistema ou grupo de identidade do sistema específico.
member.type (Opcional)
Enum
O tipo de membro a ser filtrado. Valores válidos: USER, GROUP, SYSTEM_IDENTITY, SYSTEM_IDENTITY_GROUP.
Consulta de exemplo:
{
customerAdministration{
entityGrants(
filter:{
iamParent:{id:{eq:"12345"},scope:{eq:ACCOUNT}}
entity:{
id:{eq:"production::account-12345::prod-api-key"}
type:{eq:"secret"}
}
}
cursor:""
){
items{
targetEntity{
id
}
member{
memberId
memberType
}
id
role{
name
id
}
}
nextCursor
}
}
}
Resposta
Nome do atributo
Descrição
items
Uma matriz de objetos de concessão, cada um contendo:
targetEntity.id: A ID da entidade do segredo
member.memberId: O ID do usuário, grupo, identidade do sistema ou grupo de identidade do sistema
member.memberType: O tipo de membro (USER, GROUP, SYSTEM_IDENTITY ou SYSTEM_IDENTITY_GROUP)
id: O identificador exclusivo da concessão (use-o para revogar o acesso)
role.name: O nome da função concedida
role.id: O identificador exclusivo da função
nextCursor
O valor do cursor para paginação. Use este valor na próxima consulta para recuperar resultados adicionais.