Políticas de IAM para usar el estado Map Distributed - AWS Step Functions

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Políticas de IAM para usar el estado Map Distributed

Al crear flujos de trabajo con la consola de Step Functions, Step Functions puede generar automáticamente políticas de IAM basadas en los recursos de la definición de flujo de trabajo. Estas políticas incluyen los privilegios mínimos necesarios para permitir que el rol de la máquina de estado invoque la acción de la API StartExecution para el estado Map Distributed. Estas políticas también incluyen los privilegios mínimos necesarios para que Step Functions pueda acceder a AWS los recursos, como los buckets y objetos de Amazon S3 y las funciones de Lambda. Le recomendamos que incluya únicamente los permisos necesarios en las políticas de IAM. Por ejemplo, si el flujo de trabajo incluye un estado Map en modo distribuido, aplique las políticas al bucket y a la carpeta de Amazon S3 específicos que contengan el conjunto de datos.

importante

Si especifica un bucket y un objeto de Amazon S3, o un prefijo, con una ruta de referencia a un par clave-valor existente en la entrada del estado Map Distributed, no olvide actualizar las políticas de IAM para el flujo de trabajo. Limite las políticas hasta los nombres de objeto y bucket a los que se dirige la ruta en tiempo de ejecución.

Ejemplo de política de IAM para ejecutar un estado Map Distributed

Cuando se incluye un estado Map Distributed en los flujos de trabajo, Step Functions necesita los permisos adecuados para permitir que el rol de la máquina de estado invoque la acción de la API StartExecution para el estado Map Distributed.

El siguiente ejemplo de política de IAM otorga los privilegios mínimos necesarios al rol de la máquina de estado para ejecutar el estado Map Distributed.

nota

No olvide reemplazar stateMachineName por el nombre de la máquina de estado en la que está utilizando el estado Map Distributed. Por ejemplo, arn:aws:states:us-east-2:123456789012:stateMachine:mystateMachine.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:region:accountID:stateMachine:stateMachineName" ] }, { "Effect": "Allow", "Action": [ "states:DescribeExecution", "states:StopExecution" ], "Resource": "arn:aws:states:region:accountID:execution:stateMachineName:*" } ] }

Ejemplo de política de IAM para redriving de estado Map Distributed

Puede reiniciar las ejecuciones fallidas de flujos de trabajo secundarios en un flujo de trabajo basado en Map Run mediante redriving del flujo de trabajo principal. Un flujo de trabajo principal redriven redrives todos los estados fallidos, incluido el estado Map Distributed. Asegúrese de que la función de ejecución tenga los privilegios mínimos necesarios para poder invocar la acción de la API RedriveExecution en el flujo de trabajo principal.

El siguiente ejemplo de política de IAM otorga los privilegios mínimos necesarios para el rol de la máquina de estado para redriving de un estado Map Distributed.

nota

No olvide reemplazar stateMachineName por el nombre de la máquina de estado en la que está utilizando el estado Map Distributed. Por ejemplo, arn:aws:states:us-east-2:123456789012:stateMachine:mystateMachine.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:RedriveExecution" ], "Resource": "arn:aws:states:us-east-2:123456789012:execution:myStateMachine/myMapRunLabel:*" } ] }

Ejemplos de políticas de IAM para leer datos desde conjuntos de datos de Amazon S3

Los siguientes ejemplos de políticas de IAM otorgan los privilegios mínimos necesarios para acceder a sus conjuntos de datos de Amazon S3 mediante las acciones ListObjectsV2 y GetObjectAPI.

ejemplo Política de IAM para el objeto Amazon S3 como conjunto de datos

El siguiente ejemplo muestra una política de IAM que concede los privilegios mínimos necesarios para acceder a los objetos organizados dentro de processImages en un bucket de Amazon S3 llamado myBucket.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::myBucket" ], "Condition": { "StringLike": { "s3:prefix": [ "processImages" ] } } } ] }
ejemplo Política de IAM para un archivo CSV como conjunto de datos

En el siguiente ejemplo se muestra una política de IAM que concede los privilegios mínimos necesarios para acceder a un archivo CSV llamado ratings.csv.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::myBucket/csvDataset/ratings.csv" ] } ] }
ejemplo Política de IAM para un inventario de Amazon S3 como conjunto de datos

En el siguiente ejemplo se muestra una política de IAM que concede los privilegios mínimos necesarios para acceder a un informe de inventario de Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::destination-prefix/source-bucket/config-ID/YYYY-MM-DDTHH-MMZ/manifest.json", "arn:aws:s3:::destination-prefix/source-bucket/config-ID/data/*" ] } ] }

Ejemplo de política de IAM para escribir datos en un bucket de Amazon S3

El siguiente ejemplo de política de IAM otorga los privilegios mínimos necesarios para escribir los resultados de la ejecución del flujo de trabajo secundario en una carpeta denominada csvJobs de un bucket de Amazon S3 mediante la acción PutObject de la API.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::resultBucket/csvJobs/*" ] } ] }

Permisos de IAM para un bucket de Amazon S3 AWS KMS key cifrado

El estado Map Distributed utiliza cargas multiparte para escribir los resultados de ejecución del flujo de trabajo secundario en un bucket de Amazon S3. Si el bucket se cifra con una clave AWS Key Management Service (AWS KMS), también debe incluir los permisos en la política IAM para realizar las acciones kms:Decrypt, kms:Encrypt y kms:GenerateDataKey sobre la clave Estos permisos son necesarios, ya que Amazon S3 debe descifrar y leer datos de las partes de archivos cifrados antes de finalizar la carga multiparte.

El siguiente ejemplo de política de IAM concede permisos a las acciones kms:Decrypt, kms:Encrypt y kms:GenerateDataKey sobre la clave utilizada para cifrar el bucket de Amazon S3.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-east-1:123456789012:key/111aa2bb-333c-4d44-5555-a111bb2c33dd" ] } }

Para obtener más información, consulte Cargar un archivo grande en Amazon S3 con cifrado mediante AWS KMS key en el AWS Centro de conocimientos.

Si su usuario o rol de IAM es el Cuenta de AWS mismo que elKMS key, debe tener estos permisos en la política clave. Si el usuario o rol de IAM pertenecen a una cuenta distinta que la KMS key, debe tener los permisos tanto en la política de claves como en el usuario o rol de IAM.