@@ -332,6 +332,232 @@ license is available at: http://aws.amazon.com/apache2.0/
332332Verifying the Signature
333333-----------------------
334334
335- .. include :: signing.rst
335+ This section describes the recommended process of verifying the validity of the
336+ AWS Data Science Workflows Python SDK's compiled distributions on
337+ `PyPI <https://pypi.org/project/stepfunctions/ >`__.
338+
339+ Whenever you download an application from the internet, we recommend that you
340+ authenticate the identity of the software publisher and check that the
341+ application is not altered or corrupted since it was published. This protects
342+ you from installing a version of the application that contains a virus or other
343+ malicious code.
344+
345+ If after running the steps in this topic, you determine that the distribution
346+ for the AWS Data Science Workflows Python SDK is altered or corrupted, do NOT
347+ install the package. Instead, contact AWS Support (https://aws.amazon.com/contact-us/).
348+
349+ AWS Data Science Workflows Python SDK distributions on PyPI are signed using
350+ GnuPG, an open source implementation of the Pretty Good Privacy (OpenPGP)
351+ standard for secure digital signatures. GnuPG (also known as GPG) provides
352+ authentication and integrity checking through a digital signature. For more
353+ information about PGP and GnuPG (GPG), see http://www.gnupg.org.
354+
355+ The first step is to establish trust with the software publisher. Download the
356+ public key of the software publisher, check that the owner of the public key is
357+ who they claim to be, and then add the public key to your keyring. Your keyring
358+ is a collection of known public keys. After you establish the authenticity of
359+ the public key, you can use it to verify the signature of the application.
360+
361+ Topics
362+ ~~~~~~
363+
364+ 1. `Installing the GPG Tools <#installing-the-gpg-tools >`__
365+ 2. `Authenticating and Importing the Public Key <#authenticating-and-importing-the-public-key >`__
366+ 3. `Verify the Signature of the Package <#verify-the-signature-of-the-package >`__
367+
368+ Installing the GPG Tools
369+ ~~~~~~~~~~~~~~~~~~~~~~~~
370+
371+ If your operating system is Linux or Unix, the GPG tools are likely already
372+ installed. To test whether the tools are installed on your system, type
373+ **gpg ** at a command prompt. If the GPG tools are installed, you see a GPG
374+ command prompt. If the GPG tools are not installed, you see an error stating
375+ that the command cannot be found. You can install the GnuPG package from a
376+ repository.
377+
378+ **To install GPG tools on Debian-based Linux **
379+
380+ From a terminal, run the following command: **apt-get install gnupg **
381+
382+ **To install GPG tools on Red Hat–based Linux **
383+
384+ From a terminal, run the following command: **yum install gnupg **
385+
386+ Authenticating and Importing the Public Key
387+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
388+
389+ The next step in the process is to authenticate the AWS Data Science Workflows
390+ Python SDK public key and add it as a trusted key in your GPG keyring.
391+
392+ To authenticate and import the AWS Data Science Workflows Python SDK public key
393+
394+ 1. Copy the key from the following text and paste it into a file called
395+ `data_science_workflows.key `. Make sure to include everything that follows:
396+
397+ .. code-block :: text
398+
399+ -----BEGIN PGP PUBLIC KEY BLOCK-----
400+
401+ mQINBF27JXsBEAC18lOq7/SmynwuTJZdzoSaYzfPjt+3RN5oFLd9VY559sLb1aqV
402+ ph+RPu35YOR0GbR76NQZV6p2OicunvjmvvOKXzud8nsV3gjcSCdxn22YwVDdFdx9
403+ N0dMOzo126kFIkubWNsBZDxzGsgIsku82+OKJbdSZyGEs7eOQCqieVpubnAk/pc5
404+ J4sqYDFhL2ijCIwAW6YUx4WEMq1ysVVcoNIo5J3+f1NzJZBvI9xwf+R2AnX06EZb
405+ FFIcX6kx5B8Sz6s4AI0EVFt9YOjtD+y6aBs3e63wx9etahq5No26NffNEve+pw3o
406+ FTU7sq6HxX/cE+ssJALAwV/3/1OiluZ/icePgYvsl8UWkkULsnHEImW2vZOe9UCw
407+ 9CYb7lgqMCd9o14kQy0+SeTS3EdFH+ONRub4RMkdT7NV5wfzgD4WpSYban1YLJYx
408+ XLYRIopMzWuRLSUKMHzqsN48UlNwUVzvpPlcVIAotzQQbgFaeWlW1Fvv3awqaF7Q
409+ lnt0EBX5n71LJNDmpTRPtICnxcVsNXT1Uctk1mtzYwuMrxk0pDJZs06qPLwehwmO
410+ 4A4bQCZ/1aVnXaauzshP7kzgPWG6kqOcSbn3VA/yhfDX/NBeY3Xg1ECDlFxmCrrV
411+ D7xqpZgVaztHbRIOr6ANKLMf72ZmqxiYayrFlLLOkJYtNCaC8igO5Baf2wARAQAB
412+ tFBTdGVwZnVuY3Rpb25zLVB5dGhvbi1TREstU2lnbmluZyA8c3RlcGZ1bmN0aW9u
413+ cy1kZXZlbG9wZXItZXhwZXJpZW5jZUBhbWF6b24uY29tPokCVAQTAQgAPhYhBMwW
414+ BXe3v509bl1RxWDrEDrjFKgJBQJduyV7AhsDBQkUsSsABQsJCAcCBhUKCQgLAgQW
415+ AgMBAh4BAheAAAoJEGDrEDrjFKgJq5IP/25LVDaA3itCICBP2/eu8KkUJ437oZDr
416+ +3z59z7p4mvispmEzi4OOb1lMGBH+MdhkgblrcSaj4XcIslTkfKD4gP/cMSl14hb
417+ X/OIxEXFXvTq4PmWUCgl5NtsyAbgB3pAxGUfNAXR2dV3MJFAHSOVUK5Es4/kAj4a
418+ 5lra+1MwZZMDqhMTYuvTclIqPA/PXafkgL5g15JA5lFDyFQ2zuV1BgQlKh7o24Jw
419+ a1kDB0aSePkrh4gJHXAEoGDjX2mcGhEjlBvCH4ay7VGoG6l+rjcHnqSiVX0tg9dZ
420+ Ilc7RTR+1LX7jx8wdsYSUGekADy6wGTjk9HBTafh8Bl8sR2eNoH1qZuIn/YIHxkR
421+ JPH/74hG71pjS4FWPBbbPrdkC/G47mXMfLUrGpigcgkhePuA1BBW30U0ZZWWDHsf
422+ ISxp8hcQkR5gFhU+37tsC06pwihhDWgx4kTfeTmNqkl03fTH5lwNsig0HSpUINWR
423+ +EWN0jXb8DtjMzZbiDhLxQX9U3HBEdw2g2/Ktsqv+MM1P1choEGNtzots3V9fqMY
424+ Txy7MkYLtRDYu+sX5DNob309vPzbI4b3KBv6hCRJdnICjBvgL6C8WHaLm6+FU+68
425+ rFRKw6WImWHyygdnv8Bzdq4h+MaTE6AhteYutd+ZTWpazfE1h0ngrEerQju2VLZP
426+ LAACxHBQNjT+uQINBF27JXsBEAC/PDJmWIkJBdnOmPU/W0SosOZRMvzs/KR89qeI
427+ ebT8O0rNFeHR6Iql5ak6kGeDLwnzcOOwqamO+vwGmRScwPT6NF9+HDkXCzITOE22
428+ 71zKVjGVf+tX5kHJzT8ZqQBxvnk5Cx/d7sr3kwLBhhygHLS/kn2K9fhYwbtsQTLE
429+ o9XvTBOip+DohHHJjZHcboeYnZ2g2b8Gnwe4cz75ogFNcuHZXusr8Y6enJX8wTBy
430+ /AvXPVUIyrHbrXcHaNS3UYKzbhkH6W1cfkV6Bb49FKYkxH0N1ZeooyS6zXyf0X4n
431+ TAbyCfoFYQ68KC17/pGMOXtR/UlqDeJe0sFeyyTHKjdSTDpA+WKKJJZ5BSCYQ5Hq
432+ ewy6mvaIcKURExIZyNqRHRhb4p/0BA7eXzMCryx1AZPcQnaMVQYJTi5e+HSnOxnK
433+ AB7jm2HHPHCRgO4qvavr5dIlEoKBM6qya1KVqoarw5hv8J8+R9ECn4kWZ8QjBlgO
434+ y65q/b3mwqK0rVA1w73BPWea/xLCLrqqVRGa/fB7dhTnPfn+BpaQ3qruLinIJatM
435+ 8c2/p1LZ1nuWgrssSkSMn3TlffF0Lq9jtcbi7K11A082RiB2L0lu+j8r07RgVQvZ
436+ 4UliS1Lklsp7Ixh+zoR712hKPQpNVLstEHTxQhXZTWAk/Ih7b9ukrL/1HJAnhZBe
437+ uBhDDQARAQABiQI8BBgBCAAmFiEEzBYFd7e/nT1uXVHFYOsQOuMUqAkFAl27JXsC
438+ GwwFCRSxKwAACgkQYOsQOuMUqAnJvA//SDQZxf0zbge8o9kGfrm7bnExz8a6sxEn
439+ urooUaSk3isbGFAUg+Q7rQ+ViG9gDG74F5liwwcKoBct/Z9tCi/7p3QI0BE0bM1j
440+ IHdm5dXaZAcMlUy6f0p3DO3qE2IjnNjEjvpm7Xzt6tKJu/scZQNdQxG/CDn5+ezm
441+ nIatgDV6ugDDv/2o0BXMyAZT008T/QLR2U5dEsbt9H3Bzl4Ska6gjak2ToJL0T61
442+ 1dZjfv/1UbeYRPFCO6CsLj9uEq+RoHAsvAS4rl9HyM3b2sVzr8CMsP6LVdqlA2Qz
443+ /nIBd+GuLofi3/PGvvS63ubfqSRGd5VvJXoiRl2WoE8lmyIB5UJfFfd8Zdn6j+hQ
444+ c14VOp89mEfg57BiQXfZnzjFVNkl7T5I2g3X5O8StosncChqiJTSH5C731KUVqxO
445+ xYknFostioIVKmyis/Nwmwr6fIItYyYCwh5YCqAg0r4SLbhFEVXdannUbFPF6upO
446+ EbKlZP3Iyu/kYANMnq+9+GImrPrT/FCpM9RW1GFAnuVBt9Qjs+eRq4DQJl/EaIjZ
447+ cgqz+e5TZNxDK9r2sHC4zGWy88/2GuhD8xh4FH5hBIDJPmHUtKh9XElq187VA4Jg
448+ U0mbryduKMQIyuc6OLzfJUbVTMvKWaPASbGtvAAOwCFtAi33dZ8bOfjQLgOb9uDh
449+ /vQojRxttMc=
450+ =ovUh
451+ -----END PGP PUBLIC KEY BLOCK-----
452+
453+
454+ 2. At a command prompt in the directory where you saved
455+ `data_science_workflows.key `, use the following command to import the AWS Data
456+ Science Workflows Python SDK public key into your keyring:
457+
458+ .. code-block :: text
459+
460+ gpg --import data_science_workflows.key
461+
462+ The command returns results that are similar to the following:
463+
464+ .. code-block :: text
465+
466+ gpg: key 60EB103AE314A809: public key "Stepfunctions-Python-SDK-Signing <stepfunctions-developer-experience@amazon.com>" imported
467+ gpg: Total number processed: 1
468+ gpg: imported: 1
469+
470+ Make a note of the key value; you need it in the next step. In the preceding
471+ example, the key value is 60EB103AE314A809.
472+
473+ 3. Verify the fingerprint by running the following command, replacing key-value
474+ with the value from the preceding step:
475+
476+ .. code-block :: text
477+
478+ gpg --fingerprint <key-value>
479+
480+ This command returns results similar to the following:
481+
482+ .. code-block :: text
483+
484+ pub rsa4096 2019-10-31 [SC] [expires: 2030-10-31] CC16 0577 B7BF 9D3D 6E5D
485+ 51C5 60EB 103A E314 A809 uid [ unknown]
486+ Stepfunctions-Python-SDK-Signing
487+ <stepfunctions-developer-experience@amazon.com> sub rsa4096 2019-10-31 [E]
488+ [expires: 2030-10-31]
489+
490+ Additionally, the fingerprint string should be identical to CC16 0577 B7BF
491+ 9D3D 6E5D 51C5 60EB 103A E314 A809, as shown in the preceding example.
492+ Compare the key fingerprint that is returned to the one published on this
493+ page. They should match. If they don't match, don't install the AWS Data
494+ Science Workflows Python SDK package, and contact AWS Support.
495+
496+ Verify the Signature of the Package
497+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
498+
499+ After you install the GPG tools, authenticate and import the AWS Data Science
500+ Workflows Python SDK public key, and verify that the public key is trusted, you
501+ are ready to verify the signature of the package.
502+
503+ To verify the package signature, do the following.
504+
505+ 1. Download the detached signature for the package from PyPI
506+
507+ Go to the downloads section for the Data Science Workflows Python SDK
508+ https://pypi.org/project/stepfunctions/#files on PyPI, Right-click on the SDK
509+ distribution link, and choose "Copy Link Location/Address".
510+
511+ Append the string ".asc" to the end of the link you copied, and paste this
512+ new link on your browser.
513+
514+ Your browser will prompt you to download a file, which is the detatched
515+ signature associated with the respective distribution. Save the file on your
516+ local machine.
517+
518+ 2. Verify the signature by running the following command at a command prompt
519+ in the directory where you saved signature file and the AWS Data Science
520+ Workflows Python SDK installation file. Both files must be present.
521+
522+ .. code-block :: text
523+
524+ gpg --verify <path-to-detached-signature-file>
525+
526+ The output should look something like the following:
527+
528+ .. code-block :: text
529+
530+ gpg: Signature made Thu 31 Oct 12:14:53 2019 PDT
531+ gpg: using RSA key CC160577B7BF9D3D6E5D51C560EB103AE314A809
532+ gpg: Good signature from "Stepfunctions-Python-SDK-Signing <stepfunctions-developer-experience@amazon.com>" [unknown]
533+ gpg: WARNING: This key is not certified with a trusted signature!
534+ gpg: There is no indication that the signature belongs to the owner.
535+ Primary key fingerprint: CC16 0577 B7BF 9D3D 6E5D 51C5 60EB 103A E314 A809
536+
537+ If the output contains the phrase Good signature from "AWS Data Science
538+ Workflows Python SDK <stepfunctions-developer-experience@amazon.com>", it means
539+ that the signature has successfully been verified, and you can proceed to run
540+ the AWS Data Science Workflows Python SDK package.
541+
542+ If the output includes the phrase BAD signature, check whether you performed the
543+ procedure correctly. If you continue to get this response, don't run the
544+ installation file that you downloaded previously, and contact AWS Support.
545+
546+ The following are details about the warnings you might see:
547+
548+ .. code-block :: text
549+
550+ WARNING: This key is not certified with a trusted signature! There is no
551+ indication that the signature belongs to the owner. This refers to your
552+ personal level of trust in your belief that you possess an authentic public
553+ key for AWS Data Science Workflows Python SDK. In an ideal world, you would
554+ visit an AWS office and receive the key in person. However, more often you
555+ download it from a website. In this case, the website is an AWS website.
556+
557+ gpg: no ultimately trusted keys found. This means that the specific key is not
558+ "ultimately trusted" by you (or by other people whom you trust).
559+
560+ For more information, see http://www.gnupg.org.
561+
336562
337563.. |codebuild | image :: https://codebuild.us-east-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiUkFzRXd6UmdKZkJIZFRPMTRCMmhKYzJqL1U0bEpMdDFvSGJPeXBCSlhQaDBaQVZxYWtnUkZNMmhlclRSeGxCbjZhVTl0dlpiQXFKd1puUFZJK0xmNHN3PSIsIml2UGFyYW1ldGVyU3BlYyI6ImZ2ekJpa3V5ZXgxV3gyczUiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=master
0 commit comments