Gerencias concessões - AWS Key Management Service

Gerencias concessões

Entidades principais com as permissões necessárias podem exibir, usar e excluir (retirar ou revogar) concessões. Para refinar permissões para criar e gerenciar concessões, o AWS KMS oferece suporte a várias condições de política que você pode usar em políticas de chave e políticas do IAM.

Controlar o acesso a concessões

Você pode controlar o acesso às operações que criam e gerenciam concessões em políticas de chaves, políticas do IAM e concessões. As entidades principais que recebem a permissão CreateGrant de uma concessão tem permissões de concessão mais limitadas.

Operação de API Política de chaves ou política do IAM Grant
CreateGrant
ListGrants -
ListRetirableGrants -
Retirar concessões (Limitado. Consulte Retirar e revogar concessões)
RevokeGrant -

Ao usar uma política de chaves ou uma política do IAM para controlar o acesso a operações que criam e gerenciam concessões, você pode usar uma ou mais das seguintes condições de política para limitar a permissão. O AWS KMS oferece suporte a todas as seguintes chaves de condição relacionadas a concessões. Para obter informações e exemplos detalhados, consulte Chaves de condição do AWS KMS.

kms:GrantConstraintType

Permite que as entidades principais criem uma concessão somente quando esta inclui a restrição de concessão especificada.

kms:GrantIsForAWSResource

Permite que as entidades principais chamem CreateGrant, ListGrants ou RevokeGrant somente quando um serviço da AWS integrado ao AWS KMS envia a solicitação em nome da entidade principal.

kms:GrantOperations

Permite que as entidades principais criem uma concessão, mas limita a concessão às operações especificadas.

kms:GranteePrincipal

Permite que as entidades principais criem uma concessão somente para a entidade principal receptora da concessão.

kms:RetiringPrincipal

Permite que as entidades principais criem uma concessão somente quando esta especifica um entidade principal de retirada.

Visualizar concessões

Para visualizar a concessão, use a operação ListGrants. Você deve especificar a chave do KMS à qual as concessões se aplicam. Você também pode filtrar a lista de concessões por ID de concessão ou entidade principal receptora da concessão. Para obter mais exemplos, consulte Visualizar uma concessão.

Para visualizar todas as concessões na Conta da AWSe Região com uma entidade principal de retirada, use ListRetirableGrants. As respostas incluem detalhes sobre cada concessão.

nota

O campo GranteePrincipal na resposta ListGrants geralmente contém o principal favorecido da concessão. No entanto, quando a entidade principal receptora na concessão é um serviço da AWS, o campo GranteePrincipal contém a entidade principal de serviço, que pode representar várias entidades principais entidade receptoras de concessão diferentes.

Por exemplo, o comando a seguir lista todas as concessões para uma chave do KMS.

$ aws kms list-grants --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "Grants": [ { "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1572216195.0, "GrantId": "abcde1237f76e4ba7987489ac329fbfba6ad343d6f7075dbd1ef191f0120514a", "Constraints": { "EncryptionContextSubset": { "Department": "IT" } }, "RetiringPrincipal": "arn:aws:iam::111122223333:role/adminRole", "Name": "", "IssuingAccount": "arn:aws:iam::111122223333:root", "GranteePrincipal": "arn:aws:iam::111122223333:user/exampleUser", "Operations": [ "Decrypt" ] } ] }

Usar um token de concessão

Ao criar uma concessão, esta pode não entrar em vigor imediatamente. É provável que haja um breve intervalo, de menos de cinco minutos, até que a concessão atinja consistência final, isto é, antes que a nova concessão esteja disponível no AWS KMS. Uma vez que a concessão tenha alcançado consistência final, a entidade principal receptora da concessão poderá usar as permissões na concessão sem especificar o token de concessão ou qualquer evidência da concessão. No entanto, se a concessão for tão nova a ponto de ainda não ser conhecida pelo AWS KMS, a solicitação poderá falhar com um erro de AccessDeniedException.

Para usar as permissões em uma nova concessão imediatamente, use o token de concessão para a concessão. Salve o token de concessão retornado pela operação CreateGrant. Em seguida, envie o token de concessão na solicitação para a operação AWS KMS. Você pode enviar um token de concessão para qualquer operação de concessão do AWS KMS e pode enviar vários tokens de concessão na mesma solicitação.

O exemplo a seguir usa a operação CreateGrant para criar uma concessão que permite as operações GenerateDataKey e Decrypt. Ele salva o token de concessão retornado por CreateGrant na variável token. Em seguida, em uma chamada para GenerateDataKey, ele usa o token de concessão na variável token.

# Create a grant; save the grant token $ token=$(aws kms create-grant \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --grantee-principal arn:aws:iam::111122223333:user/appUser \ --retiring-principal arn:aws:iam::111122223333:user/acctAdmin \ --operations GenerateDataKey Decrypt \ --query GrantToken \ --output text) # Use the grant token in a request $ aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ –-key-spec AES_256 \ --grant-tokens $token

As entidades principais com permissão também podem usar um token de concessão para retirar uma nova concessão mesmo antes que esta atinja consistência final. (A operação RevokeGrant não aceita um token de concessão.) Para obter mais detalhes, consulte Retirar e revogar concessões.

# Retire the grant $ aws kms retire-grant --grant-token $token

Retirar e revogar concessões

Para excluir uma concessão, retire-a ou revogue-a.

As operações RetireGrant e RevokeGrant são muito semelhantes. Ambas excluem uma concessão, o que elimina as permissões por ela permitidas. A principal diferença entre elas é como elas são autorizadas.

RevokeGrant

Como a maioria das operações do AWS KMS, o acesso à operação RevokeGranté controlado por meio de políticas de chaves e políticas do IAM. A API RevokeGrant pode ser chamada por qualquer entidade principal com permissões kms:RevokeGrant. Essa permissão está incluída nas permissões padrão fornecidas aos administradores de chaves. Normalmente, os administradores revogam uma concessão para negar permissões que são permitidas pela concessão.

RetireGrant

A concessão determina quem pode retirá-la. Esse design permite que você controle o ciclo de vida de uma concessão sem alterar políticas de chaves ou políticas do IAM. Normalmente, você retira uma concessão ao terminar de usar suas permissões.

Uma concessão pode ser retirada por uma entidade principal de retirada especificada nessa concessão. A entidade principal receptora da concessão também pode retirar a concessão, mas somente se ela também for uma entidade principal de retirada ou se a concessão incluir a operação RetireGrant. Como backup, a Conta da AWS em que a concessão foi criada pode retirar essa concessão.

Existe uma permissão kms:RetireGrant que pode ser usada em políticas do IAM, mas sua utilidade é limitada. Entidades principais especificadas na concessão podem retirar uma concessão sem a permissão kms:RetireGrant. A permissão kms:RetireGrant por si só não permite que as entidades principais retirem uma concessão. A permissão kms:RetireGrant não é eficaz em uma política de chaves.

  • Para negar permissão para retirar uma concessão, você pode usar uma ação Deny com a permissão kms:RetireGrant.

  • A Conta da AWS que possui a chave do KMS pode delegar a permissão kms:RetireGrant para delegar permissão a um usuário do IAM na conta.

  • Se a entidade principal de retirada for uma Conta da AWS diferente, os administradores na outra conta poderão usar kms:RetireGrant para delegar permissão para retirar a concessão a um usuário do IAM nessa conta.

Quando você cria, retira ou revoga uma concessão, pode haver um breve atraso, geralmente de menos de cinco minutos, até que a operação atinja a consistência final. Se precisar excluir uma nova concessão imediatamente antes que ela esteja disponível no AWS KMS, use um token de concessão para retirar a concessão. Não é possível usar um token de concessão para revogar uma concessão.