

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

# CodeArtifact를 nuget 또는 dotnet CLI와 함께 사용하기
<a name="nuget-cli"></a>

`nuget` 및 `dotnet`와 같은 CLI 도구를 사용하여 CodeArtifact에서 패키지를 게시하고 사용할 수 있습니다. 이 문서에서는 CLI 도구를 구성하고 이를 사용하여 패키지를 게시하거나 사용하는 방법에 관한 정보를 제공합니다.

**Topics**
+ [nuget 또는 dotnet CLI 구성하기](#nuget-configure-cli)
+ [CodeArtifact의 NuGet 패키지 사용하기](#nuget-consume-cli)
+ [NuGet 패키지를 CodeArtifact에 게시하기](#nuget-publish-cli)
+ [CodeArtifact NuGet 보안 인증 공급자 참조](#nuget-cred-provider-reference)
+ [CodeArtifact NuGet 보안 인증 공급자 버전](#nuget-cred-provider-history)

## nuget 또는 dotnet CLI 구성하기
<a name="nuget-configure-cli"></a>

CodeArtifact NuGet 자격 증명 공급자를 사용하거나를 사용하거나 수동으로 nuget AWS CLI또는 dotnet CLI를 구성할 수 있습니다. 간단한 설정과 지속적인 인증을 위해 보안 인증 공급자를 통해 NuGet을 구성하는 것을 권장합니다.

### 방법 1: CodeArtifact NuGet 보안 인증 공급자를 통해 구성하기
<a name="nuget-configure-cli-cred-provider"></a>

CodeArtifact NuGet 보안 인증 공급자는 NuGet CLI 도구를 사용하여 CodeArtifact의 인증 및 구성을 단순화합니다. CodeArtifact 인증 토큰은 최대 12시간 동안 유효합니다. nuget 또는 dotnet CLI를 사용하는 동안 토큰을 수동으로 갱신할 필요가 없도록 보안 인증 공급자는 현재 토큰이 만료되기 전에 정기적으로 새 토큰을 발행합니다.

**중요**  
자격 증명 공급자를 사용하려면 수동으로 추가되었거나 이전에 NuGet을 구성`aws codeartifact login`하기 위해를 실행하여 파일에서 기존 AWS CodeArtifact 자격 증명을 지워야 `nuget.config` 합니다.

**CodeArtifact NuGet 보안 인증 공급자 설치 및 구성**

------
#### [ dotnet ]

1. 다음 `dotnet` 명령을 사용하여 [Nuget.org에서 AWS.CodeArtifact.Nuget.CredentialProvider 도구](https://www.nuget.org/packages/AWS.CodeArtifact.NuGet.CredentialProvider)의 최신 버전을 다운로드하십시오.

   ```
   dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider
   ```

1. `codeartifact-creds install` 명령을 사용하여 보안 인증 공급자를 NuGet 플러그인 폴더에 복사합니다.

   ```
   dotnet codeartifact-creds install
   ```

1. (선택 사항): 자격 증명 공급자와 함께 사용할 AWS 프로필을 설정합니다. 설정하지 않으면 보안 인증 공급자가 기본 프로파일을 사용합니다. AWS CLI 프로파일에 대한 자세한 내용은 [명명된 프로파일을](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) 참조하세요.

   ```
   dotnet codeartifact-creds configure set profile profile_name
   ```

------
#### [ nuget ]

NuGet CLI를 사용하여 Amazon S3 버킷에서 CodeArtifact NuGet 보안 인증 공급자를 설치하고 이를 구성하여 다음 단계를 진행하세요. 자격 증명 공급자는 기본 AWS CLI 프로필을 사용합니다. 프로필에 대한 자세한 내용은 [명명된 프로필을](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) 참조하세요.

1. Amazon S3 버킷에서 [CodeArtifact NuGet 보안 인증 공급자 (codeartifact-nuget-credentialprovider.zip)](https://a.co/dbGqKq7) 의 최신 버전을 다운로드합니다.

   이전 버전을 보고 다운로드하려면 [CodeArtifact NuGet 보안 인증 공급자 버전](#nuget-cred-provider-history)를 참조하십시오.

1. 파일 압축을 풉니다.

1. **netfx** 폴더의 **AWS.CodeArtifact.nugetCredentialProvider** 폴더를 Windows는 `%user_profile%/.nuget/plugins/netfx/`, Linux 또는 macOS의 경우`~/.nuget/plugins/netfx`에 복사합니다.

1. **netcore** 폴더의 **AWS.CodeArtifact.nugetCredentialProvider** 폴더를 Windows는 `%user_profile%/.nuget/plugins/netcore/`, Linux 또는 macOS의 경우`~/.nuget/plugins/netcore`에 복사합니다.

------

리포지토리를 생성하고 보안 인증 공급자를 구성한 후 `nuget` 또는 `dotnet` CLI 도구를 사용하여 패키지를 설치하고 게시할 수 있습니다. 자세한 내용은 [CodeArtifact의 NuGet 패키지 사용하기](#nuget-consume-cli) 및 [NuGet 패키지를 CodeArtifact에 게시하기](#nuget-publish-cli) 섹션을 참조하세요.

### 방법 2: 로그인 명령으로 nuget 또는 dotnet을 구성하기
<a name="nuget-configure-login"></a>

의 `codeartifact login` 명령은 NuGet 구성 파일에 리포지토리 엔드포인트와 권한 부여 토큰을 AWS CLI 추가하여 nuget 또는 dotnet이 CodeArtifact 리포지토리에 연결할 수 있도록 합니다. 이렇게 하면 Windows `%appdata%\NuGet\NuGet.Config` 및/또는 Mac/Linux 내 `~/.config/NuGet/NuGet.Config`, `~/.nuget/NuGet/NuGet.Config`에 있는 사용자 수준의 NuGet 구성이 수정됩니다. NuGet 구성에 대한 자세한 내용은 [일반 NuGet 구성](https://docs.microsoft.com/en-us/nuget/consume-packages/configuring-nuget-behavior)을 참조하십시오.

**`login` 명령을 사용하여 nuget 또는 dotnet을 구성하기**

1. 에 설명된 AWS CLI대로와 함께 사용할 자격 AWS 증명을 구성합니다[CodeArtifact 시작하기](getting-started.md).

1. NuGet CLI 도구 (`nuget`또는`dotnet`) 가 제대로 설치 및 구성되었는지 확인하십시오. 지침은 [nuget](https://docs.microsoft.com/en-us/nuget/reference/nuget-exe-cli-reference) 또는 [dotnet](https://docs.microsoft.com/en-us/dotnet/core/install/) 설명서를 참조하십시오.

1. CodeArtifact `login` 명령을 사용하여 NuGet에 사용할 보안 인증 정보를 가져올 수 있습니다.
**참고**  
자신이 소유한 도메인의 저장소에 접근하는 경우 `--domain-owner`를 포함하지 않아도 됩니다. 자세한 내용은 [크로스 계정 도메인](domain-overview.md#domain-overview-cross-account) 단원을 참조하십시오.

------
#### [ dotnet ]

**중요**  
**Linux 및 macOS 사용자:** Windows 이외의 플랫폼에서는 암호화를 지원하지 않으므로 가져온 보안 인증은 구성 파일에 일반 텍스트로 저장됩니다.

   ```
   aws codeartifact login --tool dotnet --domain my_domain --domain-owner 111122223333 --repository my_repo
   ```

------
#### [ nuget ]

   ```
   aws codeartifact login --tool nuget --domain my_domain --domain-owner 111122223333 --repository my_repo
   ```

------

로그인 명령은 다음과 같습니다.
+  AWS 자격 증명을 사용하여 CodeArtifact에서 권한 부여 토큰을 가져옵니다.
+ NuGet 패키지 소스의 새 항목으로 사용자 수준 NuGet 구성을 업데이트하십시오. CodeArtifact 리포지토리 엔드포인트를 가리키는 소스가 `domain_name/repo_name`을 호출합니다.

`login` 직접 호출 후의 기본 승인 기간은 12시간이며, 토큰을 주기적으로 새로 고치려면 `login`을 직접적으로 호출해야 합니다. `login` 명령으로 만든 인증 토큰에 대한 자세한 내용은 [`login` 명령으로 생성된 토큰](tokens-authentication.md#auth-token-login)을 참조하십시오.

리포지토리를 생성하고 인증을 구성한 후 `nuget`, `dotnet` 또는 `msbuild` CLI 클라이언트를 사용하여 패키지를 설치하고 게시할 수 있습니다. 자세한 정보는 [CodeArtifact의 NuGet 패키지 사용하기](#nuget-consume-cli) 및 [NuGet 패키지를 CodeArtifact에 게시하기](#nuget-publish-cli)를 참조하세요.

### 방법 3: 로그인 명령 없이 nuget 또는 dotnet 구성하기
<a name="nuget-configure-without-login"></a>

수동 구성의 경우 NuGet 구성 파일에 리포지토리 엔드포인트와 인증 토큰을 추가하여 nuget 또는 dotnet이 CodeArtifact 리포지토리에 연결할 수 있도록 해야 합니다.

**CodeArtifact 리포지토리에 연결하도록 nuget 또는 dotnet을 수동으로 구성하세요.**

1. `get-repository-endpoint` AWS CLI 명령을 사용하여 CodeArtifact 리포지토리 엔드포인트를 확인합니다.

   ```
   aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format nuget
   ```

   출력 예시:

   ```
   {
      "repositoryEndpoint": "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/"
   }
   ```

1. `get-authorization-token` AWS CLI 명령을 사용하여 패키지 관리자에서 리포지토리에 연결할 권한 부여 토큰을 가져옵니다.

   ```
   aws codeartifact get-authorization-token --domain my_domain
   ```

   출력 예시:

   ```
   {
      "authorizationToken": "eyJ2I...viOw",
      "expiration": 1601616533.0
   }
   ```

1. 3단계에서 `get-repository-endpoint`가 반환한 URL에 `/v3/index.json`을 추가하여 전체 리포지토리 엔드포인트 URL을 생성합니다.

1. 1단계의 리포지토리 엔드포인트와 2단계의 인증 토큰을 사용하도록 nuget 또는 dotnet을 구성합니다.
**참고**  
nuget 또는 dotnet이 CodeArtifact 리포지토리에 성공적으로 연결하려면 소스 URL이 `/v3/index.json`로 끝나야 합니다.

------
#### [ dotnet ]

   **Linux 및 macOS 사용자:** Windows 이외의 플랫폼에서는 암호화를 지원하지 않으므로 다음 명령에 `--store-password-in-clear-text` 플래그를 추가해야 합니다. 단, 이렇게 하면 비밀번호가 구성 파일에 일반 텍스트로 저장됩니다.

   ```
   dotnet nuget add source https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json --name packageSourceName --password eyJ2I...viOw --username aws
   ```

**참고**  
기존 소스를 업데이트하려면 `dotnet nuget update source` 명령을 사용하세요.

------
#### [ nuget ]

   ```
   nuget sources add -name domain_name/repo_name -Source https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json -password eyJ2I...viOw -username aws
   ```

------

   출력 예시:

   ```
   Package source with Name: domain_name/repo_name added successfully.
   ```
**참고**  
듀얼 스택 엔드포인트를 사용하려면 `codeartifact.region.on.aws` 엔드포인트를 사용합니다.

## CodeArtifact의 NuGet 패키지 사용하기
<a name="nuget-consume-cli"></a>

[CodeArtifact로 NuGet을 구성](https://docs.aws.amazon.com//codeartifact/latest/ug/nuget-cli.html)한 후에는 CodeArtifact 리포지토리 또는 업스트림 리포지토리 중 하나에 저장된 NuGet 패키지를 사용할 수 있습니다.

CodeArtifact 리포지토리 또는 해당 업스트림 리포지토리 `nuget` `dotnet` 중 하나에서 패키지 버전을 사용하거나 사용하려면 NuGet 구성 파일에서 *PackageName*을 사용하려는 패키지 이름으로, *PackageSourceName*을 CodeArtifact 리포지토리의 소스 이름으로 대체하는 다음 명령을 실행합니다. `login` 명령을 사용하여 NuGet 구성을 구성한 경우 소스 이름은 *도메인\$1이름/리포지\$1이름*입니다.

**참고**  
패키지를 요청하면 NuGet 클라이언트는 해당 패키지의 어떤 버전이 존재하는지 캐시를 확인합니다. 이 동작으로 인해 원하는 버전이 제공되기 전에 이전에 요청된 패키지의 설치가 실패할 수 있습니다. 이러한 실패를 방지하고 기존 패키지를 성공적으로 설치하려면 `nuget locals all --clear` 또는 `dotnet nuget locals all --clear` 를 사용하여 설치하기 전에 NuGet 캐시를 지우거나 `-NoCache`나 `--no-cache`과 같은 옵션을 `nuget` 또는 `dotnet`에게 제공하여 `install` 및 `restore` 명령 중에 캐시를 사용하지 않도록 할 수 있습니다.

------
#### [ dotnet ]

```
dotnet add package packageName --source packageSourceName
```

------
#### [ nuget ]

```
nuget install packageName -Source packageSourceName
```

------

**특정 버전 패키지 설치 방법**

------
#### [ dotnet ]

```
dotnet add package packageName --version 1.0.0 --source packageSourceName
```

------
#### [ nuget ]

```
nuget install packageName -Version 1.0.0 -Source packageSourceName
```

------

자세한 내용은 *Microsoft 설명서*의 [nuget.exe CLI를 사용하여 패키지 관리](https://docs.microsoft.com/en-us/nuget/consume-packages/install-use-packages-nuget-cli) [또는 dotnet CLI를 사용하여 패키지 설치 및 관리](https://docs.microsoft.com/en-us/nuget/consume-packages/install-use-packages-dotnet-cli)를 참조하십시오.

### Nuget.org의 NuGet 패키지를 사용하기
<a name="nuget-consume-nuget-gallery"></a>

**NuGet.org**에 대한 외부 연결을 통해 리포지토리를 구성하여 CodeArtifact 리포지토리를 통해 [NuGet.org의](https://www.nuget.org/) NuGet 패키지를 사용할 수 있습니다. **Nuget.org**에서 사용하는 패키지는 CodeArtifact 리포지토리로 수집하여 저장됩니다. 외부 연결 추가에 대한 자세한 내용은 [CodeArtifact 저장소를 공용 저장소에 연결하기](external-connection.md)을 참조하세요.

## NuGet 패키지를 CodeArtifact에 게시하기
<a name="nuget-publish-cli"></a>

[CodeArtifact로 NuGet을 구성](https://docs.aws.amazon.com//codeartifact/latest/ug/nuget-cli.html)한 후에는 `nuget` 또는 `dotnet`을 사용하여 CodeArtifact 리포지토리에 패키지 버전을 게시할 수 있습니다.

패키지 버전을 CodeArtifact 리포지토리로 불러오려면 NuGet 구성 파일에 `.nupkg` 파일의 전체 경로와 CodeArtifact 리포지토리의 소스 이름을 포함하여 다음 명령을 실행합니다. `login` 명령을 사용하여 NuGet 구성을 구성한 경우 소스 이름은 `domain_name/repo_name`입니다.

**참고**  
게시할 패키지가 없는 경우 NuGet 패키지를 생성할 수 있습니다. 자세한 내용은 *Microsoft 설명서*의 [패키지 생성 워크플로](https://docs.microsoft.com/en-us/nuget/create-packages/overview-and-workflow)를 참조하십시오.

------
#### [ dotnet ]

```
dotnet nuget push path/to/nupkg/SamplePackage.1.0.0.nupkg --source packageSourceName
```

------
#### [ nuget ]

```
nuget push path/to/nupkg/SamplePackage.1.0.0.nupkg -Source packageSourceName
```

------

## CodeArtifact NuGet 보안 인증 공급자 참조
<a name="nuget-cred-provider-reference"></a>

CodeArtifact NuGet 보안 인증 공급자를 사용하면 CodeArtifact 리포지토리를 사용하여 NuGet을 쉽게 구성하고 인증할 수 있습니다.

### CodeArtifact NuGet 보안 인증 공급자 명령
<a name="nuget-cred-provider-reference-commands"></a>

이 섹션에는 CodeArtifact NuGet 보안 인증 정보 공급자에 대한 명령 목록이 포함되어 있습니다. 다음 예제와 같이 이러한 명령 앞에 접두사 `dotnet codeartifact-creds` 를 붙여야 합니다.

```
dotnet codeartifact-creds command
```
+ `configure set profile profile`: 제공된 AWS 프로필을 사용하도록 자격 증명 공급자를 구성합니다.
+ `configure unset profile`: 구성된 프로필이 설정된 경우 해당 프로필을 제거합니다.
+ `install`: 보안 인증 공급자를 `plugins` 폴더에 복사합니다.
+ `install --profile profile`: 자격 증명 공급자를 `plugins` 폴더에 복사하고 제공된 AWS 프로필을 사용하도록 구성합니다.
+ `uninstall`: 보안 인증 공급자를 제거합니다. 이렇게 해도 구성 파일에 대한 변경 내용은 제거되지 않습니다.
+ `uninstall --delete-configuration`: 보안 인증 공급자를 제거하고 구성 파일의 모든 변경 사항을 제거합니다.

### CodeArtifact NuGet 보안 인증 공급자 로그
<a name="nuget-cred-provider-reference-logs"></a>

CodeArtifact NuGet 보안 인증 공급자 로깅을 활성화하려면 사용자 환경에서 로그 파일을 설정해야 합니다. 보안 인증 공급자 로그에는 다음과 같은 유용한 디버깅 정보가 포함되어 있습니다.
+ 연결을 만드는 데 사용되는 AWS 프로필
+ 모든 인증 오류
+ 제공된 엔드포인트가 CodeArtifact URL이 아닌 경우

**CodeArtifact NuGet 보안 인증 공급자 로그 파일 설정하기**

```
export AWS_CODEARTIFACT_NUGET_LOGFILE=/path/to/file
```

로그 파일이 설정되면 모든 `codeartifact-creds` 명령은 해당 로그 출력을 해당 파일의 내용에 추가합니다.

## CodeArtifact NuGet 보안 인증 공급자 버전
<a name="nuget-cred-provider-history"></a>

다음 표에는 CodeArtifact NuGet 보안 인증 공급자에 관한 버전 기록 정보와 다운로드 링크가 나와 있습니다.


| 버전 | 변경 사항 | 게시 날짜 | 다운로드 링크(S3) | 
| --- | --- | --- | --- | 
|  1.0.2(최신 버전)  |  업그레이드된 종속성  |  06/26/2024  |  [v1.0.2 다운로드](https://d12ov9682v6hj.cloudfront.net/codeartifact-nuget-credentialprovider-v1.0.2.zip)  | 
|  1.0.1  |  net5, net6 및 SSO 프로파일 지원이 추가되었습니다.  |  03/05/2022  |  [v1.0.1 다운로드](https://a.co/cAIkhV1)  | 
|  1.0.0  |  초기 CodeArtifact NuGet 보안 인증 공급자 출시  |  11/20/2020  |  [v1.0.0 다운로드](https://a.co/8b2cENb)  | 