Como criar e gerenciar contas de serviço

Nesta página, você aprende a criar e gerenciar contas de serviço com a Google Cloud Identity and Access Management API, o Console do Google Cloud Platform e a ferramenta de linha de comando gcloud.

Quando você cria um novo projeto do Cloud, uma conta de serviço do Compute Engine e uma do App Engine são automaticamente criadas pelo Google Cloud Platform nesse projeto. Crie até 98 contas de serviço para o projeto e controle o acesso aos seus recursos.

Antes de começar

Como criar uma conta de serviço

A criação de uma conta de serviço é semelhante à adição de um membro ao projeto, mas essa conta pertence aos aplicativos e não a um usuário final individual.

gcloud

Para criar uma conta de serviço, execute o seguinte comando:

gcloud iam service-accounts create my-sa-123 --display-name "my service account"

A saída desse comando é a conta de serviço, que é semelhante à seguinte:

Created service account [my-sa-123].

API

O snippet de código a seguir cria uma nova conta de serviço chamada my service account no projeto my-project-123 usando o método serviceAccounts.create().

Na API, envie uma solicitação POST para:

https://iam.googleapis.com/v1/projects/my-project-123/serviceAccounts

O corpo da solicitação precisa conter as propriedades necessárias para criar uma nova conta de serviço. Forneça um código e um nome de exibição para essa conta. O código é usado para criar o endereço de e-mail da conta. O nome de exibição dela pode ser modificado no futuro mas, uma vez criado, não é possível modificar o código.

{
    "accountId": "my-sa-123",
    "serviceAccount": {
        "displayName": "my service account",
    }
}

Resposta:

{
    "name": "projects/my-project-123/serviceAccounts/my-sa-123@my-project-123.iam.gserviceaccount.com",
    "projectId": "my-project-123",
    "uniqueId": "113948692397867021414",
    "email": "my-sa-123@my-project-123.iam.gserviceaccount.com",
    "displayName": "my service account",
    "etag": "BwUp3rVlzes=",
    "oauth2ClientId": "117249000288840666939"
}

Console

  1. Abra a página Contas de serviço no Console do GCP.

    Abrir a página "Contas de serviço"

  2. Clique em Selecionar um projeto.

  3. Selecione o projeto e clique em Abrir.
  4. Clique em Criar conta de serviço.
  5. Insira um nome de conta de serviço, selecione um papel que queira atribuir a ela e clique em Criar.

Depois de criar uma conta de serviço, atribua a ela um ou mais papéis para que ela possa agir no seu nome.

Como listar contas de serviço

Ao listar contas de serviço, especifique parâmetros para limitar o número de contas a serem incluídas na resposta. Use ListServiceAccountsResponse.next_page_token em uma solicitação subsequente para listar as contas de serviço restantes.

Use esse método para auditar contas de serviço e chaves ou criar ferramentas personalizadas para gerenciar contas de serviço.

gcloud

Para listar contas de serviço, execute o seguinte comando:

gcloud iam service-accounts list

A saída desse comando é a lista de todas as contas de serviço no projeto, que será semelhante à seguinte:

NAME                                    EMAIL
my service account 1                    my-sa-1@my-project-123.iam.gserviceaccount.com
my service account 2                    my-sa-2@my-project-123.iam.gserviceaccount.com
. . .

API

O código a seguir lista todas as contas de serviço em my-project-123:

Solicitação:

GET https://iam.googleapis.com/v1/projects/my-project-123/serviceAccounts

Resposta:

{
    "accounts": [
    {
        "name": "projects/my-project-123/serviceAccounts/sa-1@my-project-123.iam.gserviceaccount.com",
        "projectId": "my-project-123",
        "uniqueId": "108979773878059201436",
        "email": "sa-1@my-project-123.iam.gserviceaccount.com",
        "displayName": "service account 1",
        "etag": "BwUpTsLVUkQ=",
        "oauth2ClientId": "102240834887833340852"
    },
    {
        "name": "projects/my-project-123/serviceAccounts/835469197146-compute@developer.gserviceaccount.com",
        "projectId": "my-project-123",
        "uniqueId": "117077288574069305058",
        "email": "835469197146-compute@developer.gserviceaccount.com",
        "displayName": "Compute Engine Default Service Account",
        "etag": "BwUomgwvClk=",
        "oauth2ClientId": "101236303957024449895"
    },
    {
        "name": "projects/my-project-123/serviceAccounts/sa-2@my-project-123.iam.gserviceaccount.com",
        "projectId": "my-project-123",
        "uniqueId": "109687856497850065438",
        "email": "sa-2@my-project-123.iam.gserviceaccount.com",
        "displayName": "service account 2",
        "etag": "BwUqKUzcGRM=",
        "oauth2ClientId": "105236325228757713905"
    },

    . . .

    ]
}

Console

  1. Abra a página Contas de serviço no Console do GCP.

    Abrir a página "Contas de serviço"

  2. Clique em Selecionar um projeto.

  3. Selecione o projeto e clique em Abrir. Todas as contas de serviço estão listadas na página "Contas de serviço".

Como renomear uma conta de serviço

O nome de exibição de uma conta de serviço é usado para capturar outras informações sobre ela, como o propósito ou uma pessoa de contato da conta.

gcloud

Para renomear uma conta de serviço:

gcloud iam service-accounts update \
    my-sa-123@my-project-123.iam.gserviceaccount.com \
    --display-name "updated service account"

A saída desse comando é a conta de serviço renomeada, que será semelhante à seguinte:

displayName: updated service account
email: my-sa-123@my-project-123.iam.gserviceaccount.com
etag: BwUqQpHDCw8=
name: projects/my-project-123/serviceAccounts/my-sa-123@my-project-123.iam.gserviceaccount.com
oauth2ClientId: '112984177383228986143'
projectId: my-project-123
uniqueId: '112984177383228986143'

API

Modifique o nome de exibição de uma conta de serviço com o método serviceAccounts.update().

Solicitação:

PUT https://iam.googleapis.com/v1/projects/my-project-123/serviceAccounts/my-sa-123@my-project-123.iam.gserviceaccount.com

O corpo da solicitação precisa conter o novo nome de exibição, o código do projeto, o código exclusivo e o e-mail da conta de serviço.

{
    "displayName":"my service account",
    "etag":"BwUpVKjgNtE=",
    "projectId":"my-project-123",
    "uniqueId":"107522985251862639552",
    "email":"my-sa-123@my-project-123.iam.gserviceaccount.com",
}

Resposta:

{
    "name": "projects/my-project-123/serviceAccounts/my-sa-123@my-project-123.iam.gserviceaccount.com",
    "projectId": "my-project-123",
    "uniqueId": "107522985251862639552",
    "email": "my-sa-123@my-project-123.iam.gserviceaccount.com",
    "displayName": "my service account",
    "etag": "BwUqLK4bL9U=",
    "oauth2ClientId": "105236325228757713905"
}

Console

  1. Abra a página Contas de serviço no Console do GCP.

    Abrir a página "Contas de serviço"

  2. Clique em Selecionar um projeto.
  3. Selecione o projeto e clique em Abrir.
  4. Procure a conta de serviço que você quer renomear, clique no botão de elipses verticais nessa linha e, depois, clique em Editar.
  5. Insira o novo nome e clique em Salvar.

Como excluir uma conta de serviço

Quando você exclui uma conta de serviço, os aplicativos deixam de ter acesso aos recursos do Google Cloud Platform por meio dessa conta. A exclusão das contas de serviço padrão do App Engine e do Compute Engine fará com que as instâncias deixem de ter acesso aos recursos no projeto. Então, tenha cautela. Antes de excluí-la, verifique se os aplicativos críticos não usam mais uma conta de serviço.

gcloud

Para excluir uma conta de serviço, execute o seguinte comando:

gcloud iam service-accounts delete \
    my-sa-123@my-project-123.iam.gserviceaccount.com

A saída desse comando será uma mensagem semelhante à seguinte:

deleted service account [my-sa-123@my-project-123.iam.gserviceaccount.com]

API

Você pode excluir uma conta de serviço com o método serviceAccounts.delete().

A seguinte solicitação exclui a conta de serviço my-sa-123 do projeto my-project-123:

DELETE https://iam.googleapis.com/v1/projects/my-project-123/serviceAccounts/my-sa-123@my-project-123.iam.gserviceaccount.com

Console

  1. Abra a página Contas de serviço no Console do GCP.

    Abrir a página "Contas de serviço"

  2. Clique em Selecionar um projeto.

  3. Selecione o projeto e clique em Abrir.
  4. Selecione as contas de serviço que você quer excluir e clique em Excluir.

Próximas etapas

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud Identity and Access Management