日本語

AWS CodeArtifact - プライベートパッケージ

AWS CodeArtifact 上でプライベートパッケージをホストしているレジストリに、Aikido の AutoFix を接続できるようにします。

Aikido での構成

Aikido は、AWS アカウント内に新しいロールを作成する CloudFormation テンプレートを提供します。このロールの権限は読み取り専用の CodeArtifact アクセスに限定されています。これは、Aikido の AWS アカウントに、あなたのアカウントで新たに作成されたロールとの信頼関係を付与することで実現されます。

ロール作成後、Aikido が開始に必要なのは特定の ARN だけで、アクセスキーやシークレットは不要です。

次の Aikido UI、AutoFix > Settings > Connect Registry に移動し、

モーダル内の手順に従ってください:

  • IAM ロールとポリシーを作成
  • CloudFormation の出力からロール ARN を貼り付けます
  • AWS コンソールで表示される CodeArtifact リポジトリのドメインを入力します(例: mydomain)
  • CodeArtifact ドメインがホストされている AWS リージョンを選択します(例: us-east-1)

Aikido AutoFix は CODEARTIFACT_AUTH_TOKEN 環境変数を処理中に設定します。この環境変数は、その後パッケージマネージャーが CodeArtifact レジストリで認証するために使用できます。必要なレジストリ固有の設定は以下を参照してください。

NPM と PNPM

基本的な .npmrc 設定が、プライベートパッケージをインストールするリポジトリ(または Aikido の設定)に存在している必要があります。以下の情報を含め、プレースホルダーをあなたの情報に置き換えてください:

@pied-piper:registry=https://mydomain-123456789.d.codeartifact.us-east-1.amazonaws.com/npm/pied-piper
//mydomain-123456789.d.codeartifact.us-east-1.amazonaws.com/npm/pied-piper/:_authToken=${CODEARTIFACT_AUTH_TOKEN}

AutoFix 中に、 ${CODEARTIFACT_AUTH_TOKEN} は実際の認証トークンに置き換えられます。

Poetry

Poetry に CodeArtifact の認証トークンを使わせるには、追加の環境変数を設定する必要があります。次を設定してください POETRY_HTTP_BASIC_[SOURCE]_USERNAME を aws 。次の [SOURCE] を、あなたの pyproject.toml にあるソース名(大文字)に置き換えてください。例:

[[tool.poetry.source]]
name = "artifact"
url = "https://repo-1234567890.d.codeartifact.eu-west-1.amazonaws.com/pypi/poetry/simple/"

この例におけるソース名は artifactです。したがって、 POETRY_HTTP_BASIC_ARTIFACT_USERNAME 環境変数を aws.

に設定する必要があります。 POETRY_HTTP_BASIC_[SOURCE]_USERNAME を aws を設定することで、AutoFix は自動的に POETRY_HTTP_BASIC_[SOURCE]_PASSWORD を入力し、Poetry が AWS CodeArtifact リポジトリにアクセスできるようにします。

UV

UV に CodeArtifact の認証トークンを使わせるには、追加の環境変数を設定する必要があります。次を設定してください UV_INDEX_[INDEX]_USERNAME を aws 。次の [INDEX] を、あなたの pyproject.toml にあるソース名(大文字)に置き換えてください。例:

[[tool.uv.index]]
name = "artifact"
url = "https://repo-1234567890.d.codeartifact.eu-west-1.amazonaws.com/pypi/uv-example/simple/"

この例におけるインデックス名は artifactです。したがって、 UV_INDEX_ARTIFACT_USERNAME 環境変数を aws.

に設定する必要があります。 UV_INDEX_[INDEX]_USERNAME を aws を設定することで、AutoFix は自動的に UV_INDEX_[INDEX]_PASSWORD です。これにより、UV が AWS CodeArtifact リポジトリにアクセスできるようになります。

Maven

AWS CodeArtifact 接続を設定した後は、 CODEARTIFACT_AUTH_TOKEN 環境変数を settings.xml で使用できます。settings.xml ファイルは Maven のプライベートレジストリ設定で、たとえば次のように設定できます:

settings.xml
<servers>
    <server>
        <id>codeartifact</id>
        <username>aws</username>
        <password>${env.CODEARTIFACT_AUTH_TOKEN}</password>
    </server>
</servers>

設定を確認する方法

依存関係の AutoFix を作成すると、進行状況モーダルに次のメッセージが表示されるはずです:

  • 3 個(またはそれ以上)の環境変数を設定しました
  • AWS CodeArtifact 認証トークンが正常に設定されました

AWS の認証情報が正しくない、または権限が不足している場合は、'Failed to authenticate to AWS CodeArtifact' という警告メッセージが表示されます:

AWS CodeArtifact に関するメッセージがない場合、設定が完了していないことを意味します。

AWS アクセスキーを使用する場合(非推奨)

AWS CodeArtifact との接続を有効にするには、次の 4 つの環境変数を指定する必要があります:

  • AWS_CODE_ARTIFACT_ACCESS_KEY:次の権限を持つユーザーまたはロールのアクセスキー AWSCodeArtifactReadOnlyAccess 権限
  • AWS_CODE_ARTIFACT_SECRET_KEY:次の権限を持つユーザーまたはロールのシークレットキー AWSCodeArtifactReadOnlyAccess 権限
  • AWS_CODE_ARTIFACT_DOMAIN:AWS コンソールで表示される CodeArtifact リポジトリのドメイン(例: mydomain)
  • AWS_CODE_ARTIFACT_REGION:CodeArtifact ドメインがホストされている AWS リージョン(例: us-east-1)

これら 4 つの環境変数が設定されると、Aikido AutoFix は CODEARTIFACT_AUTH_TOKEN 環境変数を処理中に設定します。この環境変数は、その後パッケージマネージャーが CodeArtifact レジストリで認証するために使用できます。必要なレジストリ固有の設定は以下を参照してください。

これらの環境変数は、Autofix > Settings > Connect Registry > 環境変数を設定 で設定できます.