Como posso registrar o que e quem pode acessar e onde meu bucket S3?

Como posso registrar o que e quem pode acessar e onde meu bucket S3?

Recentemente recebi um e-mail informando que algumas conexões do IE têm acesso ao meu bucket:

eu-central-1|media.myapp | REST.GET.OBJECT|TLSv1|9|[Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NE
eu-central-1|media.myapp | REST.GET.OBJECT|TLSv1|54|[Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.1; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C;

Mas quero saber o que são esses dispositivos e qual IP usa para diagnosticar a causa do problema (infraestrutura legada sem documentos). Existe uma maneira de manter um log de acesso em quais contas e dispositivos IAM sob os quais IP e MAC recebem itens do meu bucket?

Responder1

Não tenho certeza se entendi sua pergunta corretamente, mas se você está perguntando como permitir que apenas determinados usuários ou IPs acessem seu bucket S3 (e presumo que você esteja falando da Internet pública), aqui está um bloco de uma política de bucket que usei para permitir, por exemplo, apenas endereços IP públicos que desejo acessar o bucket:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "IPAllow",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<bucket name>/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "<first IP/32",
                        "<second IP>/32",
                        "<third IP>/32",
                        "<fourth IP>/32"
                    ]
                }
            }
        }
    ]
}

Esperançosamente, isso pode pelo menos apontar a direção certa.

Responder2

O Guia do usuário do Amazon S3 explica o registro de solicitações.

O log de acesso ao servidor fornece registros detalhados das solicitações feitas a um bucket. Os logs de acesso ao servidor são úteis para muitos aplicativos. Por exemplo, as informações de log de acesso podem ser úteis em auditorias de segurança e acesso.

https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html

Você não poderá aprender endereços MAC, pois eles nunca são transmitidos pela Internet, mas o endereço IP do dispositivo (ou endereço NAT público se o dispositivo estiver atrás de um roteador NAT) será capturado. Para identificar dispositivos específicos na LAN atrás de um roteador NAT é necessário acesso aos dispositivos e/ou ao roteador.

Os logs também capturarão as credenciais do IAM usadas, se houver, para acessar o objeto, que serão capturadas nos logs.

Não há mais nada que possa ser aprendido sobre os dispositivos do lado da AWS, além do que é encontrado nesses logs.

Presumivelmente, o e-mail ao qual você está se referindo está relacionado ao fato de que esses dispositivos estão usando TLSv1, para o qual a AWS está descontinuando o suporte em breve.

Para responder à evolução da tecnologia e dos padrões regulatórios para Transport Layer Security (TLS), atualizaremos a configuração de TLS para todos os endpoints de API de serviço da AWS para, no mínimo, a versão TLS 1.2. Esta atualização significa que você não poderá mais usar as versões 1.0 e 1.1 do TLS com todas as APIs da AWS em todas as regiões da AWS até 28 de junho de 2023.

https://aws.amazon.com/blogs/security/tls-1-2-required-for-aws-endpoints/

Você pode bloquear versões antigas do TLS agora, antes que as alterações da API entrem em vigor, com um código apropriadopolítica de negação. Isso potencialmente ajudaria você a identificar os dispositivos nos relatórios de problemas. Ao adicionar e remover periodicamente a política por enquanto, você poderá identificar os dispositivos sem causar uma interrupção permanente, como acontecerá quando as alterações da API forem enviadas pela AWS. As solicitações negadas ainda serão registradas pelo S3, mas receberão uma resposta HTTP 403 e um erro de AccessDenied.

informação relacionada