Políticas baseadas no recurso - AWS Secrets Manager

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Políticas baseadas no recurso

Em uma política baseada em recursos, especifique quem pode acessar o segredo e as ações que essa pessoa pode executar no segredo. É possível usar políticas baseadas em recursos para:

  • Conceder acesso a vários usuários e funções a um único segredo.

  • Conceder acesso a usuários ou funções em outras contas da AWS.

Quando você anexa uma política baseada em recursos a um segredo no console, o Secrets Manager usa o mecanismo de raciocínio automatizado Zelkova e a API ValidateResourcePolicy para impedir que você conceda acesso a seus segredos a uma ampla gama de entidades principais do IAM. Você também pode chamar a API PutResourcePolicy com o parâmetro BlockPublicPolicy da CLI ou do SDK.

Importante

A validação da política de recursos e o parâmetro BlockPublicPolicy ajudam a proteger seus recursos, impedindo que o acesso público seja concedido por meio de políticas de recursos diretamente vinculadas aos segredos. Além de usar esses atributos, inspecione com cuidado as seguintes políticas para garantir que elas não concedam acesso público:

  • Políticas baseadas em identidade vinculadas a entidades principais da AWS associadas (por exemplo, perfis do IAM).

  • Políticas baseadas em recursos vinculadas a recursos da AWS associados (por exemplo, chaves do AWS Key Management Service (AWS KMS))

Para revisar as permissões de seus segredos, consulte Determinação de quem tem permissões para seus segredos do .

Para visualizar, alterar ou excluir a política de recursos de um segredo (console)
  1. Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.

  2. Na lista de segredos, escolha o segredo.

  3. Na página de detalhes do segredo, na guia de Visão geral da seção Permissões de recursos, escolha Editar permissões.

  4. No campo do código, siga um dos procedimentos a seguir e escolha Save (Salvar):

    • Para anexar ou modificar uma política de recursos, insira a política.

    • Para excluir a política, limpe o campo do código.

AWS CLI

exemplo Recuperar uma política de recursos

O exemplo de get-resource-policy a seguir recupera a política baseada em recurso anexada a um segredo.

aws secretsmanager get-resource-policy \ --secret-id MyTestSecret
exemplo Excluir uma política de recurso

O exemplo de delete-resource-policy a seguir exclui a política baseada em recurso anexada a um segredo.

aws secretsmanager delete-resource-policy \ --secret-id MyTestSecret
exemplo Adicionar uma política de recurso

O exemplo de put-resource-policy a seguir adiciona uma política de permissões a um segredo, verificando primeiro se a política não fornece acesso amplo ao segredo. A política é lida de um arquivo. Para obter mais informações, consulte Carregar os parâmetros da AWS CLI de um arquivo no Guia do usuário do AWS CLI.

aws secretsmanager put-resource-policy \ --secret-id MyTestSecret \ --resource-policy file://mypolicy.json \ --block-public-policy

Conteúdo de mypolicy.json:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/MyRole" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }

AWS SDK

Para recuperar a política anexada a um segredo, use GetResourcePolicy.

Para excluir a política anexada a um segredo, use DeleteResourcePolicy.

Para anexar uma política a um segredo, use PutResourcePolicy. Se já houver uma política anexada, o comando a substituirá pela nova política. O documento da política deve estar formatado como texto JSON estruturado. Consulte Estrutura de documento de política JSON.

Para ter mais informações, consulte AWS SDKs.

Exemplos

Exemplo: permissão para recuperar valores de segredos individuais

Para conceder permissão para recuperar valores de segredos, você pode anexar políticas a segredos ou identidades. Para obter ajuda na determinação do tipo de política a ser usado, consulte Políticas baseadas em identidades e políticas baseadas em recursos. Para obter informações sobre como anexar uma política, consulte Políticas baseadas no recurso e Políticas baseadas em identidade.

Esse exemplo é útil quando você quer conceder acesso a um único segredo a vários usuários ou funções. Para conceder permissão para recuperar um grupo de segredos em uma chamada de API em lote, consulte Exemplo: permissão para recuperar um grupo de valores de segredos em um lote.

exemplo Ler um segredo

É possível conceder acesso a um segredo anexando a seguinte política ao segredo.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountId:role/EC2RoleToAccessSecrets" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }

Exemplo: Permissões e VPCs

Se você precisar acessar o Secrets Manager de uma VPC, verifique se as solicitações para o Secrets Manager vêm da VPC ao incluir uma condição nas políticas de permissões. Para ter mais informações, consulte Limite solicitações com condições do endpoint da VPC e Uso de um endpoint da VPC do AWS Secrets Manager.

Certifique-se de que as solicitações para acessar o segredo de outros serviços da AWS também venham da VPC. Caso contrário, essa política negará a eles o acesso.

exemplo Exigir que as solicitações sejam enviadas por meio de um endpoint da VPC

A política a seguir permite que um usuário execute operações do Secrets Manager somente quando a solicitação é fornecida por meio do endpoint do VPC vpce-1234a5678b9012c.

{ "Id": "example-policy-1", "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictGetSecretValueoperation", "Effect": "Deny", "Principal": "*", "Action": "secretsmanager:GetSecretValue", "Resource": "*", "Condition": { "StringNotEquals": { "aws:sourceVpce": "vpce-1234a5678b9012c" } } } ] }
exemplo Exigir que as solicitações sejam provenientes de uma VPC

A política a seguir permite que os comandos criem e gerenciem segredos somente quando eles são provenientes da vpc-12345678. Além disso, a política permite operações que usam o acesso ao valor criptografado do segredo somente quando as solicitações são recebidas de vpc-2b2b2b2b. Será possível usar uma política como essa se uma aplicação for executada em uma VPC, mas você usa uma segunda VPC isolada para funções de gerenciamento.

{ "Id": "example-policy-2", "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAdministrativeActionsfromONLYvpc-12345678", "Effect": "Deny", "Principal": "*", "Action": [ "secretsmanager:Create*", "secretsmanager:Put*", "secretsmanager:Update*", "secretsmanager:Delete*", "secretsmanager:Restore*", "secretsmanager:RotateSecret", "secretsmanager:CancelRotate*", "secretsmanager:TagResource", "secretsmanager:UntagResource" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:sourceVpc": "vpc-12345678" } } }, { "Sid": "AllowSecretValueAccessfromONLYvpc-2b2b2b2b", "Effect": "Deny", "Principal": "*", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:sourceVpc": "vpc-2b2b2b2b" } } } ] }

Exemplo: entidade principal de serviço

Se a política de recurso anexada ao seu segredo incluir uma entidade principal de serviço da AWS, recomendamos o uso das chaves globais de condição aws:SourceArn e aws:SourceAccount. O ARN e os valores da conta só são incluídos no contexto de autorização quando uma solicitação chega ao Secrets Manager diretamente de outro serviço da AWS. Essa combinação de condições evita um potencial confused deputy scenario (cenário de substituto confuso).

Se um ARN de recurso incluir caracteres que não sejam permitidos em uma política de recurso, você não poderá usar esse ARN de recurso no valor da chave de condição aws:SourceArn. Em vez disso, use a chave de condição aws:SourceAccount. Para obter mais informações, consulte os requisitos do IAM.

Normalmente as entidades principais de serviço não são usadas como entidades principais em uma política anexada a um segredo, mas alguns dos serviços da AWS exigem isso. Para obter informações sobre as políticas de recursos que um serviço exige que você anexe a um segredo, consulte a documentação do serviço.

exemplo Permitir que um serviço acesse um segredo usando uma entidade principal de serviço
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "service-name.amazonaws.com" ] }, "Action": "secretsmanager:GetSecretValue", "Resource": "*", "Condition": { "ArnLike": { "aws:sourceArn": "arn:aws:service-name::123456789012:*" }, "StringEquals": { "aws:sourceAccount": "123456789012" } } } ] }