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:
-
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.jsonen el sitio web de GitHub. -
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: {}