Configuración de las políticas de IAM para puntos de acceso de Object Lambda - Amazon Simple Storage Service

Configuración de las políticas de IAM para puntos de acceso de Object Lambda

Los puntos de acceso de Amazon S3 admiten políticas de recursos de AWS Identity and Access Management que le permiten controlar el uso del punto de acceso en función del recurso, del usuario o de otras condiciones. Puede controlar el acceso mediante una política de recursos opcional en su punto de acceso de Object Lambda o una política de recursos en el punto de acceso de apoyo. Para obtener un ejemplo paso a paso, consulte Tutorial: transformación de datos para su aplicación con S3 Object Lambda y Tutorial: detección y redacción de datos de PII con S3 Object Lambda y Amazon Comprehend.

Los siguientes cuatro recursos deben contar con los permisos correspondientes para trabajar con puntos de acceso de Object Lambda:

  • La identidad de IAM, como el usuario o el rol. Para obtener más información acerca de las identidades y prácticas recomendadas de IAM, consulte Identidades (usuarios, grupos de usuarios y roles) de IAM en la Guía del usuario de IAM.

  • El bucket y el punto de acceso estándar asociado Cuando se trabaja con puntos de acceso Object Lambda, este punto de acceso estándar se conoce como punto de acceso de apoyo.

  • El punto de acceso de Object Lambda.

  • La función de AWS Lambda

importante

Antes de guardar la política, asegúrese de resolver advertencias de seguridad, errores, advertencias generales y sugerencias de AWS Identity and Access Management Access Analyzer. IAM Access Analyzer ejecuta verificaciones de política para validarla contra la Gramática de la política de IAM y las prácticas recomendadas. Estas verificaciones generan hallazgos y proporcionan recomendaciones procesables para ayudarlo a crear políticas funcionales y que se ajustan a las prácticas recomendadas de seguridad.

Para obtener más información sobre la validación de políticas utilizando IAM Access Analyzer, consulte Validación de políticas de IAM Access Analyzer en la Guía del usuario de IAM. Para ver una lista de advertencias, errores y sugerencias que devuelve IAM Access Analyzer, consulte Referencia de verificación de políticas de IAM Access Analyzer.

En los siguientes ejemplos de política se supone que dispone de los siguientes recursos:

  • Un bucket de Amazon S3 con el siguiente Nombre de recurso de Amazon (ARN):

    arn:aws:s3:::DOC-EXAMPLE-BUCKET1

  • Un punto de acceso estándar de Amazon S3 en este bucket con el siguiente ARN:

    arn:aws:s3:us-east-1:111122223333:accesspoint/my-access-point

  • Un punto de acceso de Object Lambda con el siguiente ARN:

    arn:aws:s3-object-lambda:us-east-1:111122223333:accesspoint/my-object-lambda-ap

  • Una función de AWS Lambda con el siguiente ARN:

    arn:aws:lambda:us-east-1:111122223333:function:MyObjectLambdaFunction

nota

Si utiliza una función de Lambda desde la cuenta, debe incluir la versión de la función específica en la declaración de política. En el siguiente ARN de ejemplo, la versión se indica mediante 1:

arn:aws:lambda:us-east-1:111122223333:function:MyObjectLambdaFunction:1

Lambda no admite la agregación de políticas de IAM a la versión $LATEST. Para obtener más información acerca de las funciones de Lambda, consulte Versiones de la función de Lambda en la Guía para desarrolladores de AWS Lambda.

ejemplo - Política de bucket que delega el control de acceso a los puntos de acceso estándar

El siguiente ejemplo de política de bucket de S3 delega el control de acceso de un bucket a los puntos de acceso estándar del bucket. Esta política permite el acceso completo a todos los puntos de acceso de la cuenta del propietario del bucket. Por lo tanto, todo el acceso a este bucket está controlado por las políticas asociadas a sus puntos de acceso. Los usuarios pueden leer desde el bucket solo a través de un punto de acceso de S3, lo que significa que las operaciones se pueden invocar solo a través de puntos de acceso. Para obtener más información, consulte Delegar el control de acceso a los puntos de acceso.

{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : { "AWS":"account-ARN"}, "Action" : "*", "Resource" : [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1", "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*" ], "Condition": { "StringEquals" : { "s3:DataAccessPointAccount" : "Bucket owner's account ID" } } }] }
ejemplo – Política de IAM que otorga al usuario los permisos necesarios para usar un punto de acceso de Object Lambda

La siguiente política de IAM otorga permisos de usuario a la función de Lambda, al punto de acceso estándar y al punto de acceso de Object Lambda.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowLambdaInvocation", "Action": [ "lambda:InvokeFunction" ], "Effect": "Allow", "Resource": "arn:aws:lambda:us-east-1:111122223333:function:MyObjectLambdaFunction:1", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": [ "s3-object-lambda.amazonaws.com" ] } } }, { "Sid": "AllowStandardAccessPointAccess", "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:us-east-1:111122223333:accesspoint/my-access-point/*", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": [ "s3-object-lambda.amazonaws.com" ] } } }, { "Sid": "AllowObjectLambdaAccess", "Action": [ "s3-object-lambda:Get*", "s3-object-lambda:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3-object-lambda:us-east-1:111122223333:accesspoint/my-object-lambda-ap" } ] }

Habilitar permisos para roles de ejecución de Lambda

Cuando se realizan solicitudes GET a un punto de acceso de Object Lambda, su función de Lambda necesita permiso para enviar datos al punto de acceso de S3 Object Lambda. Este permiso se proporciona activando el permiso s3-object-lambda:WriteGetObjectResponse en el rol de ejecución de la función de Lambda. Puede crear un nuevo rol de ejecución o actualizar un rol existente.

nota

Su función solo necesita el permiso s3-object-lambda:WriteGetObjectResponse si realiza una solicitud GET.

Para crear un rol de ejecución en la consola de IAM
  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación izquierdo, seleccione Roles.

  3. Elija Crear rol.

  4. En Common use cases (Casos de uso comunes), elija Lambda.

  5. Elija Siguiente.

  6. En la página Add permissions (Añadir permisos), busque la política administrada por AWS AmazonS3ObjectLambdaExecutionRolePolicy y, a continuación, seleccione la casilla de verificación situada junto al nombre de la política.

    Esta política debe contener la acción s3-object-lambda:WriteGetObjectResponse.

  7. Elija Siguiente.

  8. En la página Name, review, and create (Nombre, revisar, creer) de Role name (Nombre de rol), introduzca s3-object-lambda-role.

  9. (Opcional) Añada una descripción y etiquetas para este rol.

  10. Elija Create role (Crear rol).

  11. Aplique el recurso recién creado s3-object-lambda-role como rol de ejecución de la función de Lambda. Esto se puede hacer durante o después de la creación de la función de Lambda en la consola de Lambda.

Para obtener más información sobre los roles de ejecución, consulte Rol de ejecución de Lambda en la Guía para desarrolladores de AWS Lambda.

Uso de claves de contexto con puntos de acceso de Object Lambda

S3 Object Lambda evaluará claves de contexto tales como s3-object-lambda:TlsVersion o s3-object-lambda:AuthType relacionadas con la conexión o la firma de la solicitud. Amazon S3 evalúa todas las demás claves de contexto, como s3:prefix.