AWS CodeArtifact - プライベートパッケージ
AikidoのAutoFixが、AWS CodeArtifact上でホストされているプライベートパッケージのレジストリに接続できるようにすることができます。
Aikidoでの設定
Section titled “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
Section titled “NPM & PNPM ”プライベートパッケージをインストールするリポジトリ(またはAikidoの設定)には、基本的な.npmrc設定が存在している必要があります。プレースホルダーをご自身の情報に置き換えた上で、以下の情報を含めてください。
@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
Section titled “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に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リポジトリにアクセスできるようになります。
設定を確認する方法
Section titled “設定を確認する方法”依存関係のAutoFixを作成する際、進捗モーダルに以下のメッセージが表示されるはずです。
- 3つ(またはそれ以上)の環境変数を設定しました
- AWS CodeArtifactの認証トークンが正常に設定されました

AWSの認証情報が誤っている、または権限が不足している場合は、「Failed to authenticate to AWS CodeArtifact」という警告メッセージが表示されます。

AWS CodeArtifactに関するメッセージが表示されない場合、設定が完了していないことを意味します。
AWSアクセスキーを使用する場合(非推奨)
Section titled “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 > 環境変数を設定するで設定できます。