

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

# AWS SDK for Go 시작하기
<a name="getting-started"></a>

 AWS SDK for Go에는 최소한 Go 1.23 버전이 필요합니다. 다음 명령을 실행하여 Go의 최신 버전을 확인할 수 있습니다.

```
go version
```

 Go 버전 설치 또는 업그레이드에 대한 자세한 내용은 Go 설명서의 [다운로드 및 설치](https://go.dev/doc/install)를 참조하세요.

## Amazon 계정 가져오기
<a name="get-an-amazon-account"></a>

 AWS SDK for Go v2를 사용하려면 먼저 Amazon 계정이 있어야 합니다. 자세한 내용은 [AWS 계정 생성](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-creating.html)을 참조하세요.

## AWS SDK for Go v2 설치
<a name="install-the-aws-sdk-for-go-v2"></a>

 AWS SDK for Go v2는 Go 1.11에 도입된 기능인 Go 모듈을 사용합니다. 로컬 프로젝트를 초기화하려면 다음 Go 명령을 실행합니다.

```
go mod init example
```

 Go 모듈 프로젝트를 초기화한 후 `go get` 명령을 사용하여 SDK와 필요한 종속성을 검색할 수 있습니다. 이러한 종속성은 이전 명령으로 생성된 `go.mod` 파일에 기록됩니다.

 다음 명령은 애플리케이션에서 사용할 표준 SDK 모듈 세트를 검색하는 방법을 보여줍니다.

```
go get github.com/aws/aws-sdk-go-v2
go get github.com/aws/aws-sdk-go-v2/config
```

 그러면 코어 SDK 모듈과 AWS 공유 구성을 로드하는 데 사용되는 구성 모듈이 검색됩니다.

 그런 다음 애플리케이션에 필요한 AWS 서비스 API 클라이언트를 하나 이상 설치할 수 있습니다. 모든 API 클라이언트는 `github.com/aws/aws-sdk-go-v2/service` 가져오기 계층 구조 아래에 있습니다. 현재 지원되는 API 클라이언트의 전체 세트는 [여기](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service)에서 찾을 수 있습니다. 서비스 클라이언트를 설치하려면 다음 명령을 실행하여 모듈을 검색하고 `go.mod` 파일에 종속성을 기록합니다. 이 예제에서는 Amazon S3 API 클라이언트를 검색합니다.

```
go get github.com/aws/aws-sdk-go-v2/service/s3
```

## AWS 액세스 키 받기
<a name="get-your-aws-access-keys"></a>

 액세스 키는 액세스 키 ID 및 비밀 액세스 키로 이루어져 있는데, 이를 사용하여 에 보내는 프로그래밍 방식의 요청에 서명할 수 있습니다AWS 액세스 키가 없는 경우 [AWS Management Console](https://console.aws.amazon.com/console/home)을 사용하여 액세스 키를 생성할 수 있습니다. AWS 루트 계정 액세스 키 대신에 IAM 액세스 키를 사용하는 것이 좋습니다. IAM으로 AWS 서비스와 AWS 계정의 리소스에 대한 액세스 권한을 안전하게 제어할 수 있습니다.

**참고**  
액세스 키를 생성하려면 필요한 IAM 작업을 수행할 수 있는 권한이 있어야 합니다. 자세한 내용은 IAM 사용 설명서의 [IAM 리소스에 액세스하는 데 필요한 권한](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_permissions-required.html)을 참조하세요.

### 계정 액세스 키 ID와 시크릿 액세스 키를 얻는 방법은 다음과 같습니다.
<a name="to-get-your-access-key-id-and-secret-access-key"></a>

1.  [IAM 콘솔](https://console.aws.amazon.com/iam/home)을 엽니다.

1.  탐색 메뉴에서 **사용자**를 선택합니다.

1.  IAM 사용자 이름(확인란이 아님)을 선택합니다.

1.  **Security credentials(보안 자격 증명)** 탭을 연 다음 **Create access key(액세스 키 생성)**를 선택합니다.

1.  새 액세스 키를 보려면 [**Show**]를 선택합니다. 자격 증명은 다음과 같을 것입니다.
   +  액세스 키 ID: `AKIAIOSFODNN7EXAMPLE` 
   +  시크릿 액세스 키: `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY` 

1.  키 페어 파일을 다운로드하려면 [**Download .csv file**]을 선택합니다. 안전한 위치에 키를 저장합니다.

**주의**  
 키를 기밀로 유지하여 AWS 계정을 보호하고 조직 외부의 누구와도 공유하지 마세요.

### 관련 주제
<a name="related-topics"></a>
+  IAM 사용 설명서의 [IAM이란 무엇입니까?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)
+  Amazon Web Services 일반 참조의 [AWS 보안 자격 증명](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html).

## 작업 간접 호출
<a name="invoke-an-operation"></a>

 SDK를 설치한 후 AWS, Config 및 Amazon S3 라이브러리를 가져오는 다음 예제와 같이 패키지를 AWS Go 애플리케이션으로 가져와 SDK를 사용합니다. SDK 패키지를 가져온 후 AWS SDK 공유 구성이 로드되고 클라이언트가 구성되며 API 작업이 간접적으로 호출됩니다.

```
package main

import (
    "context"
    "log"
    "github.com/aws/aws-sdk-go-v2/aws"
    "github.com/aws/aws-sdk-go-v2/config"
    "github.com/aws/aws-sdk-go-v2/service/s3"
)

func main() {
    // Load the Shared AWS Configuration (~/.aws/config)
    cfg, err := config.LoadDefaultConfig(context.TODO())
    if err != nil {
        log.Fatal(err)
    }

    // Create an Amazon S3 service client
    client := s3.NewFromConfig(cfg)

    // Get the first page of results for ListObjectsV2 for a bucket
    output, err := client.ListObjectsV2(context.TODO(), &s3.ListObjectsV2Input{
        Bucket: aws.String("amzn-s3-demo-bucket"),
    })
    if err != nil {
        log.Fatal(err)
    }

    log.Println("first page results")
    for _, object := range output.Contents {
        log.Printf("key=%s size=%d", aws.ToString(object.Key), *object.Size)
    }
}
```