Plantillas de política de AWS SAM - AWS Serverless Application Model

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.

Plantillas de política de AWS SAM

AWS Serverless Application Model (AWS SAM) le permite elegir entre una lista de plantillas de políticas para delimitar los permisos de sus funciones de Lambda y máquinas de estado de AWS Step Functions a los recursos que utiliza su aplicación.

Las aplicaciones AWS SAM incluidas en AWS Serverless Application Repository que utilizan políticas de plantillas no requieren ningún reconocimiento especial del cliente para implementar la aplicación desde AWS Serverless Application Repository.

Si desea solicitar que se agregue una nueva plantilla de política, haga lo siguiente:

  1. Envía una solicitud de extracción del archivo fuente policy_templates.json en la rama develop del proyecto de GitHub de AWS SAM. Puede encontrar el archivo fuente en policy_templates.json en el sitio web de GitHub.

  2. Envía un problema en el proyecto GitHub de AWS SAM que incluya los motivos de la solicitud de extracción y un enlace a la solicitud. Utiliza este enlace para enviar una nueva edición: Issues AWS Serverless Application Model.

Sintaxis

Para cada plantilla de política que especifica en su archivo de plantilla de AWS SAM, siempre debe especificar un objeto que contenga los valores de los marcadores de posición de la plantilla de política. Si una plantilla de política no requiere ningún valor de marcador de posición, debe especificar un objeto vacío.

YAML

MyFunction: Type: AWS::Serverless::Function Properties: Policies: - PolicyTemplateName1: # Policy template with placeholder value Key1: Value1 - PolicyTemplateName2: {} # Policy template with no placeholder value

Ejemplos

Ejemplo 1: plantilla de política con valores de marcador de posición

El siguiente ejemplo muestra que la plantilla de política SQSPollerPolicy espera QueueName como recurso. La plantilla de AWS SAM recupera el nombre de la cola de SQS de Amazon «MyQueue», que se puede crear en la misma aplicación o solicitar como un parámetro de la aplicación.

MyFunction: Type: 'AWS::Serverless::Function' Properties: CodeUri: ${codeuri} Handler: hello.handler Runtime: python2.7 Policies: - SQSPollerPolicy: QueueName: !GetAtt MyQueue.QueueName

Ejemplo 2: plantilla de política sin valores de marcador de posición

El ejemplo siguiente contiene la plantilla de política CloudWatchPutMetricPolicy, que no tiene valores de marcador de posición.

nota

Aunque no haya valores de marcador de posición, debe especificar un objeto vacío; de lo contrario, se producirá un error.

MyFunction: Type: 'AWS::Serverless::Function' Properties: CodeUri: ${codeuri} Handler: hello.handler Runtime: python2.7 Policies: - CloudWatchPutMetricPolicy: {}

Tabla de plantillas de políticas

La siguiente es una tabla de las plantillas de políticas disponibles.

Plantilla de política Descripción
AcmGetCertificatePolicy Concede permiso para leer un certificado desde AWS Certificate Manager.
AMIDescribePolicy Concede permiso para describir imágenes de máquina de Amazon (AMI).
AthenaQueryPolicy Concede permisos para ejecutar consultas de Athena.
AWSSecretsManagerGetSecretValuePolicy Concede permiso para obtener el valor secreto del secreto AWS Secrets Manager especificado.
AWSSecretsManagerRotationPolicy Concede permiso para transferir un secreto AWS Secrets Manager.
CloudFormationDescribeStacksPolicy Concede permiso para describir las pilas de AWS CloudFormation.
CloudWatchDashboardPolicy Concede permisos para poner las métricas en funcionamiento en los paneles de CloudWatch.
CloudWatchDescribeAlarmHistoryPolicy Concede permiso para describir el historial de alarmas de CloudWatch.
CloudWatchPutMetricPolicy Concede permiso para enviar métricas a CloudWatch.
CodeCommitCrudPolicy Concede permisos para crear/leer/actualizar/eliminar objetos dentro de un repositorio CodeCommit específico.
CodeCommitReadPolicy Concede permisos para leer objetos dentro de un repositorio CodeCommit específico.
CodePipelineLambdaExecutionPolicy Concede permiso para que una función de Lambda invocada por CodePipeline informe del estado del trabajo.
CodePipelineReadOnlyPolicy Concede permiso de lectura para obtener detalles sobre una canalización CodePipeline.
ComprehendBasicAccessPolicy Concede permiso para detectar entidades, frases clave, idiomas y sentimientos.
CostExplorerReadOnlyPolicy Concede permisos de solo lectura a las API de Cost Explorer de solo lectura para el historial de facturación.
DynamoDBBackupFullAccessPolicy Concede permiso de lectura y escritura a las copias de seguridad bajo demanda de DynamoDB para una tabla.
DynamoDBCrudPolicy Concede permisos de creación, lectura, actualización y eliminación a una tabla de Amazon DynamoDB.
DynamoDBReadPolicy Concede permiso de solo lectura a una tabla DynamoDB.
DynamoDBReconfigurePolicy Concede permiso para volver a configurar una tabla DynamoDB.
DynamoDBRestoreFromBackupPolicy Concede permiso para restaurar una tabla de DynamoDB a partir de una copia de seguridad.
DynamoDBStreamReadPolicy Concede permiso para describir y leer flujos y registros de DynamoDB.
DynamoDBWritePolicy Concede permiso de solo escritura a una tabla DynamoDB.
EC2CopyImagePolicy Concede permiso para copiar imágenes de Amazon EC2.
EC2DescribePolicy Concede permiso para describir instancias de Amazon Elastic Compute Cloud (Amazon EC2).
EcsRunTaskPolicy Concede permiso para iniciar una nueva tarea para una definición de tarea.
EFSWriteAccessPolicy Concede permiso para montar un sistema de archivos de Amazon EFS con acceso de escritura.
EKSDescribePolicy Concede permiso para describir o enumerar los clústeres de Amazon EKS.
ElasticMapReduceAddJobFlowStepsPolicy Concede permiso para añadir nuevos pasos a un clúster en ejecución.
ElasticMapReduceCancelStepsPolicy Concede permiso para cancelar un paso o pasos pendientes en un clúster en ejecución.
ElasticMapReduceModifyInstanceFleetPolicy Concede permiso para enumerar detalles y modificar las capacidades para las flotas de instancia de un clúster.
ElasticMapReduceModifyInstanceGroupsPolicy Concede permiso para enumerar los detalles y modificar la configuración de los grupos de instancias de un clúster.
ElasticMapReduceSetTerminationProtectionPolicy Concede permiso para establecer la protección de terminación para un clúster.
ElasticMapReduceTerminateJobFlowsPolicy Concede permiso para cerrar un clúster.
ElasticsearchHttpPostPolicy Concede permiso de POST a Amazon OpenSearch Service.
EventBridgePutEventsPolicy Concede permisos para enviar eventos a EventBridge.
FilterLogEventsPolicy Concede permiso para filtrar eventos de CloudWatch Logs de un grupo de registros especificado.
FirehoseCrudPolicy Concede permiso para crear, escribir, actualizar y eliminar un flujo de entrega de Kinesis Data Firehose.
FirehoseWritePolicy Concede permiso para escribir en un flujo de entrega de Kinesis Data Firehose.
KinesisCrudPolicy Concede permiso para crear, publicar y eliminar un flujo de Amazon Kinesis.
KinesisStreamReadPolicy Concede permiso para listar y leer un flujo de Amazon Kinesis.
KMSDecryptPolicy Concede permiso para descifrar con una clave AWS Key Management Service (AWS KMS).
KMSEncryptPolicy Concede permiso para cifrar con una clave AWS Key Management Service (AWS KMS).
LambdaInvokePolicy Concede permiso para invocar una función de AWS Lambda, alias o versión.
MobileAnalyticsWriteOnlyAccessPolicy Concede permiso de solo escritura para poner datos de eventos para todos los recursos de la aplicación.
OrganizationsListAccountsPolicy Concede permisos de solo lectura para incluir los nombres e ID de las cuentas secundarias.
PinpointEndpointAccessPolicy Concede permiso para obtener y actualizar puntos de conexión para una aplicación de Amazon Pinpoint.
PollyFullAccessPolicy Concede permiso de acceso completo a los recursos del léxico de Amazon Polly.
RekognitionDetectOnlyPolicy Concede permiso para detectar rostros, etiquetas y texto.
RekognitionFacesManagementPolicy Concede permiso para añadir, eliminar y buscar rostros en una colección de Amazon Rekognition.
RekognitionFacesPolicy Concede permiso para comparar y detectar rostros y etiquetas.
RekognitionLabelsPolicy Concede permiso para detectar etiquetas de objetos y de moderación.
RekognitionNoDataAccessPolicy Concede permiso para comparar y detectar rostros y etiquetas.
RekognitionReadPolicy Concede permiso para enumerar y buscar rostros.
RekognitionWriteOnlyAccessPolicy Concede permiso para crear colecciones e indexar rostros.
Route53ChangeResourceRecordSetsPolicy Concede permiso para cambiar los conjuntos de registros de recursos en Route 53.
S3CrudPolicy Concede permisos de creación, lectura, actualización y eliminación para actuar en los objetos de un bucket de Amazon S3.
S3FullAccessPolicy Concede permiso de acceso completo para actuar sobre los objetos de un bucket de Amazon S3.
S3ReadPolicy Concede permiso de solo lectura para leer objetos en un bucket de Amazon Simple Storage Service (Amazon S3).
S3WritePolicy Concede permiso de escritura para escribir objetos en un bucket de Amazon S3.
SageMakerCreateEndpointConfigPolicy Concede permiso para crear una configuración de punto de conexión en SageMaker.
SageMakerCreateEndpointPolicy Concede permiso para crear un punto de conexión en SageMaker.
ServerlessRepoReadWriteAccessPolicy Concede permisos de acceso para crear y enumerar aplicaciones en el servicio de AWS Serverless Application Repository.
SESBulkTemplatedCrudPolicy Concede permiso para enviar correos electrónicos, correos electrónicos con plantillas, correos electrónicos masivos con plantillas y verificar la identidad.
SESBulkTemplatedCrudPolicy_v2 Concede permiso para enviar correos electrónicos, correos electrónicos con plantillas y correos electrónicos masivos con plantillas de Amazon SES y para verificar la identidad.
SESCrudPolicy Concede permiso para enviar correo electrónico y verificar la identidad.
SESEmailTemplateCrudPolicy Concede permiso para crear, obtener, enumerar, actualizar y eliminar plantillas de correo electrónico de Amazon SES.
SESSendBouncePolicy Concede permiso de SendBounce a una identidad de Amazon Simple Email Service (Amazon SES).
SNSCrudPolicy Concede permisos para crear, publicar y suscribirse a temas de Amazon SNS.
SNSPublishMessagePolicy Concede permiso para publicar un mensaje en un tema de Amazon Simple Notification Service (Amazon SNS).
SQSPollerPolicy Concede permiso para sondear una cola de Amazon Simple Queue Service (Amazon SQS).
SQSSendMessagePolicy Concede permisos para enviar mensajes a una cola de Amazon SQS.
SSMParameterReadPolicy Concede permiso para acceder a un parámetro de un almacén de parámetros de Amazon EC2 Systems Manager (SSM) para cargar secretos en esta cuenta. Se utiliza cuando el nombre del parámetro no tiene un prefijo de barra inclinada.
SSMParameterWithSlashPrefixReadPolicy Concede permiso para acceder a un parámetro de un almacén de parámetros de Amazon EC2 Systems Manager (SSM) para cargar secretos en esta cuenta. Se utiliza cuando el nombre del parámetro tiene un prefijo de barra diagonal.
StepFunctionsExecutionPolicy Concede permiso para iniciar la ejecución de una máquina de estado de Step Functions.
TextractDetectAnalyzePolicy Concede acceso para detectar y analizar documentos con Amazon Textract.
TextractGetResultPolicy Concede acceso a documentos detectados y analizados desde Amazon Textract.
TextractPolicy Proporciona acceso completo a Amazon Textract.
VPCAccessPolicy Permite crear, eliminar, describir y eliminar interfaces de red elásticas.

Solución de problemas

Error de la CLI de SAM: «Debe especificar valores de parámetros válidos para la plantilla de política '<policy-template-name>'»

Al ejecutar sam build, verá el siguiente error:

"Must specify valid parameter values for policy template '<policy-template-name>'"
            

Esto significa que no pasó un objeto vacío al declarar una plantilla de política que no tiene ningún valor de marcador de posición.

Para solucionar este problema, declare la política como se muestra en el siguiente ejemplo paraCloudWatchPutMetricPolicy.

MyFunction: Policies: - CloudWatchPutMetricPolicy: {}