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

193
Views
Problema de acceso denegado en AWS Cross Account S3 PutObject cifrado por AWS Managed Key

Estoy tratando de colocar un archivo de texto de Lambda que está en la cuenta B en el depósito S3 en la cuenta A. El depósito S3 (depósito de prueba) tiene el cifrado AWS-KMS con la clave administrada aws/s3 habilitada. 1. Agregué los siguientes permisos en el depósito Cuenta A- S3 (depósito de prueba):

 ``` {"Version": "2012-10-17", "Id": "ExamplePolicy", "Statement": [ { "Sid": "ExampleStmt", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountB:role/Lambda-Role" }, "Action": "s3:*", "Resource": "arn:aws:s3:::test-bucket/*" } ] }
  1. Se agregó la siguiente política en línea a mi rol de ejecución de Lambda en la Cuenta B:
     {"Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:ReEncrypt*" ], "Resource": [ "arn:aws:kms:us-west-2:AccountA:key/AWS-KMS-ID" ] } ] }

Este es mi Código Lambda:

 res = s3.put_object( Body=message, Key=file_name, Bucket='test-bucket', ACL='bucket-owner-full-control' )

Obteniendo el siguiente error al ejecutar este código desde la cuenta B Lambda:

 An error occurred (AccessDenied) when calling the PutObject operation: Access Denied

Dado que el depósito S3 está cifrado por AWS Managed Key, no puedo editar la política de KMS, lo que hacemos en el caso de la clave administrada por el cliente.

Alguien, por favor, guíeme, ¿qué me estoy perdiendo?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Intente otorgar a su función lambda s3:PutObject . Entonces, la política en línea de su rol lambda debería ser algo así como

 { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:ReEncrypt*" ], "Resource": [ "arn:aws:kms:us-west-2:AccountA:key/AWS-KMS-ID" ] }, { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::test-bucket/*" } ] }
over 4 years ago · Santiago Trujillo Report

0

Yo mismo he estado resolviendo este problema durante un par de horas.

No creo que esto sea posible con la "clave administrada de AWS" predeterminada cuando se usa SSE-KMS. En su lugar, debe crear una CMK y otorgar acceso de usuario de cuenta cruzada a esta clave.

HTH

over 4 years ago · Santiago Trujillo Report

0

No se puede otorgar acceso entre cuentas para AWS Managed Key. Necesidad de utilizar la clave administrada por el cliente o el cifrado predeterminado.

Esto puede ser útil: https://aws.amazon.com/premiumsupport/knowledge-center/s3-bucket-access-default-encryption/

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!