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.
Configurar la firma de código paraAWS SAMAplicaciones de
Puede usarAWS SAMpara habilitar la firma de código con las aplicaciones sin servidor para garantizar que solo se implementa código de confianza. Para obtener más información acerca de la característica de firma de código, consulteConfiguración de la firma de código para funciones de Lambdaen laAWS LambdaGuía para desarrolladores.
Antes de configurar la firma de código para la aplicación sin servidor, debe crear un perfil de firma medianteAWSSigner. Este perfil de firma se utiliza para las siguientes tareas:
-
Creación de una configuración de firma de código— Declarar un
AWS::Lambda::CodeSigningConfig
para especificar los perfiles de firma de los editores de confianza y establecer la acción de política para las comprobaciones de validación. Puede declarar este objeto en el mismoAWS SAMplantilla como función sin servidor, en otraAWS SAMplantilla o en unAWS CloudFormationplantilla. A continuación, habilita la firma de código para una función sin servidor especificando laCodeSigningConfigArn
la función con el nombre de recurso de Amazon (ARN) de unAWS::Lambda::CodeSigningConfig
recurso. -
Firmar el código— UsarUse el
sam package
osam deploy
comando con el--signing-profiles
opción.
Para firmar correctamente el código con elsam package
osam
deploy
, el control de versiones debe estar habilitado para el bucket de Amazon S3 que utilice con estos comandos. Si está utilizando el bucket de Amazon S3 queAWS SAMcrea para usted, el control de versiones se habilita automáticamente. Para obtener más información acerca del control de versiones de buckets de Amazon S3 e instrucciones para habilitar el control de versiones en un bucket de Amazon S3 que proporcione, consulteUsar el control de versiones en buckets de Amazon S3en laAmazon Simple Storage Service Guide.
Al implementar una aplicación sin servidor, Lambda realiza comprobaciones de validación de todas las funciones para las que ha habilitado la firma de código. Lambda también realiza comprobaciones de validación de las capas de las que dependen esas funciones. Para obtener más información acerca de las comprobaciones de validación de Lambda, consulteValidación de firmasen laAWS LambdaGuía para desarrolladores.
Ejemplo
Creación de un perfil de firma
Para crear un perfil de firma, ejecute el siguiente comando:
aws signer put-signing-profile --platform-id "AWSLambda-SHA384-ECDSA" --profile-name
MySigningProfile
Si el comando anterior se ejecuta correctamente, verá que se ha devuelto el ARN del perfil de firma. Por ejemplo:
{ "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" }
LaprofileVersionArn
contiene el ARN que se utilizará al crear la configuración de firma de código.
Creación de una configuración de firma de código y habilitación de la firma de código para una función
El siguiente ejemploAWS SAMplantilla declara unAWS::Lambda::CodeSigningConfig
y habilita la firma de código para una función Lambda. En este ejemplo, hay un perfil de confianza y las implementaciones se rechazan si fallan las comprobaciones de firma.
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"
Firmar el código
Puede firmar el código al empaquetar o desplegar la aplicación. Especifique la--signing-profiles
con la opciónsam package
osam deploy
, tal y como se muestra en los comandos de ejemplo siguientes.
Firma del código de función al empaquetar la aplicación:
sam package --signing-profiles
HelloWorld=MySigningProfile
--s3-buckettest-bucket
--output-template-file packaged.yaml
Firmar el código de función y una capa de la que depende su función al empaquetar la aplicación:
sam package --signing-profiles
HelloWorld=MySigningProfile MyLayer=MySigningProfile
--s3-buckettest-bucket
--output-template-file packaged.yaml
Firma el código de función y una capa y, a continuación, realiza una implementación:
sam deploy --signing-profiles
HelloWorld=MySigningProfile MyLayer=MySigningProfile
--s3-buckettest-bucket
--template-file packaged.yaml --stack-name --region us-east-1 --capabilities CAPABILITY_IAM
Para firmar correctamente el código con elsam package
osam
deploy
, el control de versiones debe estar habilitado para el bucket de Amazon S3 que utilice con estos comandos. Si está utilizando el bucket de Amazon S3 queAWS SAMcrea para usted, el control de versiones se habilita automáticamente. Para obtener más información acerca del control de versiones de buckets de Amazon S3 e instrucciones para habilitar el control de versiones en un bucket de Amazon S3 que proporcione, consulteUsar el control de versiones en buckets de Amazon S3en laAmazon Simple Storage Service Guide.
Proporcionar perfiles de firma consam deploy --guided
Cuando ejecutas elsam deploy --guided
con una aplicación sin servidor configurada con firma de código,AWS SAMle pide que proporcione el perfil de firma que se utilizará para la firma de código. Para obtener más información acerca desam deploy
--guided
avisos, consultesam deployen laAWS SAMReferencia de los comandos de la CLI.