AWS Arn, Iam, Policy, Role 이란? 개념정리



1. AWS Arn, Iam, Policy, Role 이란? 개념정리

1.1. ARN (Amazon Resource Name)

  • 정의: ARN은 AWS 리소스를 고유하게 식별하는 Amazon 리소스 식별자입니다. 각 리소스에 대해 고유한 ARN이 있으며, 이를 통해 해당 리소스에 대한 권한을 부여하거나 정책을 적용할 수 있습니다.
  • 예시
    • Amazon S3 버킷의 ARN은 arn:aws:s3:::bucket-name과 같이 표현될 수 있습니다.
    • 특정 IAM 사용자의 Arn은 arn:aws:iam::account-id:user/user-name 같이 표현될 수 있습니다.
      • IAM 사용자 예시 _ arn:aws:iam::123456789012:user/johndoe
    • SNS Topic 예시 _ arn:aws:sns:us-east-1:123456789012:example-sns-topic-name
    • VPC 예시 _ arn:aws:ec2:us-east-1:123456789012:vpc/vpc-0e9801d129EXAMPLE
  • ARN 은 아래와 같은 내용으로 구성되어 있습니다.
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 일반 참조의 리전 엔드포인트를 참조하세요.
  • account-id
    • 리소스를 소유한 AWS 계정의 ID(하이픈 없음)입니다. 예: 123456789012.
  • resource-type
    • 리소스 유형입니다. Virtual Private Cloud(VPC)의 vpc를 예로 들 수 있습니다.
  • resource-id
    • 리소스 식별자입니다. 리소스의 이름, 리소스의 ID 또는 리소스 경로입니다. 일부 리소스 식별자에는 상위 리소스(sub-resource-type/parent-resource/sub-resource) 또는 버전과 같은 식별자(resource-type:resource-name:qualifier)를 포함할 수 있습니다.

1.2. IAM (Identity and Access Management)

  • 정의
    • IAM은 AWS에서 제공하는 서비스로, AWS 리소스에 대한 액세스를 관리하는 데 사용됩니다. 사용자, 그룹 및 역할을 생성하고 이들에 대한 권한을 제어할 수 있습니다.
    • IAM을 통해 개별 사용자에게 특정 리소스에 대한 액세스 권한을 부여하거나, 사용자 그룹을 생성하여 권한을 일괄적으로 관리할 수 있습니다.
  • 예시
    • IAM을 사용하여 사용자에게 특정 S3 버킷의 읽기 및 쓰기 권한을 부여할 수 있습니다.
    • 계정의 IAM 사용자 _ arn:aws:iam::123456789012:user/JohnDoe
    • IAM 사용자 그룹 _ arn:aws:iam::123456789012:group/Developers
    • IAM 역할 _ arn:aws:iam::123456789012:role/S3Access
    • 관리형 정책 _ arn:aws:iam::123456789012:policy/ManageCredentialsPermissions

1.3. Policy

  • 정의
    • 정책(Policy)은 AWS 리소스에 대한 액세스를 정의하는 문서입니다.
    • 정책(Policy)는 권한과 같다고 볼 수 있습니다.
    • IAM에서 사용하며 JSON 형식으로 작성됩니다.
    • 특정 작업이나 리소스에 대한 권한을 지정합니다.
    • 정책(Policy)은 특정 권한 및 규칙을 정의하는 문서이며, 사용자, 그룹, 또는 역할에 연결됩니다.
  • 예시: S3 버킷에 대한 읽기 권한을 부여하는 정책은 다음과 같을 수 있습니다.
    {
    "Version": "2012-10-17",
    "Statement": [
      {
        "Effect": "Allow",
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::bucket-name/*"
      }
    ]
    }
    

1.4. Role

  • 정의
    • 역할(Role)은 AWS 리소스에 안전하게 액세스하기 위해 다른 AWS 계정, 서비스 또는 사용자에게 부여되는 권한입니다.
    • 역할(Role)은 일시적으로 사용되며, 필요할 때만 권한을 부여하고 사용자나 서비스가 필요하지 않을 때는 폐기될 수 있습니다.
    • Role은 Policy와 연결되어 동작하며, 특정 역할(Role)을 부여받은 사용자나 서비스는 그 역할에 연결된 Policy 만큼의 액세스를 가질 수 있습니다.
    • 역할(Role) 안에 여러 Policy 를 가질 수 있습니다.
    • 역할(Role)은 특정 상황 또는 시점에 어떠한 권한을 수행하는 것입니다.
  • 예시: Lambda 함수가 S3 버킷의 객체를 읽어오기 위한 역할을 생성하고 그 역할에 정책(Policy)을 부여할 수 있습니다.

reference

  • https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/reference-arns.html
  • https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/reference_identifiers.html