Examinar a política de chaves - AWS Key Management Service

Examinar a política de chaves

Políticas de chaves são a principal maneira de controlar o acesso a chaves do KMS. Cada chave do KMS tem exatamente uma política de chaves.

Quando uma política de chaves consiste em ou inclui a política de chaves padrão, ela permite que os administradores do IAM na conta usem políticas do IAM para controlar o acesso à chave do KMS. Além disso, se a política de chaves conceder a outra Conta da AWS permissão para usar a chave do KMS, os administradores do IAM na conta externa poderão usar políticas do IAM para delegar essas permissões. Para determinar a lista completa de entidades principais que podem acessar a chave do KMS, examine as políticas do IAM.

Para visualizar a política de chaves de uma chave gerenciada pelo cliente do AWS KMS ou de uma Chave gerenciada pela AWS na sua conta, use o AWS Management Console ou a operação GetKeyPolicy na API do AWS KMS. Para visualizar a política de chaves, é necessário ter permissões kms:GetKeyPolicy para a chave do KMS. Para obter instruções sobre como visualizar a política de chaves de uma chave do KMS, consulte Visualizar uma política de chaves.

Examine o documento de política de chaves e anote todas as principais especificadas em cada elemento Principal da declaração de política. Os usuários do IAM, as funções do IAM e as Contas da AWS nos elementos Principal são aqueles que têm acesso a essa chave do KMS.

nota

Não defina a entidade principal como um asterisco (*) em qualquer instrução de política de chaves que permita permissões, a menos que você utilize condições para limitar a diretiva de chave. Um asterisco dá à cada identidade em cada permissão da Conta da AWS para usar a chave do KMS, a menos que outra instrução de política negue essa permissão explicitamente. Usuários em outras Contas da AWS apenas precisam de permissões correspondentes do IAM em suas próprias contas para usar a chave do KMS.

Os exemplos a seguir usam as declarações de política encontradas na política de chaves padrão para demonstrar como fazer isso.

exemplo Declaração de política 1

{ "Sid": "Enable IAM policies", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Action": "kms:*", "Resource": "*" }

Na instrução de política 1, arn:aws:iam::111122223333:root refere-se à Conta da AWS 111122223333. Por padrão, uma instrução de política como essa está presente no documento de política de chaves quando você cria uma nova AWS Management Console. Ela também está presente quando você cria uma nova chave do KMS de forma programática, mas não fornece uma política de chaves.

Um documento de política de chaves com uma instrução que permite o acesso à Conta da AWS (usuário raiz) habilita políticas do IAM na conta para permitir o acesso à chave do KMS. Isso significa que os usuários e as funções do IAM na conta podem ter acesso à chave do KMS mesmo se não estiverem explicitamente listados como as entidades principais no documento de política de chaves. Tenha cuidado ao examinar todas as políticas do IAM em todas as Contas da AWS listadas como as entidades principais para determinar se elas permitem o acesso a essa chave do KMS.

exemplo Declaração de política 2

{ "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/KMSKeyAdmin"}, "Action": [ "kms:Describe*", "kms:Put*", "kms:Create*", "kms:Update*", "kms:Enable*", "kms:Revoke*", "kms:List*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*" }

Na instrução de política 2, arn:aws:iam::111122223333:user/KMSKeyAdmin refere-se ao usuário do IAM chamado KMSKeyAdmin na Conta da AWS 111122223333. Esse usuário tem permissão para realizar as ações listadas na instrução de política, que são ações administrativas para gerenciar uma chave do KMS.

exemplo Declaração de política 3

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/EncryptionApp"}, "Action": [ "kms:DescribeKey", "kms:GenerateDataKey*", "kms:Encrypt", "kms:ReEncrypt*", "kms:Decrypt" ], "Resource": "*" }

Na instrução de política 3, arn:aws:iam::111122223333:role/EncryptionApp refere-se à função do IAM chamada EncryptionApp na Conta da AWS 111122223333. As entidades principais que podem assumir essa função têm permissão para realizar as ações listadas na instrução de política, que são as ações criptografar e descriptografar os dados com uma chave do KMS.

exemplo Declaração de política 4

{ "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/EncryptionApp"}, "Action": [ "kms:ListGrants", "kms:CreateGrant", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} }

Na instrução de política 4, arn:aws:iam::111122223333:role/EncryptionApp refere-se à função do IAM chamada EncryptionApp na Conta da AWS 111122223333. As principais que podem assumir essa função têm permissão para realizar as ações listadas na declaração de política. Essas ações, quando combinadas com as ações permitidas na Instrução de política de exemplo 3, são aquelas necessárias para delegar o uso da chave do KMS à maioria dos serviços da AWS integrados ao AWS KMS, especificamente os serviços que usam concessões. O elemento Condition garante que a delegação é permitida apenas quando o delegado é um serviço da AWS integrado ao AWS KMS e usa concessões para autorização.

Para conhecer todas as diferentes maneiras de especificar uma entidade principal em um documento de política de chaves, consulte Especificar uma entidade principal , no Manual do usuário do IAM.

Para saber mais sobre as políticas de chaves do AWS KMS, consulte Políticas de chaves no AWS KMS.