AWS S3 Bucket Access from EC2
o outro gotcha é que as minhas instâncias EC2 estão a ser geridas pelo OpsWorks e eu posso ter várias instâncias a serem disparadas dependendo da carga/uso. Se eu fosse restringi-lo por IP, Eu posso nem sempre conhecer o IP as instâncias EC2 ter. Posso restringir pelo VPC?
Tenho de tornar o meu balde S3 activo para hospedagem estática de sites? Eu preciso fazer todos os arquivos no balde público, bem como para que isso funcione?
2 answers
Você não precisa fazer o balde legível publicamente, nem os arquivos legíveis publicamente. O balde e o seu conteúdo podem ser mantidos em privado.
Não restrinja o acesso ao balde com base no endereço IP, em vez de restringi-lo com base no papel IAM que a instância EC2 está a usar.
- crie um papel de exemplo IAM EC2 para as suas instâncias EC2.
- execute as suas instâncias EC2 usando esse papel. Dá a este IAM uma política para aceder ao balde S3.
Para exemplo:
{
"Version": "2012-10-17",
"Statement":[{
"Effect": "Allow",
"Action": "s3:*",
"Resource": ["arn:aws:s3:::my_bucket",
"arn:aws:s3:::my_bucket/*"]
}
]
}
-
Se quiser restringir o acesso ao balde em si, tente uma política de balde S3.
Por exemplo:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": ["arn:aws:iam::111122223333:role/my-ec2-role"]
},
"Action": "s3:*",
"Resource": ["arn:aws:s3:::my_bucket",
"arn:aws:s3:::my_bucket/*"]
}
]
}
Informação adicional: http://blogs.aws.amazon.com/security/post/TxPOJBY6FE360K/IAM-policies-and-Bucket-Policies-and-ACLs-Oh-My-Controlling-Access-to-S3-Resourc
O papel IAM é a solução para ti.
Você precisa criar papel com a permissão de acesso s3, se a instância ec2 foi iniciada sem qualquer papel, você tem que reconstruí-lo com esse papel atribuído.