Bloquear o acesso público com políticas baseadas em recursos no Aurora DSQL
O Bloqueio de Acesso Público (BPA) é um recurso que identifica e impede a anexação de políticas baseadas em recursos que concedem acesso público aos clusters do Aurora DSQL entre suas contas da AWS. Com o BPA, é possível impedir o acesso público aos recursos do Aurora DSQL. O BPA realiza verificações durante a criação ou a modificação de uma política baseada em recursos e ajuda a melhorar o procedimento de segurança com o Aurora DSQL.
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 anexadas aos recursos do Aurora DSQL, como clusters. 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 anexadas a recursos da AWS associados, por exemplo, chaves do AWS Key Management Service (KMS).
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 ao seu cluster entre contas da AWS, o Aurora DSQL impedirá você de criar ou modificar 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": "dsql:*", "Resource": "arn:aws:dsql:us-east-1:123456789012:cluster/cluster-id" }
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:PrincipalAccountaws:PrincipalArnaws:PrincipalOrgIDaws:PrincipalOrgPathsaws:SourceAccountaws:SourceArnaws:SourceVpcaws:SourceVpceaws:UserIdaws:PrincipalServiceNameaws:PrincipalServiceNamesListaws:PrincipalIsAWSServiceaws:Ec2InstanceSourceVpcaws:SourceOrgIDaws: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 Ben 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": "dsql:*", "Resource": "arn:aws:dsql:us-east-1:123456789012:cluster/cluster-id", "Condition": { "StringEquals": { "aws:PrincipalArn": "arn:aws:iam::123456789012:user/Ben" } } }
O exemplo a seguir de uma política baseada em recursos não pública restringe sourceVPC usando o operador StringEquals.
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "dsql:*", "Resource": "arn:aws:dsql:us-east-1:123456789012:cluster/cluster-id", "Condition": { "StringEquals": { "aws:SourceVpc": [ "vpc-91237329" ] } } } ] }