Skip to main content

Tool for Signing and Verifying Signatures of CloudFormation Templates

Project description

CF-Signer - CloudFormation Signing Utility

https://img.shields.io/pypi/v/cf_signer.svg https://img.shields.io/travis/avishayil/cf_signer.svg Documentation Status

Tool for signing and verifying the integrity of CloudFormation templates

Features

  • Signing CloudFormation templates by creating a sha256 hash of the file, encrypted with the user’s private key and store base64 form of the signature in the CloudFormation template Metadata section.

  • Verifying the integrity of CloudFormation templates by looking for the signature in the Metadata, extracting it and verifying.

Signing Flow

The process of signing is based on the following flow:

  • Generate RSA private key:

    openssl genrsa -out key.pem 2048
  • Get public key from the RSA generated private key:

    openssl rsa -in key.pem -outform PEM -pubout -out pubkey.pem
  • Create a sha256 hash signature, encrypted with the private key:

    openssl dgst -sha256 -sign key.pem -out sign.sha256 cf.template
  • Convert the signature to base64 string:

    base64 -i sign.sha256 -o sign.b64
  • Attach the base64 signature to the CloudFormation template, under the Metadata block (creating one if it doesn’t exist).

Verification Flow

The process of signature verification is based on the following flow:

  • Detach the signature from the CloudFormation template

  • Convert the base64 detached signature string to binary format:

    base64 -d sign.b64 > sign.sha256
  • Validate the signature using the public key:

    openssl dgst -sha256 -verify pubkey.pem -signature sign.sha256 cf.template

Credits

History

0.0.1 (2021-06-22)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cf_signer-0.0.1.tar.gz (15.3 kB view hashes)

Uploaded Source

Built Distribution

cf_signer-0.0.1-py2.py3-none-any.whl (5.9 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page