

# Amazon S3 범용 버킷 나열
<a name="list-buckets"></a>

[ListBuckets](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.htm)를 사용하여 직접 소유한 범용 버킷 목록을 반환할 수 있습니다. Amazon S3 콘솔, AWS Command Line Interface 또는 AWS SDK를 사용하여 버킷을 나열할 수 있습니다. 버킷(버킷 10,000개)에 대한 기본 서비스 할당량을 사용하는 AWS CLI, AWS SDK, Amazon S3 REST API, AWS 계정를 통한 `ListBuckets` 요청의 경우 페이지 매김 요청 및 페이지가 지정되지 않은 요청을 모두 지원합니다. 계정에 포함된 버킷 수와 상관없이 버킷 1개\~10,000개 사이에서 페이지 크기를 만들어 모든 버킷을 나열할 수 있습니다. 페이지 매김 요청의 경우 `ListBuckets` 요청은 버킷 이름과 각 버킷에 해당하는 AWS 리전을 모두 반환합니다. 다음 AWS Command Line Interface 및 AWS SDK 예제에서는 `ListBuckets` 요청에 페이지 매김을 사용하는 방법을 설명합니다. 일부 AWS SDK는 페이지 매김을 지원한다는 점에 유의하세요.

**권한**  
모든 범용 버킷을 나열하려면 `s3:ListAllMyBuckets` 권한이 있어야 합니다. `HTTP Access Denied (403 Forbidden)` 오류가 발생할 경우 [Amazon S3의 액세스 거부(403 Forbidden) 오류 문제 해결](troubleshoot-403-errors.md) 섹션을 참조하세요.

**중요**  
페이지 매김된 `ListBuckets` 요청만 사용하는 것이 좋습니다. 페이지가 지정되지 않은 `ListBuckets` 요청은 기본 범용 버킷 할당량인 10,000개로 설정된 AWS 계정에 대해서만 지원됩니다. 승인된 범용 버킷 할당량이 10,000개를 초과할 경우 페이지 매김된 `ListBuckets` 요청을 전송하여 계정 버킷을 나열해야 합니다. 범용 버킷 할당량이 10,000개가 넘는 AWS 계정에 대한 페이지가 지정되지 않은 모든 `ListBuckets` 요청은 거부됩니다.

## S3 콘솔 사용
<a name="access-bucket-example-console"></a>

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)에서 Amazon S3 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **범용 버킷**을 선택합니다.

1. **범용 버킷** 탭에서 범용 버킷 목록을 볼 수 있습니다.

1. 이름으로 버킷을 찾으려면 **이름으로 버킷 찾기** 필드에 버킷 이름을 입력합니다.

## AWS CLI 사용
<a name="access-bucket-example-cli"></a>

`ls` 또는 `list-buckets` 명령을 사용하면 AWS CLI를 사용하여 범용 버킷 목록을 생성할 수 있습니다. 다음 예제에서는 페이지 매김된 `list-buckets` 요청과 페이지가 지정되지 않은 `ls` 요청을 생성하는 방법을 보여줍니다. 해당 예제를 사용하려면 {{사용자 입력 자리 표시자}}를 바꾸세요.

**Example - `ls`를 사용하여 계정의 모든 버킷 나열(페이지가 지정되지 않음)**  
다음 예제 명령은 페이지가 지정되지 않은 단일 직접 호출에서 계정의 모든 범용 버킷을 나열합니다. 이 직접 호출은 계정의 모든 버킷 목록을 반환합니다(최대 결과 10,000개).  

```
$ aws s3 ls
```
자세한 내용 및 예제는 [버킷 및 객체 목록](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3-commands.html#using-s3-commands-listing-buckets)을 참조하십시오.  


**Example - `ls`를 사용하여 계정의 모든 버킷 나열(페이지 매김됨)**  
다음 예제 명령은 페이지 매김된 직접 호출을 하나 이상 수행하여 계정의 모든 범용 버킷을 나열하고 페이지당 버킷 100개를 반환합니다.  

```
$ aws s3 ls --page-size {{100}}
```
자세한 내용 및 예제는 [버킷 및 객체 목록](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3-commands.html#using-s3-commands-listing-buckets)을 참조하십시오.  


**Example - 계정의 모든 버킷 나열(페이지 매김됨)**  
다음 예제에서는 계정의 모든 범용 버킷을 나열하는 페이지 매김된 `list-buckets` 명령을 제공합니다. `--max-items` 및 `--page-size` 옵션은 나열된 버킷 수를 페이지당 100개로 제한합니다.  

```
$ aws s3api list-buckets /
    --max-items {{100}} / 
    --page-size {{100}}
```
출력 항목 수(`--max-items`)가 기본 API 직접 호출에서 반환하는 전체 항목 수보다 적을 경우 출력에 `starting-token` 인수로 지정된 연속 토큰이 포함되며, 이를 후속 명령에 전달하여 다음 항목 세트를 검색할 수 있습니다. 다음 예제에서는 이전 예제에서 반환한 `starting-token` 값을 사용하는 방법을 설명합니다. `starting-code`를 지정하여 다음 버킷 100개를 검색할 수 있습니다.  

```
$ aws s3api list-buckets / 
    --max-items {{100}} / 
    --page-size {{100}} /
    --starting-token {{eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ==}}
```


**Example – AWS 리전의 모든 버킷 나열(페이지 매김됨)**  
다음 예제 명령은 `--bucket-region` 파라미터를 사용하여 `us-east-2` 리전에 있는 계정의 버킷을 최대 100개까지 나열합니다. `--bucket-region` 파라미터에 지정된 값과 다른 리전 엔드포인트에 대한 요청은 지원되지 않습니다. 예를 들어 `us-east-2`의 버킷에 대한 응답을 제한하려는 경우 `us-east-2`의 엔드포인트에 요청해야 합니다.  

```
$ aws s3api list-buckets /
    --region {{us-east-2}} /
    --max-items {{100}} / 
    --page-size {{100}} /
    --bucket-region {{us-east-2}}
```


**Example - 특정 버킷 이름 접두사로 시작하는 모든 버킷 나열(페이지 매김됨)**  
다음 예제 명령은 이름이 {{amzn-s3-demo-bucket}} 접두사로 시작하는 버킷을 최대 100개까지 나열합니다.  

```
$ aws s3api list-buckets /
    --max-items {{100}} /
    --page-size {{100}} /
    --prefix {{amzn-s3-demo-bucket}}
```

## AWS SDK 사용
<a name="access-bucket-example-sdk"></a>

다음 예제에서는 AWS SDK를 사용하여 범용 버킷을 나열하는 방법을 설명합니다.

------
#### [ SDK for Python ]

**Example – ListBuckets 요청(페이지 매김됨)**  

```
import boto3

s3 = boto3.client('s3')
response = s3.list_buckets(MaxBuckets={{100}})
```

**Example – ListBuckets 응답(페이지 매김됨)**  

```
import boto3

s3 = boto3.client('s3')
response = s3.list_buckets(MaxBuckets=1,ContinuationToken="{{eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ==EXAMPLE}}--")
```

------
#### [ SDK for Java ]

AWS SDK for Java를 사용하여 버킷을 나열하는 방법의 예는 *Amazon S3 API 참조*의 [List buckets](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_ListBuckets_section.html)를 참조하세요.

------
#### [ SDK for Go ]

```
package main
import (
 "context"
 "fmt"
 "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() {
 cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion("{{us-east-2}}"))
 if err != nil {
  log.Fatal(err)
 }
 client := s3.NewFromConfig(cfg)
 maxBuckets := {{1000}}
 resp, err := client.ListBuckets(context.TODO(), management portals3.ListBucketsInput{MaxBuckets: aws.Int32(int32(maxBuckets))})
 if err != nil {
  log.Fatal(err)
 }
 fmt.Println("S3 Buckets:")
 for _, bucket := range resp.Buckets {
     fmt.Println("- Name:", *bucket.Name)
     fmt.Println("-BucketRegion", *bucket.BucketRegion)
 }
 fmt.Println(resp.ContinuationToken == nil)
 fmt.Println(resp.Prefix == nil)
}
```

------