

# Amazon 리소스 이름(ARN)으로 AWS 리소스를 식별합니다.
<a name="reference-arns"></a>

Amazon 리소스 이름(ARN)은 AWS 리소스를 고유하게 식별합니다. IAM 정책, Amazon Relational Database Service(RDS) 태그 및 API 직접 호출과 같은 모든 AWS에서 리소스를 명료하게 지정해야 하는 경우 ARN이 필요합니다. ARN은 식별 정보와 마찬가지로 신중하게 사용하고 공유해야 하지만 비밀 정보, 민감한 정보 또는 기밀 정보로 간주되지 않습니다.

## ARN 형식
<a name="arns-syntax"></a>

다음은 ARN의 일반적인 형식입니다. 구체적인 형식은 리소스에 따라 다릅니다. ARN을 사용하려면 {{기울임꼴}} 텍스트를 리소스별 정보로 바꿉니다. 일부 리소스의 ARN에서는 리전, 계정 ID 또는 리전과 계정 ID가 모두 생략됩니다.

```
arn:{{partition}}:{{service}}:{{region}}:{{account-id}}:{{resource-id}}
arn:{{partition}}:{{service}}:{{region}}:{{account-id}}:{{resource-type}}/{{resource-id}}
arn:{{partition}}:{{service}}:{{region}}:{{account-id}}:{{resource-type}}:{{resource-id}}
```

{{partition}}  
리소스가 있는 파티션입니다. *파티션*은 AWS 리전의 그룹입니다. 각 AWS 계정은 하나의 파티션으로 범위가 지정됩니다.  
지원되는 파티션은 다음과 같습니다.  
+ `aws` - AWS 리전
+ `aws-cn` - 중국 리전
+ `aws-us-gov` - AWS GovCloud (US) 리전

{{service}}  
AWS 제품을 식별하는 서비스 네임스페이스입니다.

{{region}}  
리전 코드. 예를 들어 미국 동부(오하이오)의 경우 `us-east-2`입니다. 리전 코드 목록은 **AWS 일반 참조의 [리전 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints)를 참조하세요.

{{account-id}}  
리소스를 소유한 AWS 계정의 ID(하이픈 없음)입니다. 예를 들어 `123456789012`입니다.

{{resource-type}}  
리소스 유형. Virtual Private Cloud(VPC)의 `vpc`를 예로 들 수 있습니다.

{{resource-id}}  
리소스 식별자입니다. 리소스의 이름, 리소스의 ID 또는 [리소스 경로](#arns-paths)입니다. 일부 리소스 식별자에는 상위 리소스(sub-resource-type/parent-resource/sub-resource) 또는 버전과 같은 식별자(resource-type:resource-name:qualifier)를 포함할 수 있습니다.예제

IAM 사용자  
arn:aws:iam::{{123456789012}}:user/{{john}}

SNS 주제  
arn:aws:sns:{{us-east-1}}:{{123456789012}}:{{example-sns-topic-name}}

VPC  
arn:aws:ec2:{{us-east-1}}:{{123456789012}}:vpc/{{vpc-0e9801d129EXAMPLE}}

## 리소스의 ARN 형식 조회
<a name="supported-arns"></a>

ARN의 정확한 형식은 서비스 및 리소스 유형에 따라 달라집니다. 일부 리소스 ARN에는 경로, 변수 또는 와일드카드가 포함될 수 있습니다. 특정 AWS 리소스의 ARN 형식을 조회하려면 [서비스 승인 참조](https://docs.aws.amazon.com/service-authorization/latest/reference/)를 열고 해당 서비스의 페이지를 연 다음 리소스 유형 테이블로 이동합니다.

## ARN의 경로
<a name="arns-paths"></a>

리소스 ARN에 경로를 포함할 수 있습니다. 예를 들어, Amazon S3에서 리소스 식별자는 슬래시(`/`)을 포함하여 경로를 구성할 수 있는 객체 이름입니다. 마찬가지로, IAM 사용자 이름과 그룹 이름에 경로를 포함할 수 있습니다. IAM 경로에는 영숫자와 슬래시(`/`), 더하기(`+`), 등호(`=`), 쉼표(`,`), 마침표(`.`), @(`@`), 밑줄 표시(`_`), 하이픈(`-`) 문자만 사용할 수 있습니다.

### 경로에서 와일드카드 사용
<a name="arns-paths-wildcards"></a>

경로에는 와일드카드 문자 즉, 별표(`*`)를 포함할 수 있습니다. 일부 정책 요소는 와일드카드를 허용하지만 허용하지 않는 요소도 있습니다. [Resource](reference_policies_elements_resource.md) 또는 [NotResource](reference_policies_elements_notresource.md) 요소에 와일드카드를 사용할 수 있지만 [Principal](reference_policies_elements_principal.md) 또는 [NotPrincipal](reference_policies_elements_notprincipal.md) 요소에는 와일드카드를 사용할 수 없습니다. 자세한 내용은 [IAM JSON 정책 참조](reference_policies.md) 섹션을 참조하세요.

다음 예제와 같이 계정 123456789012의 모든 역할을 의미하도록 `role/*`을 지정할 수 있습니다.

```
arn:aws:iam::123456789012:{{role/*}}
```

리소스 이름 끝에 와일드카드를 사용할 수도 있습니다. 예를 들어, `service`로 시작하고 `service-role1` 또는 `service-test`와 같은 다른 문자로 시작하고 끝나는 모든 역할을 의미하도록 **service-\***를 지정할 수 있습니다

```
arn:aws:iam::123456789012:role/{{service-*}}
```

다음 예제에서는 리소스 이름에 경로를 포함하는 Amazon S3 버킷의 객체에 대한 ARN을 보여줍니다. ARN `arn:aws:s3:::amzn-s3-demo-bucket/*`은 접두사와 무관하게 해당 버킷 내의 모든 객체에 적용됩니다. ARN `arn:aws:s3:::amzn-s3-demo-bucket/{{Development}}/*`는 **/Development/** 접두사 내에서 생성된 모든 객체에 적용됩니다.

`?` 와일드카드 문자를 사용하여 ARN에 문자 하나를 지정할 수도 있습니다. 예를 들어, amzn-s3-demo-bucket이라는 S3 버킷에서 4개 문자로 시작하고 **-test**로 끝나는 모든 폴더에 다음 ARN을 사용할 수 있습니다. 이 폴더와 일치하는 일부 폴더로는 `1234-test`, `2024-test` 또는 `a100-test`가 있습니다.

```
arn:aws:s3:::amzn-s3-demo-bucket/{{????-test}}
```

콜론(`:`)으로 구분된 ARN의 여러 섹션에서 와일드카드를 사용할 수도 있습니다. 다음 예제에서는 2개의 와일드카드를 사용하여 모든 Amazon Q 애플리케이션과 계정 123456789012의 모든 리전에 있는 애플리케이션 내의 리소스를 일치시킵니다.

```
arn:aws:qbusiness:{{*}}:123456789012:{{*}}
```

마찬가지로 다음 예제는 계정 123456789012의 모든 리전에 있는 모든 Amazon VPC와 일치합니다.

```
arn:aws:ec2:{{*}}:123456789012:vpc/{{*}}
```

다음 예제는 계정 123456789012의 모든 리전에 있는 모든 Amazon EBS 볼륨과 일치합니다.

```
arn:aws:ec2:{{*}}:123456789012:volume/{{*}}
```

**ARN 내 와일드카드 사용 관련 제한 사항**  
리소스 유형을 지정하는 ARN 부분에 와일드카드를 사용할 수 없습니다. 리소스 유형 내에 와일드카드가 있는 다음 예제 ARN은 유효하지 않습니다.

```
arn:aws:lambda:us-east-2:123456789012:{{functi*}}:my-function <== not allowed 
```

**참고**  
ID 기반 정책에서 불완전한 ARN(표준 필드 6개보다 필드가 적은 ARN)을 지정하면 AWS는 누락된 모든 필드에 와일드카드 문자(\*)를 추가하여 ARN을 자동으로 완성합니다. 예를 들어 `arn:aws:sqs`를 지정하는 것은 모든 리전 및 계정의 모든 Amazon SQS 리소스에 대한 액세스 권한을 부여하는 `arn:aws:sqs:*:*:*`와 동일합니다. 그러나 AWS STS AssumeRole, AssumeRoleWithWebIdentity 및 AssumeRoleWithSAML 요청에 전달된 세션 정책은 불완전한 ARN을 지원하지 않습니다. 세션 정책에서 불완전한 ARN을 사용하면 `MalformedPolicyDocumentException` 오류가 발생합니다.

접두사 ARN에는 와일드카드를 사용할 수 없고, ARN의 파티션 섹션에는 와일드카드를 사용할 수 없습니다.

```
arn:aws:redshift:us-east-1:123456789012:{{?}} <== not allowed
```