Modèles de politique AWS SAM - AWS Serverless Application Model

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Modèles de politique AWS SAM

Le AWS Serverless Application Model (AWS SAM) vous permet de choisir parmi une liste de modèles de politiques pour étendre les autorisations de vos fonctions Lambda et de vos machines d' AWS Step Functions état aux ressources utilisées par votre application.

AWS SAM les applications du AWS Serverless Application Repository qui utilisent des modèles de politique ne nécessitent aucun accusé de réception spécial du client pour déployer l'application depuis le. AWS Serverless Application Repository

Si vous souhaitez demander un nouveau modèle de stratégie à ajouter, procédez comme suit :

  1. Soumettez une pull request sur le fichier source policy_templates.json dans la branche du develop projet. AWS SAM GitHub Vous pouvez trouver le fichier source dans policy_templates.json sur le site Web. GitHub

  2. Soumettez un problème dans le AWS SAM GitHub projet qui inclut les raisons de votre pull request et un lien vers la demande. Utilisez ce lien pour soumettre un nouveau problème : AWS Serverless Application Model : Problèmes.

Syntaxe

Pour chaque modèle de stratégie que vous spécifiez dans votre fichier de AWS SAM modèle, vous devez toujours spécifier un objet contenant les valeurs d'espace réservé du modèle de stratégie. Si un modèle de stratégie ne nécessite aucune valeur d'espace réservé, vous devez spécifier un objet vide.

YAML

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

Exemples

Exemple 1 : Modèle de stratégie avec des valeurs d'espace réservé

L'exemple suivant montre que le modèle de stratégie SQSPollerPolicy attend un QueueName comme ressource. Le AWS SAM modèle récupère le nom de la file « MyQueue » Amazon SQS, que vous pouvez créer dans la même application ou demander en tant que paramètre de l'application.

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

Exemple 2 : modèle de stratégie sans valeurs d'espace réservé

L'exemple suivant contient le modèle de stratégieCloudWatchPutMetricPolicy, qui n'a pas de valeurs d'espace réservé.

Note

Même s'il n'y a pas de valeurs d'espace réservé, vous devez spécifier un objet vide, sinon une erreur se produira.

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

Tableau de modèle de stratégie

Voici un tableau des modèles de stratégie disponibles.

Modèle de stratégie Description
AcmGetCertificatePolicy Donne l'autorisation de lire un certificat à partir de AWS Certificate Manager.
AMIDescribePolicy Donne l'autorisation de décrire les Amazon Machine Images (AMI)
AthenaQueryPolicy Donne des autorisations pour exécuter des requêtes Athena.
AWSSecretsManagerGetSecretValuePolicy Donne l'autorisation d'obtenir la valeur secrète pour le secret AWS Secrets Manager spécifié.
AWSSecretsManagerRotationPolicy Donne l'autorisation de faire pivoter un secret dans AWS Secrets Manager.
CloudFormationDescribeStacksPolicy Donne l'autorisation de décrire les AWS CloudFormation piles.
CloudWatchDashboardPolicy Permet de placer des métriques à appliquer sur les CloudWatch tableaux de bord.
CloudWatchDescribeAlarmHistoryPolicy Permet de décrire l'historique des CloudWatch alarmes.
CloudWatchPutMetricPolicy Donne l'autorisation d'envoyer des métriques à CloudWatch.
CodeCommitCrudPolicy Permet de créer/lire/mettre à jour/supprimer des objets dans un référentiel spécifique. CodeCommit
CodeCommitReadPolicy Permet de lire des objets dans un CodeCommit référentiel spécifique.
CodePipelineLambdaExecutionPolicy Permet à une fonction Lambda invoquée par CodePipeline de signaler l'état de la tâche.
CodePipelineReadOnlyPolicy Donne l'autorisation de lecture pour obtenir des informations sur un CodePipeline pipeline.
ComprehendBasicAccessPolicy Donne l'autorisation de détecter des entités, des expressions clés, des langues et des sentiments.
CostExplorerReadOnlyPolicy Donne l'autorisation de lecture seule pour les API de Cost Explorer en lecture seule pour l'historique de facturation.
DynamoDBBackupFullAccessPolicy Donne l'autorisation de lecture/écriture aux sauvegardes DynamoDB à la demande pour une table.
DynamoDBCrudPolicy Donne les autorisations de créer, lire, mettre à jour, supprimer à une table Amazon DynamoDB.
DynamoDBReadPolicy Donne l'autorisation de lecture seule à une table DynamoDB.
DynamoDBReconfigurePolicy Donne l'autorisation de reconfigurer une table DynamoDB.
DynamoDBRestoreFromBackupPolicy Donne l'autorisation de restaurer une table DynamoDB à partir d'une sauvegarde.
DynamoDBStreamReadPolicy Donne l'autorisation de décrire et de lire les flux DynamoDB Streams ainsi que les enregistrements.
DynamoDBWritePolicy Donne l'autorisation d'écriture seule à une table DynamoDB.
EC2CopyImagePolicy Donne l'autorisation de copier les images Amazon EC2.
EC2DescribePolicy Donne l'autorisation de décrire des instances Amazon Elastic Compute Cloud (Amazon EC2).
EcsRunTaskPolicy Donne l'autorisation de démarrer une nouvelle tâche pour une définition de tâche.
EFSWriteAccessPolicy Donne l'autorisation de monter un système de fichiers Amazon EFS avec accès en écriture.
EKSDescribePolicy Donne l'autorisation de décrire ou de répertorier les clusters Amazon EKS.
ElasticMapReduceAddJobFlowStepsPolicy Donne l'autorisation d'ajouter de nouvelles étapes à un cluster en cours d'exécution.
ElasticMapReduceCancelStepsPolicy Donne l'autorisation d'annuler une étape ou des étapes en attente dans un cluster en cours d'exécution.
ElasticMapReduceModifyInstanceFleetPolicy Donne l'autorisation de répertorier les détails et de modifier les capacités des flottes d'instances au sein d'un cluster.
ElasticMapReduceModifyInstanceGroupsPolicy Donne l'autorisation de répertorier les détails et de modifier les réglages des groupes d'instances au sein d'un cluster.
ElasticMapReduceSetTerminationProtectionPolicy Donne l'autorisation de définir une protection contre l'arrêt pour un cluster.
ElasticMapReduceTerminateJobFlowsPolicy Donne l'autorisation d'arrêter un cluster.
ElasticsearchHttpPostPolicy Donne l'autorisation POST à Amazon OpenSearch Service.
EventBridgePutEventsPolicy Donne l'autorisation d'envoyer des événements à EventBridge.
FilterLogEventsPolicy Permet de filtrer les événements CloudWatch des journaux à partir d'un groupe de journaux spécifié.
FirehoseCrudPolicy Donne l'autorisation de créer, d'écrire, de mettre à jour et de supprimer un flux de diffusion Firehose.
FirehoseWritePolicy Donne l'autorisation d'écrire dans un flux de diffusion Firehose.
KinesisCrudPolicy Donne l'autorisation de créer, publier et supprimer un flux Amazon Kinesis.
KinesisStreamReadPolicy Donne l'autorisation d'afficher et de lire un flux Amazon Kinesis.
KMSDecryptPolicy Donne l'autorisation de déchiffrer avec une clé AWS Key Management Service (AWS KMS).
KMSEncryptPolicy Donne l'autorisation de chiffrer avec une clé AWS Key Management Service (AWS KMS).
LambdaInvokePolicy Permet d'invoquer une AWS Lambda fonction, un alias ou une version.
MobileAnalyticsWriteOnlyAccessPolicy Donne uniquement l'autorisation d'écriture pour placer les données d'événements pour toutes les ressources d'application.
OrganizationsListAccountsPolicy Donne l'autorisation en lecture seule de répertorier les noms et les ID de compte enfant.
PinpointEndpointAccessPolicy Donne l'autorisation d'obtenir et de mettre à jour les points de terminaison pour une application Amazon Pinpoint.
PollyFullAccessPolicy Donne l'autorisation d'accès complet aux ressources de lexique Amazon Polly.
RekognitionDetectOnlyPolicy Donne l'autorisation de comparer et de détecter les visages et les étiquettes.
RekognitionFacesManagementPolicy Donne l'autorisation d'ajouter, de supprimer et de rechercher des visages dans une collection Amazon Rekognition.
RekognitionFacesPolicy Donne l'autorisation de comparer et de détecter les visages et les étiquettes.
RekognitionLabelsPolicy Donne l'autorisation de détecter les étiquettes d'objet et de modération.
RekognitionNoDataAccessPolicy Donne l'autorisation de comparer et de détecter les visages et les étiquettes.
RekognitionReadPolicy Donne l'autorisation de lister et de rechercher des visages.
RekognitionWriteOnlyAccessPolicy Donne l'autorisation de créer des collections et d'indexer des visages.
Route53ChangeResourceRecordSetsPolicy Donne l'autorisation de modifier des jeux d'enregistrements de ressources dans Route 53.
S3CrudPolicy Donne l'autorisation de créer, lire, mettre à jour et supprimer pour agir sur les objets d'un compartiment Amazon S3.
S3FullAccessPolicy Donne l'autorisation d'accès complet pour agir sur les objets d'un compartiment Amazon S3.
S3ReadPolicy Donne l'autorisation de lire des objets en lecture seule dans un compartiment Amazon Simple Storage Service (Amazon S3).
S3WritePolicy Donne l'autorisation d'écrire des objets dans un compartiment Amazon S3.
SageMakerCreateEndpointConfigPolicy Donne l'autorisation de créer une configuration de point de terminaison dans SageMaker.
SageMakerCreateEndpointPolicy Donne l'autorisation de créer un point de terminaison dans SageMaker.
ServerlessRepoReadWriteAccessPolicy Permet de créer et de répertorier des applications dans le AWS Serverless Application Repository service.
SESBulkTemplatedCrudPolicy Donne l'autorisation d'envoyer des e-mails, des e-mails modélisés, des e-mails groupés et de vérifier l'identité.
SESBulkTemplatedCrudPolicy_v2 Donne l'autorisation d'envoyer des e-mails Amazon SES, des e-mails modélisés, des e-mails groupés et de vérifier l'identité.
SESCrudPolicy Donne l'autorisation d'envoyer un e-mail et de vérifier l'identité.
SESEmailTemplateCrudPolicy Donne l'autorisation de créer, obtenir, répertorier, mettre à jour et supprimer les modèles d'e-mail Amazon SES.
SESSendBouncePolicy Donne SendBounce l'autorisation d'utiliser une identité Amazon Simple Email Service (Amazon SES).
SNSCrudPolicy Donne l'autorisation de créer et de publier des rubriques Amazon SNS, et de s'y abonner.
SNSPublishMessagePolicy Donne l'autorisation de publier un message dans une rubrique Amazon Simple Notification Service (Amazon SNS).
SQSPollerPolicy Donne l'autorisation d'interroger une file d'attente Amazon Simple Queue Service (Amazon SQS).
SQSSendMessagePolicy Donne l'autorisation d'envoyer un message à une file d'attente Amazon SQS.
SSMParameterReadPolicy Donne l'autorisation d'accéder à un paramètre à partir d'un magasin de paramètres Amazon EC2 Systems Manager (SSM) pour charger des secrets dans ce compte. À utiliser lorsque le nom du paramètre n'est pas précédé d'une barre oblique.
SSMParameterWithSlashPrefixReadPolicy Donne l'autorisation d'accéder à un paramètre à partir d'un magasin de paramètres Amazon EC2 Systems Manager (SSM) pour charger des secrets dans ce compte. À utiliser lorsque le nom du paramètre est précédé d'une barre oblique.
StepFunctionsExecutionPolicy Donne l'autorisation de lancer l'exécution d'une machine d'état Step Functions.
TextractDetectAnalyzePolicy Donne l'accès permettant de détecter et d'analyser des documents avec Amazon Textract.
TextractGetResultPolicy Donne l'accès permettant d'obtenir des documents détectés et analysés avec Amazon Textract.
TextractPolicy Donne l'accès complet à Amazon Textract.
VPCAccessPolicy Donne l'accès pour créer, supprimer, décrire et détacher des interfaces réseau élastiques.

Résolution des problèmes

Erreur SAM CLI : « Vous devez spécifier des valeurs de paramètres valides pour le modèle de politique '< policy-template-name >' »

Lors de l'exécution de sam build, l'erreur suivante s'affiche :

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

Cela signifie que vous n'avez pas transmis d'objet vide lors de la déclaration d'un modèle de stratégie qui ne contient aucune valeur d'espace réservé.

Pour résoudre ce problème, déclarez la stratégie comme l'exemple suivant pour CloudWatchPutMetricPolicy.

MyFunction: Policies: - CloudWatchPutMetricPolicy: {}