es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

AWS / Ansible – obtener un elemento de S3 entre cuentas cruzadas

Tengo una instancia de EC2 en us-east-1. La instancia está tratando de obtener un objeto de un bucket s3 que se encuentra en us-west-1, pero aún dentro de la misma cuenta. Los permisos IAM del perfil de instancia / rol IAM adjunto a la instancia tienen los siguientes permisos:

{
“Version”: “2012-10-17”,
“Statement”: [
{
“Action”: [
“s3:ListBucket”,
“s3:GetObject”,
“kms:Decrypt”
],
“Resource”: [
“arn:aws:s3:::cross-region-bucket/”,
“arn:aws:s3:::cross-region-bucket/*”
],
“Effect”: “Allow”
}
]
}

También he intentado adjuntar acceso de administrador, pero aún no tengo suerte. Estoy usando Ansible para obtener un objeto s3 de este bucket de región cruzada:

  • name: Descargar objeto de cross-region s3 bucket
    aws_s3:
    bucket: “cross-region-bucket”
    object: “object.txt”
    dest: “/local/user/object.txt”
    mode: get
    region: “us-west-1”

Esto parece funcionar bien cuando el bucket está en la misma región, pero ahora que estoy intentando hacer una solicitud s3 cruzada, estoy obteniendo el siguiente error:

fatal: [X.X.X.X]: INALCANZABLE! => {“changed”: false, “msg”: “La información no se pudo enviar al host remoto \”X.X.X.X\”. Asegúrese de que se pueda acceder a este host por SSH: “, “inalcanzable”: true}

Si configuro la región en la tarea aws_s3 en ‘us-east-1’ (donde se encuentra la instancia), entonces obtengo el siguiente error:

fatal: [X.X.X.X]: FALLÓ! => {“boto3_version”: “1.18.19”, “botocore_version”: “1.21.19”, “changed”: false, “msg”: “Ha fallado al buscar el bucket (durante bucket_check) cross-region-bucket.: Tiempo de espera de conexión en la URL del endpoint: \”https://cross-region-bucket.s3.us-west-1.amazonaws.com/\””}

No estoy seguro de qué me está bloqueando el acceso al bucket de región cruzada en este punto. ¿Alguna sugerencia?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás teniendo problemas al acceder a un bucket S3 en diferentes regiones desde una instancia EC2 en us-east-1. Ya has intentado adjuntar acceso de administrador, pero no ha funcionado. Estás utilizando Ansible para recuperar un objeto S3 desde el bucket de diferentes regiones, pero estás obteniendo un error cuando estableces la región en us-west-1 y un error diferente cuando estableces la región en us-east-1.

    Es posible que los permisos IAM del perfil de instancia / rol IAM adjunto a la instancia no sean suficientes para acceder al bucket S3. Puedes intentar agregar los siguientes permisos al rol IAM:

    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Action": [
    "s3:ListAllMyBuckets",
    "s3:GetBucketLocation",
    "s3:ListBucket",
    "s3:GetObject",
    "kms:Decrypt"
    ],
    "Resource": [
    "arn:aws:s3:::cross-region-bucket/",
    "arn:aws:s3:::cross-region-bucket/*"
    ],
    "Effect": "Allow"
    }
    ]
    }

    Si eso no funciona, puedes intentar configurar un punto de enlace VPC para S3 en la región us-east-1 y luego utilizar el punto de enlace para acceder al bucket S3.

Comments are closed.