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à:
-
Creazione di una configurazione per la firma del codice: dichiara una
AWS::Lambda::CodeSigningConfig
risorsa 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 laCodeSigningConfigArn
proprietà della funzione con l'Amazon Resource Name (ARN) di unaAWS::Lambda::CodeSigningConfig
risorsa. -
Firma del codice: utilizza il
sam deploy
comandosam package
or con l'--signing-profiles
opzione.
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::CodeSigningConfig
risorsa 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-profiles
opzione 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-buckettest-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-buckettest-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-buckettest-bucket
--template-file packaged.yaml --stack-name --region us-east-1 --capabilities CAPABILITY_IAM
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.