Configurazione di firma del codice perAWS SAM le applicazioni - AWS Serverless Application Model

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione di firma del codice perAWS SAM le applicazioni

Puoi utilizzarloAWS SAM per abilitare la firma del codice con le tue applicazioni serverless per garantire che venga distribuito solo codice affidabile. Per ulteriori informazioni sulla funzionalità di firma del codice, vedere Configurazione della firma del codice per le funzioni Lambda nella Guida per gliAWS Lambda sviluppatori.

Prima di configurare la firma del codice per l'applicazione serverless, è necessario creare un profilo di firma utilizzandoAWS Signer. Questo profilo di firma viene utilizzato per le seguenti attività:

  1. Creazione di una configurazione per la firma del codice: dichiara una AWS::Lambda::CodeSigningConfigrisorsa per specificare i profili di firma di editori affidabili e per impostare l'azione politica per i controlli di convalida. È possibile dichiarare questo oggetto nello stessoAWS SAM modello della funzione serverless, in unAWS SAM modello diverso o in unAWS CloudFormation modello. È quindi possibile abilitare la firma del codice per una funzione serverless specificando la CodeSigningConfigArnproprietà della funzione con l'Amazon Resource Name (ARN) di una AWS::Lambda::CodeSigningConfigrisorsa.

  2. Firma del codice: utilizza il sam deploycomando sam packageor con l'--signing-profilesopzione.

Nota

Per firmare correttamente il codice con isam deploy comandisam package or, è necessario abilitare il controllo delle versioni per il bucket Amazon S3 utilizzato con questi comandi. Se utilizzi il bucket Amazon S3 cheAWS SAM crea per te, il controllo delle versioni viene abilitato automaticamente. Per ulteriori informazioni sul controllo delle versioni dei bucket Amazon S3 e le istruzioni per abilitare il controllo delle versioni su un bucket Amazon S3 fornito, consulta Utilizzo del controllo delle versioni nei bucket Amazon S3 nella Amazon Simple Storage Service User Guide.

Quando distribuisci un'applicazione serverless, Lambda esegue controlli di convalida su tutte le funzioni per le quali hai abilitato la firma del codice. Lambda esegue anche controlli di convalida su tutti i livelli da cui dipendono tali funzioni. Per ulteriori informazioni sui controlli di convalida di Lambda, consulta la convalida della firma nella Guida per gliAWS Lambda sviluppatori.

Esempio

Creazione di un profilo di firma

Per creare un profilo di firma, eseguire il comando indicato di seguito:

aws signer put-signing-profile --platform-id "AWSLambda-SHA384-ECDSA" --profile-name MySigningProfile

Se il comando precedente viene eseguito correttamente, verrà visualizzato l'ARN del profilo di firma restituito. Ad esempio:

{ "arn": "arn:aws:signer:us-east-1:111122223333:/signing-profiles/MySigningProfile", "profileVersion": "SAMPLEverx", "profileVersionArn": "arn:aws:signer:us-east-1:111122223333:/signing-profiles/MySigningProfile/SAMPLEverx" }

IlprofileVersionArn campo contiene l'ARN da utilizzare quando si crea la configurazione di firma del codice.

Creazione di una configurazione di firma del codice e attivazione della firma del codice per una funzione

IlAWS SAM modello di esempio seguente dichiara una AWS::Lambda::CodeSigningConfigrisorsa e abilita la firma del codice per una funzione Lambda. In questo esempio, esiste un profilo affidabile e le distribuzioni vengono rifiutate se i controlli della firma falliscono.

Resources: HelloWorld: Type: AWS::Serverless::Function Properties: CodeUri: hello_world/ Handler: app.lambda_handler Runtime: python3.7 CodeSigningConfigArn: !Ref MySignedFunctionCodeSigningConfig MySignedFunctionCodeSigningConfig: Type: AWS::Lambda::CodeSigningConfig Properties: Description: "Code Signing for MySignedLambdaFunction" AllowedPublishers: SigningProfileVersionArns: - MySigningProfile-profileVersionArn CodeSigningPolicies: UntrustedArtifactOnDeployment: "Enforce"

Firma del codice

Puoi firmare il codice durante la creazione di pacchetti o la distribuzione dell'applicazione. Specificate l'--signing-profilesopzione con ilsam deploy comandosam package or, come mostrato nei seguenti comandi di esempio.

Firma del codice funzionale al momento della compilazione della domanda:

sam package --signing-profiles HelloWorld=MySigningProfile --s3-bucket test-bucket --output-template-file packaged.yaml

Firma sia il codice della funzione che un layer da cui dipende la funzione, quando compila la tua applicazione:

sam package --signing-profiles HelloWorld=MySigningProfile MyLayer=MySigningProfile --s3-bucket test-bucket --output-template-file packaged.yaml

Firma del codice della funzione e di un layer, quindi esegui una distribuzione:

sam deploy --signing-profiles HelloWorld=MySigningProfile MyLayer=MySigningProfile --s3-bucket test-bucket --template-file packaged.yaml --stack-name --region us-east-1 --capabilities CAPABILITY_IAM
Nota

Per firmare correttamente il codice con isam deploy comandisam package or, è necessario abilitare il controllo delle versioni per il bucket Amazon S3 utilizzato con questi comandi. Se utilizzi il bucket Amazon S3 cheAWS SAM crea per te, il controllo delle versioni viene abilitato automaticamente. Per ulteriori informazioni sul controllo delle versioni dei bucket Amazon S3 e le istruzioni per abilitare il controllo delle versioni su un bucket Amazon S3 fornito, consulta Utilizzo del controllo delle versioni nei bucket Amazon S3 nella Amazon Simple Storage Service User Guide.

Fornire profili di firma consam deploy --guided

Quando si esegue ilsam deploy --guided comando con un'applicazione serverless configurata con la firma del codice,AWS SAM richiede di fornire il profilo di firma da utilizzare per la firma del codice. Per ulteriori informazioni suisam deploy --guided prompt, vederesam deploy il riferimento ai comandiAWS SAM CLI.