ARN (Amazon Resource Name)

📌 AWS 리소스를 고유하게 식별하기 위한 이름 규칙입니다.

  • AWS의 모든 서비스와 리소스는 ARN을 사용하여 참조되며, 이를 통해 특정 리소스를 정확히 지정할 수 있습니다.

[AWS의 리소스란]

더보기

리소스란?


**리소스(Resource)**는 **AWS에서 사용하거나 관리할 수 있는 모든 엔터티(자원 = 코드로 구현된 모든것들)**를 의미합니다.
즉, AWS에서 생성, 배포, 운영되는 서비스의 실제 개체를 가리킵니다.

AWS 리소스에는 컴퓨팅, 스토리지, 데이터베이스, 네트워크 등 다양한 종류의 리소스가 포함됩니다.


AWS 리소스의 예

서비스 리소스 예시 설명
EC2 인스턴스, AMI, 키 페어 가상 서버, 이미지, SSH 키 등.
S3 버킷, 객체 데이터를 저장하는 버킷과 파일.
RDS 데이터베이스 인스턴스, 스냅샷 관리형 데이터베이스와 백업.
IAM 사용자, 그룹, 역할, 정책 권한 관리와 관련된 리소스.
Lambda 함수, 레이어 서버리스 컴퓨팅 리소스.
CloudFront 배포(Distribution) 콘텐츠를 캐시하고 전달하는 네트워크.
DynamoDB 테이블 NoSQL 데이터 저장소.
EBS 볼륨, 스냅샷 EC2에 연결된 블록 스토리지와 백업.
VPC VPC, 서브넷, 인터넷 게이트웨이 네트워크를 구성하는 요소.
Route 53 호스팅 영역, 레코드 세트 DNS 서비스에서 도메인과 IP를 연결하는 리소스.

리소스의 역할

AWS 리소스는 클라우드에서 작업을 수행하기 위해 사용됩니다.
예를 들어:

  1. EC2 인스턴스: 애플리케이션을 실행하는 가상 서버.
  2. S3 버킷: 데이터를 저장하거나 공유하는 저장소.
  3. IAM 사용자: AWS 리소스를 사용할 수 있는 사람이나 애플리케이션.

리소스와 ARN의 관계

  • 리소스는 AWS의 실제 대상이며, ARN은 이 리소스를 식별하는 "이름표"입니다.
  • 예를 들어:
    • 리소스: EC2 인스턴스.
    • ARN: arn:aws:ec2:us-east-1:123456789012:instance/i-0123456789abcdef0
      → 해당 ARN은 특정 리전, 특정 계정의 특정 EC2 인스턴스를 가리킵니다.

리소스를 쉽게 이해하기

  1. AWS 리소스란?
    • AWS에서 우리가 생성하고 사용하는 실체적인 것들.
    • 예: 서버(EC2), 데이터 저장소(S3), 데이터베이스(RDS).
  2. 비유:
    • 리소스는 "AWS 클라우드에서 빌리는 장치 또는 공간".
    • 예: AWS의 S3는 데이터를 저장하는 "가상 드라이브", EC2는 "가상 컴퓨터".

추가로 궁금한 점이 있으면 언제든 물어보세요! 😊


ARN의 구조

ARN은 다음과 같은 구조적 형식을 따릅니다:

arn:partition:service:region:account-id:resource

구성 요소 설명

구성 요소 설명
arn 고정 문자열 "arn"으로, AWS 리소스를 식별하는 시작 부분.
partition AWS의 리전 및 서비스 그룹.
             - 일반적으로 "aws" 사용.  
             - 다른 옵션: `aws-cn`(중국 리전), `aws-us-gov`(AWS GovCloud). |

| service | 리소스가 속한 AWS 서비스 이름. 예: s3, ec2, dynamodb. | | region | 리소스가 속한 AWS 리전. 예: us-east-1, ap-northeast-2. | | account-id | AWS 계정 ID(12자리 숫자). 특정 리소스가 AWS 계정에 속해 있는 경우 사용. | | resource | 리소스의 고유 식별자. 서비스에 따라 형식이 다름. |


ARN 예시

1. S3 버킷

arn:aws:s3:::my-bucket
  • partition: aws (글로벌 S3 리소스).
  • service: s3.
  • region: 비워둠(S3 버킷은 리전과 무관).
  • account-id: 비워둠(S3는 계정 ID 필요 없음).
  • resource: my-bucket.

2. S3 객체

arn:aws:s3:::my-bucket/my-object.txt
  • resource: 버킷 이름과 객체 이름.

3. EC2 인스턴스

arn:aws:ec2:ap-northeast-2:123456789012:instance/i-0123456789abcdef0
  • service: ec2.
  • region: ap-northeast-2 (서울 리전).
  • account-id: 123456789012.
  • resource: EC2 인스턴스 ID(i-0123456789abcdef0).

4. Lambda 함수

arn:aws:lambda:us-east-1:123456789012:function:my-function
  • service: lambda.
  • region: us-east-1.
  • account-id: 123456789012.
  • resource: 함수 이름(my-function).

ARN 사용 사례

  1. IAM 정책에서 리소스 지정
    • 특정 IAM 사용자가 특정 리소스에 접근할 수 있도록 ARN을 사용.
    • 예:
      {
        "Effect": "Allow",
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::my-bucket/my-object.txt"
      }
      
  2. 리소스 공유
    • 다른 AWS 계정과 리소스를 공유할 때 ARN을 사용해 특정 리소스를 참조.
  3. 로깅 및 모니터링
    • AWS CloudTrail 및 CloudWatch에서 ARN을 통해 이벤트 또는 리소스를 추적.
  4. 리소스 태그링
    • 태그와 ARN을 결합해 특정 리소스를 효율적으로 관리.

ARN의 주요 특징

  • 고유성: AWS 내에서 특정 리소스를 고유하게 식별.
  • 서비스 의존적: 서비스에 따라 리소스 형식과 세부 사항이 다름.
  • 글로벌 및 지역 리소스:
    • S3 버킷처럼 글로벌 리소스인 경우 region 필드가 비어 있음.
    • EC2 인스턴스처럼 지역 리소스는 region 필드가 필수.

ARN과 AWS 리소스 관계

서비스 ARN 예시
S3 버킷 arn:aws:s3:::my-bucket
S3 객체 arn:aws:s3:::my-bucket/my-object.txt
EC2 인스턴스 arn:aws:ec2:ap-northeast-2:123456789012:instance/i-0123456789abcdef0
IAM 사용자 arn:aws:iam::123456789012:user/my-user
Lambda 함수 arn:aws:lambda:us-east-1:123456789012:function:my-function

ARN을 쉽게 이해하기

  1. 리소스의 고유 주소:
    • ARN은 AWS 리소스의 "고유 주소"로, AWS 내부에서 리소스를 정확히 지정하기 위한 방법입니다.
    • 예: "서울의 한 아파트 101호"라는 주소가 특정 집을 가리키듯, ARN은 특정 AWS 리소스를 가리킴.
  2. 구조적인 이름 규칙:
    • "AWS 리소스에 대한 체계적인 이름 붙이기"라고 생각하면 됩니다.

추가로 알아두면 좋은 점

  • ARN과 리전: 일부 글로벌 서비스(S3, IAM 등)는 리전을 사용하지 않지만, 대부분의 리소스는 리전이 필수.
  • ARN의 중요성: IAM 정책, CloudFormation, 로깅 등 AWS 전반에서 널리 사용됨.
  • 서비스마다 리소스 형식이 다름: 서비스마다 ARN의 마지막 resource 부분 형식이 다르므로, 공식 문서를 참고하는 것이 중요.

 

+ Recent posts