Skip to main content

A poetry plugin to help with AWS CodeArtifact authorization automatically

Project description

Poetry AWS Plugin

This is a poetry plugin to help with AWS CodeArtifact authorization by automatically getting the authorization token.

When installing or publishing packages through poetry, the plugin will check whether the command requires CodeArtifact authorization, and if so, adds it automatically.

The plugin will try two methods of authorization, in this order:

  1. Use AWS credentials to run codeartifact.GetAuthorizationToken.
  2. Use AWS credentials to run sts.AssumeRole, then use that role to run codeartifact.GetAuthorizationToken.

Installation

To install the plugin

poetry self add poetry-aws-plugin

To uninstall the plugin

poetry self remove poetry-aws-plugin

Usage

You must ensure that your AWS credentials are configured and discoverable by boto3. The boto3 documentation has details on how to configure your credentials and the order in which they searched.

When poetry runs a command that uses CodeArtifact, the plugin will automatically check whether the command needs authorization, and if so, requests a CodeArtifact authorization token and adds it to the command.

Your AWS credentials must be authorized to do atleast one of the following:

  1. Run codeartifact.GetAuthorizationToken.
  2. Run sts.AssumeRole to assume a role with authorization to run codeartifact.GetAuthorizationToken.

To use IAM roles to authorize, set the environment variable POETRY_AWS_PLUGIN_ROLE_ARN to the role's ARN before running any poetry commands.

For example:

POETRY_AWS_PLUGIN_ROLE_ARN='arn:aws:codeartifact:<region>:<account-id>:repository/<domain>/<domain-owner>/<repository>' poetry install

or

echo "export POETRY_AWS_PLUGIN_ROLE_ARN='arn:aws:codeartifact:<region>:<account-id>:repository/<domain>/<domain-owner>/<repository>'" >> ~/.bashrc
source ~/.bashrc
poetry install

You can find more details in AWS's CodeArtifact authentication and tokens documentation and CodeArtifact IAM documentation.

Misc

You can also authorize by setting the environment variable POETRY_AWS_PLUGIN_AUTH_TOKEN to the CodeArtifact authorization token. This may be useful in CI/CD pipelines and reducing poetry configuration.

For example:

POETRY_AWS_PLUGIN_AUTH_TOKEN='<codeartifact-authorization-token>' poetry install

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

poetry_aws_plugin-0.1.9.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

poetry_aws_plugin-0.1.9-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file poetry_aws_plugin-0.1.9.tar.gz.

File metadata

  • Download URL: poetry_aws_plugin-0.1.9.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.10.13 Linux/6.2.0-1019-azure

File hashes

Hashes for poetry_aws_plugin-0.1.9.tar.gz
Algorithm Hash digest
SHA256 06cb4f93d2f7f895fc6a61645b315c2620e443c1bd8d55b8efefafc995c22c05
MD5 102a3a72ebd0019f0d5f353e289bd00e
BLAKE2b-256 95fbe4d9f05efe8f4dd58bdaa77a3ca17ff18b76bfcf34d646dcc2f51363344d

See more details on using hashes here.

File details

Details for the file poetry_aws_plugin-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: poetry_aws_plugin-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.10.13 Linux/6.2.0-1019-azure

File hashes

Hashes for poetry_aws_plugin-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 cdae2dea1365014d0f2dbc9a6d5d3bc58012ed5977e342779d3995075d900bb0
MD5 c2ef3ac84fe139bdb5cacd8480fe9fb7
BLAKE2b-256 8b0cac085fdc5a48e886dac895435c297fb9786924f419c48c34dd687002bb4b

See more details on using hashes here.

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