Controle de acesso com o IAM
Esta página descreve os papéis do IAM para Certificate Authority Service.
O serviço de CA usa papéis de gerenciamento de identidade e acesso (IAM) para controle de acesso. Com o IAM, você controla o acesso definindo quem (identidade) tem qual acesso (papel) a qual recurso. Os papéis do IAM contêm um conjunto de permissões que permitem que os usuários realizem ações específicas nos recursos do Google Cloud. Ao seguir o princípio de privilégio mínimo ao conceder funções do IAM, é possível proteger a integridade dos recursos do Certificate Authority Service e gerenciar a segurança do pool de AC e da própria infraestrutura de chave pública (PKI).
Para saber como atribuir papéis do IAM a um usuário ou conta de serviço, leia Como conceder, alterar e revogar acesso a recursos na documentação do IAM.
Papéis predefinidos
A tabela a seguir lista os papéis predefinidos do IAM e as permissões associadas a cada um deles:
Papel | Permissões | Descrição |
---|---|---|
Auditor de serviço de CAroles/privateca.auditor |
privateca.caPools.get privateca.caPools.getIamPolicy privateca.caPools.list privateca.certificateAuthorities.list privateca.certificateAuthorities.get privateca.certificateTemplates.get privateca.certificateTemplates.getIamPolicy privateca.certificateTemplates.list privateca.certificates.list privateca.certificates.get privateca.locations.get privateca.locations.list privateca.operations.get privateca.operations.list privateca.certificateRevocationLists.list privateca.certificateRevocationLists.get privateca.certificateRevocationLists.getIamPolicy resourcemanager.projects.get resourcemanager.projects.list
|
A função de auditor do serviço de CA tem acesso somente leitura a todos os recursos do serviço de CA e pode extrair e listar propriedades do pool de CAs, CAs, certificados, listas de revogação, políticas do IAM e projetos. Recomendamos que você atribua essa função a pessoas responsáveis por validar a segurança e as operações do pool de ACs e que não tenham responsabilidades diárias atribuídas para administrar o serviço. |
Solicitante de certificado de serviço de CAroles/privateca.certificateRequester |
privateca.certificates.create
|
Um requerente de certificado do CA Service pode enviar solicitações de certificado para um pool de ACs. Recomendamos que você conceda esse papel a pessoas confiáveis que tenham permissão para solicitar certificados. Um usuário com essa função pode solicitar certificados arbitrários sujeitos à política de emissão. Diferente do papel de gerente de certificados do serviço de AC, essa função não permite que o usuário receba ou liste o certificado recém-emitido nem acesse informações sobre o pool de AC. |
Requerente de certificado da carga de trabalho de serviço de CAroles/privateca.workloadCertificateRequester |
privateca.certificates.createForSelf
|
Um requerente de certificado da carga de trabalho de serviços de CA pode solicitar certificados do serviço de CA com a identidade do autor da chamada. |
Gerente de certificado de serviço de CAroles/privateca.certificateManager |
Todas as permissões de roles/privateca.auditor , mais:privateca.certificates.create
|
Um gerente de certificado de serviço de AC pode enviar solicitações de emissão de certificado para um pool de ACs, como o requerente de certificado de serviço de AC. Além disso, esse papel também herda as permissões do papel de auditor de serviço do CA. Recomendamos que você atribua essa função a indivíduos responsáveis por criar, rastrear e analisar solicitações de certificado em um pool de ACs, como um gerente ou engenheiro líder. |
Usuário do modelo de certificado de serviço de CAroles/privateca.templateUser |
privateca.certificateTemplates.get privateca.certificateTemplates.list privateca.certificateTemplates.use
|
Um usuário do modelo de certificado de serviço de CA pode ler, listar e usar modelos de certificado. |
Gerente de operações de serviço de CAroles/privateca.caManager |
Todas as permissões de roles/privateca.auditor , mais:privateca.certificates.update privateca.caPools.create privateca.caPools.delete privateca.caPools.update privateca.certificateAuthorities.create privateca.certificateAuthorities.delete privateca.certificateAuthorities.update privateca.certificateRevocationLists.update privateca.certificateTemplates.create privateca.certificateTemplates.delete privateca.certificateTemplates.update privateca.certificates.update privateca.operations.cancel privateca.operations.delete resourcemanager.projects.get resourcemanager.projects.list storage.buckets.create
|
Um gerente de operação de serviço de CA pode criar, atualizar e excluir pools e ACs. Esse papel também pode revogar certificados e criar buckets do Cloud Storage. Ele também inclui as mesmas habilidades do Auditor de serviço de CA. Nessa função, os indivíduos são responsáveis por configurar e implantar pools de ACs na organização, além de configurar a política de emissão do pool de ACs. Essa função não permite a criação de certificados. Para isso, use as funções de requerente, gerente ou administrador do certificado de serviço da AC. |
Administrador de serviço de CAroles/privateca.admin |
Todas as permissões de roles/privateca.certificateManager
e roles/privateca.caManager , mais:privateca.*.setIamPolicy privateca.caPools.use privateca.operations.cancel privateca.operations.delete privateca.resourcemanager.projects.get privateca.resourcemanager.projects.list storage.buckets.create
|
A função de administrador do serviço de CA herda as permissões dos papéis de gerente de operações do serviço de CA e de gerente de certificado do serviço de CA. Esse papel pode realizar todas as ações no serviço de CA. Um administrador do serviço de CA pode definir políticas do IAM para o pool de CAs e criar buckets do Cloud Storage. Recomendamos que você atribua esse papel com pouca frequência depois que o serviço for estabelecido. Nessa função, as pessoas podem realizar todos os aspectos da administração, incluindo a atribuição de direitos a outras pessoas e o gerenciamento de solicitações de certificados no serviço de AC. Recomendamos que você implemente um controle especial e o acesso a essa conta de função para evitar o acesso ou uso não autorizado. |
Papel de agente de serviço do serviço de CA
Ao fornecer chaves de assinatura do Cloud KMS ou buckets do Cloud Storage durante a criação da AC, a conta de serviço do agente de serviço da AC (service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com
) precisa receber acesso ao respectivo recurso.
No Cloud KMS, roles/cloudkms.signerVerifier
é necessário para usar a
chave de assinatura e ler a chave pública. O roles/viewer
é necessário para monitorar
a chave da integração do Cloud Monitoring.
No Cloud Storage, o roles/storage.objectAdmin
é necessário para gravar o
certificado de AC e as CRLs em um bucket. roles/storage.legacyBucketReader
é
necessário para monitorar o bucket para a integração do Cloud Monitoring. Para mais
informações, consulte Papéis do IAM para o Cloud Storage.
Ao acessar o serviço pela API, execute os seguintes comandos.
Crie uma conta de serviço com a função de agente de serviço.
gcloud
gcloud beta services identity create --service=privateca.googleapis.com --project=PROJECT_ID
Em que:
- PROJECT_ID é o identificador exclusivo do projeto em que o pool de ACs é criado.
Conceda à conta de serviço os papéis
roles/cloudkms.signerVerifier
eroles/viewer
usando o comandogcloud
a seguir.Se chaves de assinatura do Cloud KMS forem fornecidas:
gcloud
gcloud kms keys add-iam-policy-binding 'CRYPTOKEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/cloudkms.signerVerifier'
Em que:
- CRYPTOKEY_NAME é o nome da chave.
- KEYRING_NAME é o nome do keyring.
- LOCATION é o local do Cloud KMS em que você criou o keyring.
- PROJECT_NUMBER é o nome da sua conta de serviço.
gcloud kms keys add-iam-policy-binding 'CRYPTOKEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/viewer'
Conceda à conta de serviço os papéis
roles/storage.objectAdmin
eroles/storage.legacyBucketReader
usando o comandogcloud
a seguir.Se buckets do Cloud Storage forem fornecidos:
gcloud
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com \ --role=roles/storage.objectAdmin
Em que:
- BUCKET_NAME é o nome do bucket do Cloud Storage.
- PROJECT_NUMBER é o identificador exclusivo da sua conta de serviço.
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com \ --role=roles/storage.legacyBucketReader
Permissões da API
A tabela a seguir lista as permissões que o autor da chamada precisa ter para chamar cada método na API CA Service:
Permissão | Descrição |
---|---|
privateca.caPools.create |
Crie um pool de autoridade certificadora (AC). |
privateca.caPools.update |
Atualize um pool de CAs. |
privateca.caPools.list |
Lista os pools de AC em um projeto. |
privateca.caPools.get |
Extraia um pool de ACs. |
privateca.caPools.delete |
Exclua um pool de ACs. |
privateca.caPools.use |
Use um pool de ACs. |
privateca.caPools.getIamPolicy |
Extraia a política do IAM do pool de AC. |
privateca.caPools.setIamPolicy |
Defina uma política do IAM para o pool de ACs. |
privateca.certificateAuthorities.create |
Crie uma AC. |
privateca.certificateAuthorities.delete |
Programe a exclusão de uma AC. |
privateca.certificateAuthorities.get |
Receber uma solicitação de assinatura de certificado de uma AC ou de uma AC. |
privateca.certificateAuthorities.list |
Listar ACs em um projeto. |
privateca.certificateAuthorities.update |
Atualize uma AC, incluindo a ativação, a ativação, a desativação e a restauração da AC. |
privateca.certificates.create |
Solicitar certificados do serviço de CA. |
privateca.certificates.createForSelf |
Solicita certificados do serviço da CA com a identidade do autor da chamada. |
privateca.certificates.get |
Recebe um certificado e os metadados dele. |
privateca.certificates.list |
Lista todos os certificados em uma AC. |
privateca.certificates.update |
Atualizar os metadados de um certificado, incluindo a revogação. |
privateca.certificateRevocationLists.get |
Receber uma lista de revogação de certificados (CRL) em uma AC. |
privateca.certificateRevocationLists.getIamPolicy |
Acesse a política do IAM para uma CRL. |
privateca.certificateRevocationLists.list |
Lista todos os CRLs em uma AC. |
privateca.certificateRevocationLists.setIamPolicy |
Defina a política do IAM para uma CRL. |
privateca.certificateRevocationLists.update |
Atualizar uma CRL. |
privateca.certificateTemplates.create |
Crie um modelo de certificado. |
privateca.certificateTemplates.get |
Extraia um modelo de certificado. |
privateca.certificateTemplates.list |
Lista todos os modelos de certificado. |
privateca.certificateTemplates.update |
Atualizar um modelo de certificado. |
privateca.certificateTemplates.delete |
Exclua um modelo de certificado. |
privateca.certificateTemplates.getIamPolicy |
Acesse a política de IAM para um modelo de certificado. |
privateca.certificateTemplates.setIamPolicy |
Definir a política de IAM para um modelo de certificado. |
privateca.certificateTemplates.use |
Use um modelo de certificado. |
privateca.operations.cancel |
Cancelar uma operação de longa duração. |
privateca.operations.delete |
Excluir uma operação de longa duração. |
privateca.operations.get |
Receber uma operação de longa duração. |
privateca.operations.list |
Listar operações de longa duração em um projeto. |
A seguir
- Saiba como o IAM centraliza o gerenciamento de permissões e escopos de acesso dos recursos do Google Cloud.
- Saiba como configurar políticas do IAM.