Compartilhe seus truques de hacking enviando PRs para oHackTricks e HackTricks Cloud repositórios do github.
Amazon Redshift
Redshift é um serviço totalmente gerenciado que pode escalar para mais de um petabyte de tamanho, que é usado como um data warehouse para soluções de big data. Usando clusters Redshift, você pode executar análises em seus conjuntos de dados usando ferramentas de consulta rápidas baseadas em SQL e aplicativos de inteligência de negócios para obter uma compreensão maior da visão para o seu negócio.
Redshift oferece criptografia em repouso usando uma hierarquia de quatro níveis de chaves de criptografia usando KMS ou CloudHSM para gerenciar o nível superior de chaves. Quando a criptografia é habilitada para seu cluster, ela não pode ser desabilitada e vice-versa. Quando você tem um cluster não criptografado, ele não pode ser criptografado.
A criptografia para seu cluster só pode acontecer durante sua criação e, uma vez criptografado, os dados, metadados e quaisquer snapshots também são criptografados. Os níveis de hierarquia das chaves de criptografia são os seguintes, o nível um é a chave mestra, o nível dois é a chave de criptografia do cluster, o CEK, o nível três, a chave de criptografia do banco de dados, o DEK, e finalmente o nível quatro, as próprias chaves de criptografia de dados.
KMS
Durante a criação do seu cluster, você pode selecionar a chave KMS padrão para Redshift ou selecionar sua própria CMK, o que lhe dá mais flexibilidade sobre o controle da chave, especificamente de uma perspectiva auditável.
A chave KMS padrão para Redshift é criada automaticamente pelo Redshift na primeira vez que a opção de chave é selecionada e usada, e é totalmente gerenciada pela AWS.
Esta chave KMS é então criptografada com a chave mestra CMK, nível um. Esta chave de dados KMS criptografada é então usada como a chave de criptografia do cluster, o CEK, nível dois. Este CEK é então enviado pelo KMS para o Redshift, onde é armazenado separadamente do cluster. O Redshift então envia este CEK criptografado para o cluster por um canal seguro onde é armazenado na memória.
O Redshift então solicita ao KMS para descriptografar o CEK, nível dois. Este CEK descriptografado também é armazenado na memória. O Redshift então cria uma chave de criptografia de banco de dados aleatória, o DEK, nível três, e carrega isso na memória do cluster. O CEK descriptografado na memória então criptografa o DEK, que também é armazenado na memória.
Este DEK criptografado é então enviado por um canal seguro e armazenado no Redshift separadamente do cluster. Tanto o CEK quanto o DEK agora estão armazenados na memória do cluster tanto em forma criptografada quanto descriptografada. O DEK descriptografado é então usado para criptografar chaves de dados, nível quatro, que são geradas aleatoriamente pelo Redshift para cada bloco de dados no banco de dados.
Você pode usar o AWS Trusted Advisor para monitorar a configuração de seus buckets do Amazon S3 e garantir que o log do bucket esteja habilitado, o que pode ser útil para realizar auditorias de segurança e rastrear padrões de uso no S3.
CloudHSM
Usando Redshift com CloudHSM
Ao trabalhar com CloudHSM para realizar sua criptografia, primeiro você deve configurar uma conexão confiável entre seu cliente HSM e o Redshift enquanto usa certificados de cliente e servidor.
Essa conexão é necessária para fornecer comunicações seguras, permitindo que chaves de criptografia sejam enviadas entre seu cliente HSM e seus clusters Redshift. Usando um par de chaves privada e pública geradas aleatoriamente, o Redshift cria um certificado de cliente público, que é criptografado e armazenado pelo Redshift. Isso deve ser baixado e registrado em seu cliente HSM e atribuído à partição HSM correta.
Você deve então configurar o Redshift com os seguintes detalhes do seu cliente HSM: o endereço IP do HSM, o nome da partição HSM, a senha da partição HSM e o certificado público do servidor HSM, que é criptografado pelo CloudHSM usando uma chave mestra interna. Uma vez que essas informações tenham sido fornecidas, o Redshift confirmará e verificará que pode se conectar e acessar a partição de desenvolvimento.
Se suas políticas de segurança internas ou controles de governança ditarem que você deve aplicar rotação de chaves, então isso é possível com o Redshift permitindo que você rotacione chaves de criptografia para clusters criptografados, no entanto, você precisa estar ciente de que durante o processo de rotação de chaves, ele tornará um cluster indisponível por um período muito curto de tempo, então é melhor apenas rotacionar chaves conforme necessário, ou se você sentir que elas podem ter sido comprometidas.
Durante a rotação, o Redshift irá rotacionar o CEK para seu cluster e para quaisquer backups desse cluster. Ele irá rotacionar um DEK para o cluster, mas não é possível rotacionar um DEK para os snapshots armazenados no S3 que foram criptografados usando o DEK. Ele colocará o cluster em um estado de 'rotating keys' até que o processo seja concluído, quando o status retornará para 'available'.
Enumeração
# Get clustersawsredshiftdescribe-clusters## Get if publicly accessibleawsredshiftdescribe-clusters|jq-r".Clusters[].PubliclyAccessible"## Get DB username to loginawsredshiftdescribe-clusters|jq-r".Clusters[].MasterUsername"## Get endpointawsredshiftdescribe-clusters|jq-r".Clusters[].Endpoint"## Public addresses of the nodesawsredshiftdescribe-clusters|jq-r".Clusters[].ClusterNodes[].PublicIPAddress"## Get IAM roles of the clustersawsredshiftdescribe-clusters|jq-r".Clusters[].IamRoles"# Endpoint access & authorizationawsredshiftdescribe-endpoint-accessawsredshiftdescribe-endpoint-authorization# Get credentialsawsredshiftget-cluster-credentials--db-user<username>--cluster-identifier<cluster-id>## By default, the temporary credentials expire in 900 seconds. You can optionally specify a duration between 900 seconds (15 minutes) and 3600 seconds (60 minutes).
awsredshiftget-cluster-credentials-with-iam--cluster-identifier<cluster-id>## Gives creds to access redshift with the IAM redshift permissions given to the current AWS account## More in https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html# Authentication profilesawsredshiftdescribe-authentication-profiles# Snapshotsawsredshiftdescribe-cluster-snapshots# Scheduled actionsawsredshiftdescribe-scheduled-actions# Connect# The redshift instance must be publicly available (not by default), the sg need to allow inbounds connections to the port and you need creds
psql-hredshift-cluster-1.sdflju3jdfkfg.us-east-1.redshift.amazonaws.com-Uadmin-ddev-p5439