Skip to content

Commit 94c92e5

Browse files
Update README.rst
1 parent 65d5bb1 commit 94c92e5

File tree

1 file changed

+227
-1
lines changed

1 file changed

+227
-1
lines changed

README.rst

+227-1
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,232 @@ license is available at: http://aws.amazon.com/apache2.0/
332332
Verifying 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+
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
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 <[email protected]>" 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+
<[email protected]> 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 <[email protected]>" [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 <[email protected]>", 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

Comments
 (0)