Esta página descreve como criar e gerir funções personalizadas da gestão de identidade e de acesso (IAM). A gestão de funções inclui a modificação, a desativação, a listagem, a eliminação e a recuperação de funções.
Antes de começar
Enable the IAM API.
Configurar autenticação.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
C#
Para usar os .NET exemplos nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais predefinidas da aplicação com as suas credenciais de utilizador.
Instale a CLI Google Cloud.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na Google Cloud documentação de autenticação.
C++
Para usar os C++ exemplos nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais predefinidas da aplicação com as suas credenciais de utilizador.
Instale a CLI Google Cloud.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na Google Cloud documentação de autenticação.
Ir
Para usar os Go exemplos nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais predefinidas da aplicação com as suas credenciais de utilizador.
Instale a CLI Google Cloud.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na Google Cloud documentação de autenticação.
Java
Para usar os Java exemplos nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais predefinidas da aplicação com as suas credenciais de utilizador.
Instale a CLI Google Cloud.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na Google Cloud documentação de autenticação.
Python
Para usar os Python exemplos nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais predefinidas da aplicação com as suas credenciais de utilizador.
Instale a CLI Google Cloud.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na Google Cloud documentação de autenticação.
REST
Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.
Instale a CLI Google Cloud.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.
Compreenda a Google Cloud hierarquia de recursos.
Leia o artigo Compreender as funções personalizadas do IAM.
Funções necessárias
Para receber as autorizações de que precisa para criar e gerir funções personalizadas, peça ao seu administrador que lhe conceda as seguintes funções de IAM:
-
Para gerir funções de um projeto:
Administrador de funções (
roles/iam.roleAdmin
) no projeto para o qual quer gerir funções -
Para gerir funções de uma organização:
Administrador da função na organização (
roles/iam.organizationRoleAdmin
) na organização para a qual quer gerir funções
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Veja as autorizações disponíveis para projetos, pastas e organizações
Pode criar funções personalizadas para uma organização inteira ou para um projeto específico nessa organização. As autorizações disponíveis para funções personalizadas dependem do local onde cria a função. Por exemplo, se uma autorização só puder ser usada ao nível da organização, não pode incluir essa autorização numa função personalizada ao nível do projeto.
Para verificar que autorizações estão disponíveis para funções personalizadas ao nível da organização e ao nível do projeto, pode usar a CLI gcloud ou a API Identity and Access Management para listar as autorizações disponíveis numa organização ou num projeto específico. Por exemplo, pode obter todas as autorizações disponíveis para funções personalizadas criadas no seu projeto.
Algumas autorizações podem não estar visíveis ou não ser utilizáveis numa função personalizada, mesmo que sejam suportadas em funções personalizadas. Por exemplo, uma autorização pode não estar disponível para utilização em funções personalizadas se não tiver ativado a API para o serviço.
Para saber mais sobre as autorizações que pode adicionar a funções personalizadas, consulte o artigo Autorizações suportadas.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Use o comando
gcloud iam list-testable-permissions
para obter uma lista de autorizações disponíveis para funções personalizadas num projeto ou numa organização específicos. A resposta indica as autorizações que pode usar em funções personalizadas para esse projeto ou organização.Para listar as autorizações disponíveis em funções personalizadas para um projeto ou uma organização, execute este comando:
gcloud iam list-testable-permissions FULL_RESOURCE_NAME \ --filter="customRolesSupportLevel!=NOT_SUPPORTED"
Substitua
FULL_RESOURCE_NAME
por um dos seguintes valores:-
Projeto:
//cloudresourcemanager.googleapis.com/projects/PROJECT_ID
(por exemplo,//cloudresourcemanager.googleapis.com/projects/my-project
) -
Organização:
//cloudresourcemanager.googleapis.com/organizations/NUMERIC_ID
(por exemplo,//cloudresourcemanager.googleapis.com/organizations/123456789012
)
Os resultados indicam se cada autorização é suportada em funções personalizadas. As autorizações que não têm um campo
customRolesSupportLevel
são totalmente suportadas.O comando
list-testable-permissions
pode devolver centenas de resultados. Este exemplo parcial mostra o formato de cada resultado:--- name: appengine.applications.create stage: GA --- customRolesSupportLevel: TESTING name: appengine.applications.disable stage: GA --- name: appengine.applications.get stage: GA --- name: appengine.applications.update stage: GA --- name: appengine.instances.delete stage: GA --- name: appengine.instances.get stage: GA ---
-
FULL_RESOURCE_NAME
: um URI composto pelo nome do serviço e o caminho para o recurso. Para ver exemplos, consulte o artigo Nomes de recursos completos.PAGE_SIZE
: opcional. O número de autorizações a incluir na resposta. O valor predefinido é 100 e o valor máximo é 1000. Se o número de autorizações for superior ao tamanho da página, a resposta contém um token de paginação que pode usar para obter a página seguinte de resultados.NEXT_PAGE_TOKEN
: opcional. O token de paginação devolvido numa resposta anterior deste método. Se especificado, a lista de autorizações testáveis começa onde a resposta anterior terminou.
C++
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API C++ IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
C#
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API C# IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Go
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Go IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Java
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Java IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Python
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Python IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
REST
O método
permissions.queryTestablePermissions
lista as autorizações disponíveis numa organização ou num projeto.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
Método HTTP e URL:
POST https://iam.googleapis.com/v1/permissions:queryTestablePermissions
Corpo JSON do pedido:
{ "fullResourceName": "FULL_RESOURCE_NAME" "pageSize": PAGE_SIZE, "pageToken": "NEXT_PAGE_TOKEN" }
Para enviar o seu pedido, expanda uma destas opções:
A resposta contém a lista de autorizações.
{ "permissions": [ { "name": "iam.serviceAccountKeys.create", "stage": "GA" }, { "name": "iam.serviceAccountKeys.delete", "stage": "GA" }, { "name": "iam.serviceAccountKeys.get", "stage": "GA" } ], "nextPageToken": "CgoHBajEfjUDQyABEPaIv5vIiMDTVhgDIhtpYW0uc2VydmljZUFjY291bnRLZXlzLmxpc3Q" }
Obtenha os metadados da função
Antes de criar uma função personalizada, recomendamos que obtenha os metadados das funções predefinidas e personalizadas. Os metadados da função incluem o ID da função e as autorizações contidas na função. Pode ver os metadados através da Google Cloud consola ou da API IAM.
Para ver os metadados da função, use um dos métodos abaixo:
Consola
Na Google Cloud consola, aceda à página Funções.
Selecione a sua organização ou projeto na lista pendente na parte superior da página.
Selecione a caixa de verificação de uma ou mais funções para ver as autorizações da função. O painel lateral direito apresenta as autorizações contidas nas funções, se existirem.
Os ícones na coluna Tipo indicam se se trata de uma função personalizada
ou de uma função predefinidaSe quiser encontrar todas as funções que incluem uma autorização específica, escreva o nome da autorização na caixa Filtro na parte superior da lista de funções.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Use o comando
gcloud iam roles describe
para ver os metadados das funções predefinidas e das funções personalizadas.Para ver os metadados de uma função predefinida, execute o seguinte comando:
gcloud iam roles describe ROLE_ID
ROLE_ID
é o ID da função. As funções predefinidas incluem o prefixorole
nos respetivos IDs, por exemplo,roles/iam.roleViewer
.O exemplo seguinte demonstra o resultado do comando
describe
quando executado na função predefinidaroles/iam.roleViewer
:gcloud iam roles describe roles/iam.roleViewer
description: Read access to all custom roles in the project. etag: AA== includedPermissions: - iam.roles.get - iam.roles.list - resourcemanager.projects.get - resourcemanager.projects.getIamPolicy name: roles/iam.roleViewer stage: GA title: Role Viewer
Para ver os metadados de uma função personalizada, execute um dos seguintes comandos:
-
Para ver os metadados de uma função personalizada criada ao nível da organização, execute o seguinte comando:
gcloud iam roles describe --organization=ORGANIZATION_ID ROLE_ID
-
Para ver os metadados de uma função personalizada criada ao nível do projeto, execute o seguinte comando:
gcloud iam roles describe --project=PROJECT_ID ROLE_ID
Cada valor do marcador de posição é descrito abaixo:
-
ORGANIZATION_ID
é o ID numérico da organização, como123456789012
. -
PROJECT_ID
é o nome do projeto, comomy-project
. -
ROLE_ID
é o ID da função, excluindo prefixos comoprojects/
,organizations/
ouroles/
. Por exemplo,myCompanyAdmin
.
Para mais informações, consulte a documentação de referência para
gcloud iam roles describe
. -
ROLE_NAME
: O nome completo da função, incluindo todos os prefixosorganizations/
,projects/
ouroles/
. Por exemplo,organizations/123456789012/roles/myCompanyAdmin
.
C++
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API C++ IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
C#
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API C# IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Go
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Go IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Java
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Java IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Python
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Python IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
REST
O método
roles.get
obtém a definição de uma função.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
Método HTTP e URL:
GET https://iam.googleapis.com/v1/ROLE_NAME
Para enviar o seu pedido, expanda uma destas opções:
A resposta contém a definição da função.
{ "name": "projects/my-project/roles/customRole", "title": "My Custom Role", "description": "My custom role description.", "includedPermissions": [ "storage.buckets.get", "storage.buckets.list" ], "etag": "BwWiPg2fmDE=" }
Crie uma função personalizada
Pode criar uma função personalizada ao nível do projeto ou da organização.
Uma função personalizada ao nível da organização pode incluir qualquer uma das autorizações de IAM suportadas em funções personalizadas. Uma função personalizada ao nível do projeto pode conter qualquer autorização suportada, exceto autorizações que só podem ser usadas ao nível da organização ou da pasta, como
resourcemanager.organizations.get
. Se tentar adicionar estas autorizações a uma função personalizada ao nível do projeto, é apresentada uma mensagem de erro:Consola
É apresentada a seguinte mensagem de aviso: "Não aplicável a funções personalizadas ao nível do projeto". A autorização é automaticamente desmarcada na lista de autorizações incluídas, e pode continuar a criar a função.
gcloud
É devolvida a seguinte mensagem de erro:
INVALID_ARGUMENT: Permission PERMISSION is not valid
. A função personalizada não é criada até remover primeiro a autorização da definição da função e tentar novamente a operação.API REST
É devolvida a seguinte mensagem de erro:
Permission PERMISSION is not valid
, juntamente com um código de erro HTTP 400 e um estado deINVALID_ARGUMENT
. A função personalizada não é criada até remover primeiro a autorização da definição da função e tentar novamente a operação.Cada função personalizada pode conter até 3000 autorizações. Além disso, o tamanho total máximo dos nomes do título, da descrição e das autorizações para uma função personalizada é de 64 KB. Se precisar de criar uma função personalizada maior, pode dividir as autorizações por várias funções personalizadas. Escolha títulos de funções que mostrem a relação entre as funções personalizadas, como
Custom Admin (1 of 2)
eCustom Admin (2 of 2)
.Cada função personalizada pode ter uma fase de lançamento. A maioria das fases de lançamento são informativas e ajudam a monitorizar se cada função está pronta para utilização generalizada. Além disso, a fase de lançamento
DISABLED
permite-lhe desativar uma função personalizada. Para mais informações sobre as fases de lançamento, consulte o artigo Testar e implementar.Consola
Algumas funções predefinidas contêm autorizações descontinuadas ou autorizações que, de outra forma, não são permitidas em funções personalizadas. Se tentar criar uma função personalizada com base numa destas funções predefinidas, a função personalizada omite as autorizações descontinuadas e restritas.
Para criar uma nova função personalizada de raiz:
Na Google Cloud consola, aceda à página Funções.
Use a lista pendente na parte superior da página para selecionar a organização ou o projeto no qual quer criar uma função.
Clique em Criar função.
Introduza um título, uma descrição, um ID e um estágio de lançamento da função para a função. Não é possível alterar o ID da função após a criação da função.
Clique em Adicionar autorizações.
Selecione as autorizações que quer incluir na função e clique em Adicionar autorizações. Use as listas pendentes Todos os serviços e Todos os tipos para filtrar e selecionar autorizações por serviços e tipos.
Criar uma função personalizada com base numa função predefinida existente:
- Na Google Cloud consola, aceda à página Funções.
- Selecione a organização ou o projeto no qual quer criar uma função.
- Selecione as funções nas quais quer basear a nova função personalizada.
- Clique em Criar função a partir da seleção.
- Introduza um título, uma descrição, um ID e um estágio de lançamento da função para a função. Não é possível alterar o ID da função após a criação da função.
- Desmarque as autorizações que quer excluir da função.
- Clique em Adicionar autorizações para incluir autorizações.
- Clique em Criar.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Use o comando
gcloud iam roles create
para criar novas funções personalizadas. Pode usar este comando de duas formas:-
Ao fornecer um ficheiro YAML que contém a definição da função
-
Usando flags para especificar a definição de função
Quando cria uma função personalizada, tem de especificar se se aplica ao nível da organização ou ao nível do projeto através das flags
--organization=ORGANIZATION_ID
ou--project=PROJECT_ID
. Cada exemplo abaixo cria uma função personalizada ao nível do projeto.Uma função personalizada só pode conter autorizações suportadas em funções personalizadas. Se a função personalizada contiver outras autorizações, o comando falha.
Para criar uma função personalizada com um ficheiro YAML:
Crie um ficheiro YAML que contenha a definição da sua função personalizada. O ficheiro tem de ser estruturado da seguinte forma:
title: ROLE_TITLE description: ROLE_DESCRIPTION stage: LAUNCH_STAGE includedPermissions: - PERMISSION_1 - PERMISSION_2
Cada valor do marcador de posição é descrito abaixo:
-
ROLE_TITLE
é um título intuitivo para a função, como"My Company Admin"
. -
ROLE_DESCRIPTION
é uma breve descrição da função, como"My custom role description"
. -
LAUNCH_STAGE
indica a fase de uma função no ciclo de vida de lançamento, comoALPHA
,BETA
ouGA
. -
PERMISSION_1
ePERMISSION_2
são autorizações a incluir na função personalizada, comoiam.roles.get
. Não pode usar carateres universais (*
) nos nomes das autorizações.
Guarde o ficheiro YAML e, em seguida, execute um dos seguintes comandos:
-
Para criar uma função personalizada ao nível da organização, execute o seguinte comando:
gcloud iam roles create ROLE_ID--organization=ORGANIZATION_ID \ --file=YAML_FILE_PATH
-
Para criar uma função personalizada ao nível do projeto, execute o seguinte comando:
gcloud iam roles create ROLE_ID --project=PROJECT_ID \ --file=YAML_FILE_PATH
Cada valor do marcador de posição é descrito abaixo:
-
ROLE_ID
é o nome da função, comomyCompanyAdmin
. -
ORGANIZATION_ID
é o ID numérico da organização, como123456789012
. -
PROJECT_ID
é o nome do projeto, comomy-project
. -
YAML_FILE_PATH
é o caminho para a localização do ficheiro YAML que contém a definição de função personalizada.
Exemplos
O ficheiro YAML de exemplo seguinte demonstra como criar uma definição de função:
title: "My Company Admin" description: "My custom role description." stage: "ALPHA" includedPermissions: - iam.roles.get - iam.roles.list
O exemplo seguinte demonstra como criar uma função ao nível da organização usando o ficheiro YAML:
gcloud iam roles create myCompanyAdmin --organization=123456789012 \ --file=my-role-definition.yaml
Se a função tiver sido criada com êxito, o resultado do comando é semelhante ao seguinte:
Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
O exemplo seguinte demonstra como criar uma função ao nível do projeto usando o ficheiro YAML:
gcloud iam roles create myCompanyAdmin --project=my-project \ --file=my-role-definition.yaml
Se a função tiver sido criada com êxito, o resultado do comando é semelhante ao seguinte:
Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Para criar uma função personalizada com flags:
Execute um dos seguintes comandos:
-
Para criar uma função personalizada ao nível da organização, execute o seguinte comando:
gcloud iam roles create ROLE_ID--organization=ORGANIZATION_ID \ --title=ROLE_TITLE --description=ROLE_DESCRIPTION \ --permissions="PERMISSIONS_LIST" --stage=LAUNCH_STAGE
-
Para criar uma função personalizada ao nível do projeto, execute o seguinte comando:
gcloud iam roles create ROLE_ID --project=PROJECT_ID \ --title=ROLE_TITLE --description=ROLE_DESCRIPTION \ --permissions="PERMISSIONS_LIST" --stage=LAUNCH_STAGE
Cada valor do marcador de posição é descrito abaixo:
-
ROLE_ID
é o nome da função, comomyCompanyAdmin
. -
ORGANIZATION_ID
é o ID numérico da organização, como123456789012
. -
PROJECT_ID
é o nome do projeto, comomy-project
. -
ROLE_TITLE
é um título intuitivo para a função, como"My Company Admin"
. -
ROLE_DESCRIPTION
é uma breve descrição da função, como"My custom role description."
. -
PERMISSIONS_LIST
contém uma lista separada por vírgulas das autorizações que quer incluir na função personalizada. Por exemplo:iam.roles.get,iam.roles.list
. Não pode usar carateres universais (*
) em nomes de autorizações. -
LAUNCH_STAGE
indica a fase de uma função no ciclo de vida de lançamento, comoALPHA
,BETA
ouGA
.
Exemplos
O exemplo seguinte demonstra como criar uma função ao nível da organização através de flags:
gcloud iam roles create myCompanyAdmin --organization=123456789012 \ --title="My Company Admin" --description="My custom role description." \ --permissions="iam.roles.get,iam.roles.list" --stage=ALPHA
Se a função tiver sido criada com êxito, o resultado do comando é semelhante ao seguinte:
Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
O exemplo seguinte demonstra como criar uma função ao nível do projeto usando flags:
gcloud iam roles create myCompanyAdmin --project=my-project \ --title="My Company Admin" --description="My custom role description." \ --permissions="iam.roles.get,iam.roles.list" --stage=ALPHA
Se a função tiver sido criada com êxito, o resultado do comando é semelhante ao seguinte:
Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
-
RESOURCE_TYPE
: o tipo de recurso cujas funções personalizadas quer gerir. Use o valorprojects
ouorganizations
.RESOURCE_ID
: o ID do projeto ou o ID da organização cujas funções personalizadas quer gerir. Os IDs dos projetos são strings alfanuméricas, comomy-project
. Os IDs das organizações são numéricos, como123456789012
.ROLE_ID
: o nome da função, comomyCompanyAdmin
.ROLE_TITLE
: o título legível por humanos da função. Por exemplo,My Company Admin
.ROLE_DESCRIPTION
: uma descrição da função. Por exemplo,"The company admin role allows company admins to access important resources"
.-
PERMISSION_1
ePERMISSION_2
: as autorizações que quer incluir na função. Por exemplo,storage.objects.update
. Não pode usar carateres universais (*
) nos nomes das autorizações.Uma função personalizada só pode conter autorizações suportadas em funções personalizadas. Se a função personalizada contiver outras autorizações, o pedido falha.
LAUNCH_STAGE
: a fase de lançamento atual da função. Este campo pode conter um dos seguintes valores:EAP
,ALPHA
,BETA
,GA
,DEPRECATED
ouDISABLED
.
C++
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API C++ IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
C#
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API C# IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Go
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Go IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Java
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Java IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Python
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Python IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
REST
O método
roles.create
cria uma função personalizada num projeto ou numa organização.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
Método HTTP e URL:
POST https://iam.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/roles
Corpo JSON do pedido:
{ "roleId": "ROLE_ID", "role": { "title": "ROLE_TITLE", "description": "ROLE_DESCRIPTION", "includedPermissions": [ "PERMISSION_1", "PERMISSION_2" ], "stage": "LAUNCH_STAGE" } }
Para enviar o seu pedido, expanda uma destas opções:
A resposta contém a função que criou.
{ "name": "projects/myProject/roles/myCompanyAdmin", "title": "My Company Admin", "description": "My custom role description.", "includedPermissions": [ "iam.roles.get", "iam.roles.list" ], "etag": "BwWox/JbaZw=" }
Edite uma função personalizada existente
Um padrão comum para atualizar os metadados de um recurso, como uma função personalizada, é o padrão ler-modificar-gravar. Com este padrão, lê o estado atual da função, atualiza os dados localmente e, em seguida, envia os dados modificados para escrita.
O padrão de leitura-modificação-gravação pode causar um conflito se dois ou mais processos independentes tentarem a sequência em simultâneo. Por exemplo, se dois proprietários de um projeto tentarem fazer alterações conflituosas a uma função ao mesmo tempo, algumas alterações podem falhar. A IAM resolve este problema através de uma propriedade
etag
nas funções personalizadas. Esta propriedade é usada para verificar se a função personalizada foi alterada desde o último pedido. Quando faz um pedido ao IAM com um valor de etag, o IAM compara o valor de etag no pedido com o valor de etag existente associado à função personalizada. Escreve a alteração apenas se os valores etag corresponderem.Quando atualiza uma função, primeiro, recebe a função através de
roles.get()
, atualiza a função e, de seguida, escreve a função atualizada através deroles.patch()
. Use o valor etag ao definir a função apenas se a função correspondente emroles.get()
contiver um valor etag.Consola
Na Google Cloud consola, aceda à página Funções.
Use a lista pendente na parte superior da página para selecionar o projeto ou a organização que contém a função que quer editar.
Clique numa função personalizada.
Clique em Editar função.
Para atualizar os metadados da função, edite o Título, a Descrição ou a Fase de lançamento da função.
Para atualizar as autorizações da função, faça o seguinte:
- Clique em Adicionar autorizações para adicionar novas autorizações à função.
- Desmarque as autorizações para as remover da função.
Clique em Atualizar para guardar a função editada.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Use o comando
gcloud iam roles update
para atualizar funções personalizadas. Pode usar este comando de duas formas:-
Ao fornecer um ficheiro YAML que contenha a definição de função atualizada
-
Usando flags para especificar a definição de função atualizada
Quando atualiza uma função personalizada, tem de especificar se se aplica ao nível da organização ou ao nível do projeto através das flags
--organization=ORGANIZATION_ID
ou--project=PROJECT_ID
. Cada exemplo abaixo cria uma função personalizada ao nível do projeto.Para atualizar uma função personalizada através de um ficheiro YAML:
Obtenha a definição atual da função executando um dos seguintes comandos:
-
Para obter a definição de função de uma função personalizada ao nível da organização, execute o seguinte comando:
gcloud iam roles describe ROLE_ID --organization=ORGANIZATION_ID
-
Para obter a definição de função de uma função personalizada ao nível do projeto, execute o seguinte comando:
gcloud iam roles describe ROLE_ID --project=PROJECT_ID
Cada valor do marcador de posição é descrito abaixo:
-
ROLE_ID
é o nome da função a atualizar, comomyCompanyAdmin
. -
ORGANIZATION_ID
é o ID numérico da organização, como123456789012
. -
PROJECT_ID
é o nome do projeto, comomy-project
.
O comando
describe
devolve a definição da função e inclui um valoretag
que identifica exclusivamente a versão atual da função. O valoretag
deve ser facultado na definição de função atualizada para garantir que as alterações de funções simultâneas não são substituídas.O comando
describe
devolve o seguinte resultado:description: ROLE_DESCRIPTION etag: ETAG includedPermissions: - PERMISSION_1 - PERMISSION_2 name: ROLE_NAME stage: LAUNCH_STAGE title: ROLE_TITLE
Cada valor do marcador de posição é descrito abaixo:
-
ROLE_DESCRIPTION
é uma breve descrição da função, como"My custom role description"
. -
ETAG
é o identificador exclusivo da versão atual da função, comoBwVkBkbfr70=
. -
PERMISSION_1
ePERMISSION_2
são autorizações a incluir na função personalizada, comoiam.roles.get
. Não pode usar carateres universais (*
) nos nomes das autorizações. -
ROLE_NAME
é o nome completo da função, incluindo todos os prefixosorganizations/
,projects/
ouroles/
. Por exemplo,organizations/123456789012/roles/myCompanyAdmin.
-
LAUNCH_STAGE
indica a fase de uma função no ciclo de vida de lançamento, comoALPHA
,BETA
ouGA
. -
ROLE_TITLE
é um título amigável para a função, como"My Company Admin"
.
Para atualizar a função, inclua a definição da função gerada num ficheiro YAML ou atualize o ficheiro YAML original com o valor
etag
gerado.Considere o seguinte ficheiro YAML de exemplo, que contém o resultado do comando
describe
para uma função ao nível do projeto e adiciona duas autorizações do Cloud Storage:description: My custom role description. etag: BwVkBkbfr70= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Guarde o ficheiro YAML e, em seguida, execute um dos seguintes comandos:
-
Para atualizar uma função ao nível da organização, execute o seguinte comando:
gcloud iam roles update ROLE_ID--organization=ORGANIZATION_ID \ --file=YAML_FILE_PATH
-
Para atualizar uma função ao nível do projeto, execute o seguinte comando:
gcloud iam roles update ROLE_ID --project=PROJECT_ID \ --file=YAML_FILE_PATH
Cada valor do marcador de posição é descrito abaixo:
-
ROLE_ID
é o nome da função a atualizar, comomyCompanyAdmin
. -
ORGANIZATION_ID
é o ID numérico da organização, como123456789012
. -
PROJECT_ID
é o nome do projeto, comomy-project-id
. -
YAML_FILE_PATH
é o caminho para a localização do ficheiro YAML que contém a definição de função personalizada atualizada.
Exemplos
O exemplo seguinte demonstra como atualizar uma função ao nível da organização através de um ficheiro YAML:
gcloud iam roles update ROLE_ID --organization=ORGANIZATION_ID \ --file=YAML_FILE_PATH
-
Para atualizar uma função ao nível do projeto, execute o seguinte comando:
gcloud iam roles update ROLE_ID --project=PROJECT_ID \ --file=YAML_FILE_PATH
Cada valor do marcador de posição é descrito abaixo:
-
ROLE_ID
é o nome da função a atualizar, comomyCompanyAdmin
. -
ORGANIZATION_ID
é o ID numérico da organização, como123456789012
. -
PROJECT_ID
é o nome do projeto, comomy-project
. -
YAML_FILE_PATH
é o caminho para a localização do seu ficheiro YAML que contém a definição de função personalizada atualizada.
Exemplos
O exemplo seguinte demonstra como atualizar uma função ao nível da organização através de um ficheiro YAML:
gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --file=my-role-definition.yaml
Se a função tiver sido atualizada com êxito, o resultado do comando é semelhante ao seguinte:
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
O exemplo seguinte demonstra como atualizar uma função ao nível do projeto através de um ficheiro YAML:
gcloud iam roles update myCompanyAdmin --project=my-project \ --file=my-role-definition.yaml
Se a função tiver sido atualizada com êxito, o resultado do comando é semelhante ao seguinte:
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Para atualizar uma função personalizada através de flags:
Cada parte de uma definição de função pode ser atualizada através de uma flag correspondente. Consulte o tópico
gcloud iam roles update
para ver uma lista de todas as flags possíveis.Pode usar as seguintes flags para adicionar ou remover autorizações:
-
--add-permissions=PERMISSIONS
: adiciona uma ou mais autorizações separadas por vírgulas à função. Não pode usar carateres universais (*
) nos nomes das autorizações. -
--remove-permissions=PERMISSIONS
: remove uma ou mais autorizações separadas por vírgulas da função. Não pode usar carateres universais (*
) nos nomes das autorizações.
Em alternativa, pode simplesmente especificar as novas autorizações através da flag
--permissions=PERMISSIONS
e fornecer uma lista de autorizações separada por vírgulas para substituir a lista de autorizações existente.Para atualizar outras partes da definição de função, execute um dos seguintes comandos:
-
Para atualizar uma função ao nível da organização, execute o seguinte comando:
gcloud iam roles update ROLE_ID--organization=ORGANIZATION_ID \ --title=ROLE_TITLE --description=ROLE_DESCRIPTION \ --stage=LAUNCH_STAGE
-
Para atualizar uma função ao nível do projeto, execute o seguinte comando:
gcloud iam roles update ROLE_ID --project=PROJECT_ID \ --title=ROLE_TITLE --description=ROLE_DESCRIPTION \ --stage=LAUNCH_STAGE
Cada valor do marcador de posição é descrito abaixo:
-
ROLE_ID
é o nome da função, comomyCompanyAdmin
. -
ORGANIZATION_ID
é o ID numérico da organização, como123456789012
. -
PROJECT_ID
é o nome do projeto, comomy-project
. -
ROLE_TITLE
é um título amigável para a função, como"My Company Admin"
. -
ROLE_DESCRIPTION
é uma breve descrição da função, como"My custom role description."
. -
LAUNCH_STAGE
indica a fase de uma função no ciclo de vida de lançamento, comoALPHA
,BETA
ouGA
.
Exemplos
O exemplo seguinte demonstra como adicionar autorizações a uma função ao nível da organização através de flags:
gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --add-permissions="storage.buckets.get,storage.buckets.list"
Se a função tiver sido atualizada com êxito, o resultado do comando é semelhante ao seguinte:
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
O exemplo seguinte demonstra como adicionar autorizações a uma função ao nível do projeto através de flags:
gcloud iam roles update myCompanyAdmin --project=my-project \ --add-permissions="storage.buckets.get,storage.buckets.list"
Se a função tiver sido atualizada com êxito, o resultado do comando é semelhante ao seguinte:
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
-
RESOURCE_TYPE
: o tipo de recurso cujas funções personalizadas quer gerir. Use o valorprojects
ouorganizations
.RESOURCE_ID
: o ID do projeto ou o ID da organização cujas funções personalizadas quer gerir. Os IDs dos projetos são strings alfanuméricas, comomy-project
. Os IDs das organizações são numéricos, como123456789012
.ROLE_NAME
: O nome completo da função, incluindo todos os prefixosorganizations/
,projects/
ouroles/
. Por exemplo,organizations/123456789012/roles/myCompanyAdmin
.ETAG
: um identificador de uma versão da função. Inclua este campo para evitar a substituição de outras alterações de funções.ROLE_TITLE
: o título legível por humanos da função. Por exemplo,My Company Admin
.ROLE_DESCRIPTION
: uma descrição da função. Por exemplo,"The company admin role allows company admins to access important resources"
.PERMISSION_1
ePERMISSION_2
: as autorizações que quer incluir na função. Por exemplo,storage.objects.update
. Não pode usar carateres universais (*
) nos nomes das autorizações.LAUNCH_STAGE
: a fase de lançamento atual da função. Este campo pode conter um dos seguintes valores:EAP
,ALPHA
,BETA
,GA
,DEPRECATED
ouDISABLED
.
C++
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API C++ IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
C#
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API C# IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Go
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Go IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Java
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Java IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Python
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Python IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
REST
O método
roles.patch
atualiza uma função personalizada num projeto ou numa organização.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
Obrigatório:
Recomendado:
Opcional (defina um ou mais dos seguintes valores):
Método HTTP e URL:
PATCH https://iam.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/roles
Corpo JSON do pedido:
{ "roleId": "ROLE_NAME", "title": "ROLE_TITLE", "description": "ROLE_DESCRIPTION", "includedPermissions": [ "PERMISSION_1", "PERMISSION_2" ], "stage": "LAUNCH-STAGE", "etag": "ETAG" }
Para enviar o seu pedido, expanda uma destas opções:
A resposta contém uma definição de função abreviada que inclui o nome da função, os campos que atualizou e um etag que identifica a versão atual da função.
{ "name": "projects/test-project-1000092/roles/myCompanyAdmin", "title": "My Updated Company Admin", "includedPermissions": [ "storage.buckets.get", "storage.buckets.list" ], "stage": "BETA", "etag": "BwWoyDpAxBc=" }
Desative uma função personalizada
Pode desativar uma função personalizada alterando a respetiva fase de lançamento para
DISABLED
. Quando uma função é desativada, todas as associações de funções relacionadas com a função são inativadas, o que significa que a concessão da função a um utilizador não tem qualquer efeito.Consola
Na Google Cloud consola, aceda à página Funções.
Clique na lista pendente "Selecionar um projeto" na parte superior da página.
Selecione a sua organização ou projeto.
Selecione uma função personalizada e clique em Desativar.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Use o comando
gcloud iam roles update
para desativar uma função personalizada definindo a respetiva fase de lançamento comoDISABLED
.Conforme descrito no separador gcloud da secção Editar uma função personalizada existente, pode atualizar uma função personalizada existente das seguintes duas formas:
-
Ao fornecer um ficheiro YAML que contenha a definição de função atualizada
-
Usando flags para especificar a definição de função atualizada
A forma mais fácil de desativar uma função personalizada existente é usar a flag
--stage
e defini-la comoDISABLED
. Execute um dos seguintes comandos:-
Para desativar uma função ao nível da organização, execute o seguinte comando:
gcloud iam roles update ROLE_ID--organization=ORGANIZATION_ID \ --stage=DISABLED
-
Para desativar uma função ao nível do projeto, execute o seguinte comando:
gcloud iam roles update ROLE_ID --project=PROJECT_ID \ --stage=DISABLED
Cada valor do marcador de posição é descrito abaixo:
-
ROLE_ID
é o nome da função, comomyCompanyAdmin
. -
ORGANIZATION_ID
é o ID numérico da organização, como123456789012
. -
PROJECT_ID
é o nome do projeto, comomy-project
.
Exemplos
O exemplo seguinte demonstra como desativar uma função ao nível da organização:
gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --stage=DISABLED
Se a função tiver sido atualizada com êxito, o resultado do comando é semelhante ao seguinte:
description: My custom role description. etag: BwVkB5NLIQw= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: DISABLED title: My Company Admin
O exemplo seguinte demonstra como desativar uma função ao nível do projeto:
gcloud iam roles update myCompanyAdmin --project=my-project \ --stage=DISABLED
Se a função tiver sido atualizada com êxito, o resultado do comando é semelhante ao seguinte:
description: My custom role description. etag: BwVkB5NLIQw= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project/roles/myCompanyAdmin stage: DISABLED title: My Company Admin
-
RESOURCE_TYPE
: o tipo de recurso cujas funções personalizadas quer gerir. Use o valorprojects
ouorganizations
.RESOURCE_ID
: o ID do projeto ou o ID da organização cujas funções personalizadas quer gerir. Os IDs dos projetos são strings alfanuméricas, comomy-project
. Os IDs das organizações são numéricos, como123456789012
.ROLE_NAME
: O nome completo da função, incluindo todos os prefixosorganizations/
,projects/
ouroles/
. Por exemplo,organizations/123456789012/roles/myCompanyAdmin
.ETAG
: um identificador de uma versão da função. Inclua este campo para evitar a substituição de outras alterações de funções.
C++
Atualize o campo
stage
da função paraDISABLED
.C#
Atualize o campo
stage
da função paraDISABLED
.Go
Atualize o campo
stage
da função paraDISABLED
.Java
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Java IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Python
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Python IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
REST
O método
roles.patch
permite-lhe alterar a fase de lançamento de uma função personalizada paraDISABLED
, o que desativa a função.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
Método HTTP e URL:
PATCH https://iam.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/roles
Corpo JSON do pedido:
{ "roleId": "ROLE_NAME", "stage": DISABLED, "etag": "ETAG" }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/test-project-1000092/roles/myCompanyAdmin", "stage": "DISABLED", "etag": "BwWoyDpAxBc=" }
Liste funções
Pode listar todas as funções personalizadas criadas no seu projeto ou organização.
Consola
Na Google Cloud consola, aceda à página Funções.
Todas as funções personalizadas para a organização ou o projeto que selecionou são apresentadas na página.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Use o comando
gcloud iam roles list
para listar as funções personalizadas e as funções predefinidas de um projeto ou uma organização:-
Para apresentar uma lista de funções personalizadas ao nível da organização, execute o seguinte comando:
gcloud iam roles list --organization=ORGANIZATION_ID
-
Para apresentar uma lista de funções personalizadas ao nível do projeto, execute o seguinte comando:
gcloud iam roles list --project=PROJECT_ID
Cada valor do marcador de posição é descrito abaixo:
-
ORGANIZATION_ID
é o ID numérico da organização, como123456789012
. -
PROJECT_ID
é o nome do projeto, comomy-project
.
Para listar as funções eliminadas, também pode especificar a flag
--show-deleted
.Execute o seguinte comando para listar as funções predefinidas:
gcloud iam roles list
-
RESOURCE_TYPE
: o tipo de recurso cujas funções personalizadas quer gerir. Use o valorprojects
ouorganizations
.RESOURCE_ID
: o ID do projeto ou o ID da organização cujas funções personalizadas quer gerir. Os IDs dos projetos são strings alfanuméricas, comomy-project
. Os IDs das organizações são numéricos, como123456789012
.ROLE_VIEW
: opcional. As informações a incluir para as funções devolvidas. Para incluir as autorizações das funções, defina este campo comoFULL
. Para excluir as autorizações das funções, defina este campo comoBASIC
. O valor predefinido éBASIC
.PAGE_SIZE
: opcional. O número de funções a incluir na resposta. O valor predefinido é 300 e o valor máximo é 1000. Se o número de funções for superior ao tamanho da página, a resposta contém um token de paginação que pode usar para obter a página seguinte de resultados.NEXT_PAGE_TOKEN
: opcional. O token de paginação devolvido numa resposta anterior deste método. Se for especificado, a lista de funções começa onde o pedido anterior terminou.
C++
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API C++ IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
C#
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API C# IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Go
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Go IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Java
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Java IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Python
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Python IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
REST
O método
roles.list
lista todas as funções personalizadas num projeto ou numa organização.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
Método HTTP e URL:
GET https://iam.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/roles?view=ROLE_VIEW&pageSize=PAGE_SIZE&pageToken=NEXT_PAGE_TOKEN
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "roles": [ { "name": "projects/my-project/roles/customRole1", "title": "First Custom Role", "description": "Created on: 2020-06-01", "etag": "BwWiPg2fmDE=" }, { "name": "projects/my-project/roles/customRole2", "title": "Second Custom Role", "description": "Created on: 2020-06-07", "etag": "BwWiuX53Wi0=" } ] }
Elimine uma função personalizada
Pode eliminar qualquer função personalizada no seu projeto ou organização.
Consola
Na Google Cloud consola, aceda à página Funções.
Selecione a função que quer eliminar e clique em delete Eliminar na parte superior da página.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Use o comando
gcloud iam roles delete
para eliminar uma função personalizada:-
Para eliminar uma função personalizada ao nível da organização, execute o seguinte comando:
gcloud iam roles delete ROLE_ID --organization=ORGANIZATION_ID
-
Para eliminar uma função personalizada ao nível do projeto, execute o seguinte comando:
gcloud iam roles delete ROLE_ID --project=PROJECT_ID
Cada valor do marcador de posição é descrito abaixo:
-
ROLE_ID
é o nome da função, comomyCompanyAdmin
. -
ORGANIZATION_ID
é o ID numérico da organização, como123456789012
. -
PROJECT_ID
é o nome do projeto, comomy-project
.
A função não é incluída em
gcloud iam roles list
, a menos que a flag--show-deleted
seja incluída. As funções eliminadas são indicadas pelo blocodeleted: true
numa respostalist
, como:--- deleted: true description: My custom role description. etag: BwVkB5NLIQw= name: projects/my-project/roles/myCompanyAdmin title: My Company Admin ---
-
ROLE_NAME
: O nome completo da função, incluindo todos os prefixosorganizations/
,projects/
ouroles/
. Por exemplo,organizations/123456789012/roles/myCompanyAdmin
.
C++
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API C++ IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
C#
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API C# IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Go
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Go IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Java
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Java IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Python
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Python IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
REST
O método
roles.delete
elimina uma função personalizada num projeto ou numa organização.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
Método HTTP e URL:
DELETE https://iam.googleapis.com/v1/ROLE_NAME
Para enviar o seu pedido, expanda uma destas opções:
A resposta contém a definição da função que foi eliminada.
{ "name": "projects/my-project/roles/myCompanyAdmin", "title": "My Company Admin", "description": "My custom role description.", "includedPermissions": [ "iam.roles.get", "iam.roles.list" ], "etag": "BwWiPg2fmDE=", "deleted": true }
Quando uma função é eliminada, todas as associações de funções que fazem referência à função permanecem nas suas políticas de autorização, mas não têm efeito. Pode anular a eliminação de uma função no prazo de 7 dias. Durante este período de 7 dias, a Google Cloud consola mostra que a função foi eliminada. Também pode listar funções eliminadas através de programação, mas estas são omitidas por predefinição.
A eliminação permanente da função está agendada para 7 a 14 dias após o pedido inicial de eliminação da função. Neste momento, a função deixa de contar para o limite de 300 funções personalizadas por organização ou 300 funções personalizadas por projeto.
Depois de a função ser agendada para eliminação permanente, Google Cloud inicia o processo para eliminar permanentemente a função. Este processo demora 30 dias. Durante este período de 30 dias, a função e todas as associações relacionadas são removidas permanentemente, e não pode criar uma nova função com o mesmo ID de função.
Após a eliminação permanente da função, até 44 dias após o pedido de eliminação inicial, pode criar uma nova função com o mesmo ID da função.
Anule a eliminação de uma função personalizada
A anulação da eliminação de uma função devolve-a ao estado anterior.
Só é possível anular a eliminação de funções no prazo de 7 dias. Após 7 dias, Google Cloud inicia o processo para eliminar permanentemente a função. Este processo de eliminação permanente pode demorar até 30 dias. Depois de uma função ser eliminada permanentemente, todas as associações de funções que fazem referência à função são removidas, e pode criar uma nova função com o mesmo ID da função.
Consola
Na Google Cloud consola, aceda à página Funções.
Localize a função que quer restaurar, clique no ícone Mais no final da linha e clique em Restaurar.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Use o comando
gcloud iam roles undelete
para anular a eliminação de uma função personalizada:-
Para anular a eliminação de uma função personalizada ao nível da organização, execute o seguinte comando:
gcloud iam roles undelete ROLE_ID --organization=ORGANIZATION_ID
-
Para anular a eliminação de uma função personalizada ao nível do projeto, execute o seguinte comando:
gcloud iam roles undelete ROLE_ID --project=PROJECT_ID
Cada valor do marcador de posição é descrito abaixo:
-
ROLE_ID
é o nome da função, comomyCompanyAdmin
. -
ORGANIZATION_ID
é o ID numérico da organização, como123456789012
. -
PROJECT_ID
é o nome do projeto, comomy-project
.
Exemplos
O exemplo seguinte demonstra como anular a eliminação de uma função personalizada ao nível da organização:
gcloud iam roles undelete myCompanyAdmin --organization=123456789012
Se a função tiver sido anulada com êxito, o resultado do comando é semelhante ao seguinte:
description: My custom role description. etag: BwVkCAx9W6w= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
O exemplo seguinte demonstra como anular a eliminação de uma função personalizada ao nível do projeto:
gcloud iam roles undelete myCompanyAdmin --project=my-project
Se a função tiver sido anulada com êxito, o resultado do comando é semelhante ao seguinte:
description: My custom role description. etag: BwVkCAx9W6w= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
-
ROLE_NAME
: O nome completo da função, incluindo todos os prefixosorganizations/
,projects/
ouroles/
. Por exemplo,organizations/123456789012/roles/myCompanyAdmin
.ETAG
: um identificador de uma versão da função. Inclua este campo para evitar a substituição de outras alterações de funções.
C++
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API C++ IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
C#
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API C# IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Go
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Go IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Java
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Java IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
Python
Para saber como instalar e usar a biblioteca cliente para a IAM, consulte o artigo Bibliotecas cliente da IAM. Para mais informações, consulte a documentação de referência da API Python IAM.
Para se autenticar no IAM, configure as Credenciais padrão da aplicação. Para mais informações, consulte a secção Antes de começar.
REST
O método
roles.undelete
anula a eliminação de uma função personalizada num projeto ou numa organização.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
Método HTTP e URL:
POST https://iam.googleapis.com/v1/ROLE_NAME:undelete
Corpo JSON do pedido:
{ "etag": "ETAG" }
Para enviar o seu pedido, expanda uma destas opções:
A resposta contém a definição da função que foi restaurada.
{ "name": "projects/my-project/roles/myCompanyAdmin", "title": "My Company Admin", "description": "My custom role description.", "includedPermissions": [ "iam.roles.get", "iam.roles.list" ], "etag": "BwWiPg2fmDE=" }
O que se segue?
- Saiba como conceder funções a principais.
- Explore como pode usar as recomendações de funções para restringir as autorizações dos principais.
- Saiba mais sobre as concessões de funções condicionais, que concedem uma função apenas se forem cumpridas condições específicas.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-08-20 UTC.