CodeArtifact 토큰 새로고침 - Amazon Managed Workflows for Apache Airflow

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

CodeArtifact 토큰 새로고침

CodeArtifact를 사용하여 Python 종속성을 설치하는 경우 Amazon MWAA에는 활성 토큰이 필요합니다. Amazon MWAA가 런타임의 CodeArtifact 리포지토리에 액세스할 수 있도록 하려면 시작 스크립트를 사용하고 토큰과 PIP_EXTRA_INDEX_URL을(를) 설정하면 됩니다.

다음 주제에서는 get_authorization_token CodeArtifact API 작업을 사용하여 환경이 시작되거나 업데이트될 때마다 새 토큰을 검색하는 시작 스크립트를 만드는 방법을 설명합니다.

버전

  • 이 페이지의 코드 예제는 Python 3.10Apache Airflow v2에서 사용할 수 있습니다.

필수 조건

이 페이지의 이 샘플 코드를 사용하려면 다음 항목이 필요합니다.

권한

CodeArtifact 토큰을 새로 고치고 결과를 Amazon S3에 쓰려면 Amazon MWAA의 실행 역할에 다음과 같은 권한이 있어야 합니다.

  • codeartifact:GetAuthorizationToken 작업을 통해 Amazon MWAA는 CodeArtifact에서 새 토큰을 검색할 수 있습니다. 다음 정책은 사용자가 생성하는 모든 CodeArtifact 도메인에 권한을 부여합니다. 명령문의 리소스 값을 수정하고 사용자 환경에서 액세스할 도메인만 지정하여 도메인에 대한 액세스를 추가로 제한할 수 있습니다.

    { "Effect": "Allow", "Action": "codeartifact:GetAuthorizationToken", "Resource": "arn:aws:codeartifact:us-west-2:*:domain/*" }
  • CodeArtifact GetAuthorizationToken API 오퍼레이션을 호출하려면 sts:GetServiceBearerToken 액션이 필요합니다. 이 작업은 pip와(과) CodeArtifact 같은 패키지 관리자를 사용할 때 사용해야 하는 토큰을 반환합니다. CodeArtifact 리포지토리와 함께 패키지 관리자를 사용하려면 사용자 환경의 실행 역할 역할이 다음 정책 설명에 표시된 대로 sts:GetServiceBearerToken을(를) 허용해야 합니다.

    { "Sid": "AllowServiceBearerToken", "Effect": "Allow", "Action": "sts:GetServiceBearerToken", "Resource": "*" }

코드 샘플

다음 단계는 CodeArtifact 토큰을 업데이트하는 시작 스크립트를 만드는 방법을 설명합니다.

  1. 다음 코드 샘플의 내용을 복사하고 로컬에서 code_artifact_startup_script.sh로 저장합니다.

    #!/bin/sh # Startup script for MWAA, see https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html set -eu # setup code artifact endpoint and token # https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-0 # https://docs.aws.amazon.com/mwaa/latest/userguide/samples-code-artifact.html DOMAIN="amazon" DOMAIN_OWNER="112233445566" REGION="us-west-2" REPO_NAME="MyRepo" echo "Getting token for CodeArtifact with args: --domain $DOMAIN --region $REGION --domain-owner $DOMAIN_OWNER" TOKEN=$(aws codeartifact get-authorization-token --domain $DOMAIN --region $REGION --domain-owner $DOMAIN_OWNER | jq -r '.authorizationToken') echo "Setting Pip env var for '--index-url' to point to CodeArtifact" export PIP_EXTRA_INDEX_URL="https://aws:$TOKEN@$DOMAIN-$DOMAIN_OWNER.d.codeartifact.$REGION.amazonaws.com/pypi/$REPO_NAME/simple/" echo "CodeArtifact startup setup complete"
  2. 스크립트를 저장한 폴더로 이동합니다. 새 프롬프트 창에서 cp를 사용하여 스크립트를 버킷에 업로드합니다. your-s3-bucket을 자신의 정보로 바꿉니다.

    $ aws s3 cp code_artifact_startup_script.sh s3://your-s3-bucket/code_artifact_startup_script.sh

    성공하면 Amazon S3가 객체에 대한 URL 경로를 출력합니다.

    upload: ./code_artifact_startup_script.sh to s3://your-s3-bucket/code_artifact_startup_script.sh

    스크립트를 업로드하면 시작 시 환경이 업데이트되고 스크립트가 실행됩니다.

다음 단계