Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

424
Views
Política de S3 para permitir escribir en un depósito pero no leer de él, ¿es posible?

¿Es posible permitir solo la operación de escritura a un usuario en un depósito sin los permisos de lectura? El objetivo es permitir que todas mis instancias EC2 escriban cada una en un depósito diferente y no permitirles leer ningún otro depósito. Todas mis instancias se ejecutan con el mismo rol de IAM.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Ciertamente es posible. Por ejemplo, suelo usar esta política de solo escritura para la copia de seguridad de la instancia EC2 en S3 cuando uso el comando de sincronización con el interruptor --delete :

 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket-name" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads" ], "Resource": [ "arn:aws:s3:::bucket-name/*" ] } ] }
over 4 years ago · Santiago Trujillo Report

0

Sí. Sin duda, puede asignar al Rol una política que permita PutObject sin ninguna otra operación (por ejemplo, ListBuckets , GetObject ).

Opción 1: permisos de solo escritura en un depósito

 { "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::examplebucket/*" ] } ] }

En lugar de darle a cada instancia su propio depósito, puede usar el mismo depósito pero usar su ID de instancia como nombre de directorio (por ejemplo, s3://my-bucket/i-abcd1234/foo.txt ) para evitar conflictos de nombres de archivo.

Opción 2: permisos completos dentro de un subdirectorio

Incluso podría ir un paso más allá y darles acceso completo al depósito de Amazon S3, pero solo dentro de su propio subdirectorio.

El Rol se le asignaría esta política:

 { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSubdirectory", "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::my-bucket/${aws:userid}/*" ] } ] }

En esta situación, la variable de política aws:userid sería igual a role-id:ec2-instance-id . Por lo tanto, la instancia EC2 podría hacer cualquier cosa en el subdirectorio (también conocido como Prefijo de clave) que coincida con su función e ID de instancia.

Por ejemplo:

 aws s3 cp foo s3://my-bucket/AROAJCLCJNQ3333ZQLZTW:i-055f66ea41fb4438e/foo

El role-id se puede obtener a través aws iam get-role --role-name rolename .

Este método garantiza que cada instancia solo pueda usar su propio subdirectorio dentro del depósito. Sin embargo, no podrá enumerar el contenido del depósito porque es un permiso a nivel de depósito.

Consulte también: Otorgar acceso a los recursos de S3 en función del nombre del rol

over 4 years ago · Santiago Trujillo Report

0

Tenga en cuenta que las soluciones anteriores son correctas, pero con PutObject Action también puede sobrescribir objetos existentes ( fuente ). No sé el escenario exacto por el que necesita ese tipo de acceso, pero si desea usarlo para crear una copia de seguridad, agregaría un paso adicional para minimizar el riesgo de sobrescribir objetos. Crearía un proceso separado (Lambda, por ejemplo) para copiar todos los objetos de ese depósito a otro, uno seguro, donde el cliente no tiene acceso en absoluto.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!