Bloquear o acesso público com políticas baseadas em recurso no DynamoDB
O Bloqueio de Acesso Público (BPA) é um recurso que identifica e impede a associação de políticas baseadas em recursos que concedem acesso público às tabelas, aos índices ou aos fluxos do DynamoDB em suas contas da Amazon Web Services (AWS)
O BPA usa raciocínio automatizado
Importante
O BPA ajuda a proteger os recursos impedindo que o acesso público seja concedido por meio de políticas baseadas em recursos que estão diretamente associadas aos recursos do DynamoDB, como tabelas, índices e fluxos. Além de usar o BPA, 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).
Você deve garantir que a entidade principal não inclua uma entrada * ou que uma das chaves de condição especificadas restrinja o acesso das entidades principais ao recurso. Se a política baseada em recursos conceder acesso público à tabela, aos índices ou ao fluxo entre Contas da AWS, o DynamoDB impedirá que você crie ou modifique a política até que a especificação dentro da política seja corrigida e considerada não pública.
É possível tornar uma política não pública especificando uma ou mais entidades principais no bloco Principal. O exemplo de política baseada em recursos a seguir bloqueia o acesso público ao especificar duas entidades principais.
{ "Effect": "Allow", "Principal": { "AWS": [ "123456789012", "111122223333" ] }, "Action": "dynamodb:*", "Resource": "*" }
Políticas que restringem o acesso especificando determinadas chaves de condição também não são consideradas públicas. Junto com a avaliação da entidade principal especificada na política baseada em recursos, as seguintes chaves de condição confiáveis são usadas para concluir a avaliação de uma política baseada em recursos para acesso não público:
-
aws:PrincipalAccount -
aws:PrincipalArn -
aws:PrincipalOrgID -
aws:PrincipalOrgPaths -
aws:SourceAccount -
aws:SourceArn -
aws:SourceVpc -
aws:SourceVpce -
aws:UserId -
aws:PrincipalServiceName -
aws:PrincipalServiceNamesList -
aws:PrincipalIsAWSService -
aws:Ec2InstanceSourceVpc -
aws:SourceOrgID -
aws:SourceOrgPaths
Além disso, para que uma política baseada em recursos não seja pública, os valores de nome do recurso da Amazon (ARN) e das chaves de string não devem conter curingas nem variáveis. Se a política baseada em recursos usa a chave aws:PrincipalIsAWSService, você deve garantir que tenha definido o valor da chave como verdadeiro.
A seguinte política limita o acesso ao usuário John na conta especificada. A condição faz com que a Principal seja restrita e não seja considerada pública.
{ "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "dynamodb:*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalArn": "arn:aws:iam::123456789012:user/John" } } }
O exemplo a seguir de uma política baseada em recursos não pública restringe sourceVPC usando o operador StringEquals.