S3 on Outposts로 IAM 설정 - Amazon Simple Storage Service

S3 on Outposts로 IAM 설정

AWS Identity and Access Management(IAM)는 관리자가 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있도록 지원하는 AWS 서비스입니다. IAM 관리자는 어떤 사용자가 AWS 리소스를 사용할 수 있는 인증(로그인) 및 권한(권한 있음)을 받을 수 있는지 제어합니다. IAM을 사용하면 AWS 계정에 사용자와 그룹을 생성할 수 있습니다. 사용자가 AWS 리소스를 통해 작업을 수행할 수 있는 권한을 제어합니다. IAM은 추가 요금 없이 사용할 수 있습니다.

기본적으로 IAM 사용자는 Amazon S3 on Outposts 리소스 및 작업에 대한 권한이 없습니다. IAM 사용자가 Outposts 리소스에서 S3를 관리하도록 허용하려면 다음을 수행해야 합니다.

  • IAM 사용자 또는 그룹에 권한을 명시적으로 부여하는 IAM 정책을 생성합니다.

  • 해당 권한이 필요한 IAM 사용자 또는 그룹에 이 정책을 연결합니다.

IAM 정책 외에도 S3 on Outposts는 버킷 정책과 액세스 포인트 정책을 모두 지원합니다. 버킷 정책 및 액세스 포인트 정책은 S3 on Outposts 리소스에 연결된 리소스 기반 정책입니다.

  • 버킷 정책은 버킷에 연결되며 정책의 요소를 기반으로 버킷 및 버킷에 있는 객체에 대한 요청을 허용하거나 거부합니다.

  • 반대로, 액세스 포인트 정책은 액세스 포인트에 연결되어 액세스 포인트에 대한 요청을 허용하거나 거부합니다.

액세스 포인트 정책은 기본 S3 on Outposts 버킷에 연결된 버킷 정책과 함께 작동합니다. 애플리케이션 또는 사용자가 S3 on Outposts 액세스 포인트를 통해 S3 on Outposts 버킷의 객체에 액세스하려면 액세스 포인트 정책과 버킷 정책 모두에서 요청을 허용해야 합니다.

액세스 포인트 정책에 포함시키는 제한은 해당 액세스 포인트를 통해 이루어진 요청에만 적용됩니다. 예를 들어 액세스 포인트가 버킷에 연결된 경우 액세스 포인트 정책을 사용하여 버킷에 직접 전송되는 요청을 허용하거나 거부할 수 없습니다. 단, 버킷 정책에 적용하는 제한 사항은 버킷에 직접 또는 액세스 포인트를 통해 이루어진 요청을 허용하거나 거부할 수 있습니다.

IAM 정책 또는 리소스 기반 정책에서 어떤 S3 on Outposts 작업을 허용 또는 거부할지 정의합니다. S3 on Outposts 작업은 특정 S3 on Outposts API 작업에 해당합니다. S3 on Outposts 작업은 s3-outposts: 네임스페이스 접두사를 사용합니다. AWS 리전의 S3 on Outposts 제어 API에 대한 요청과 Outpost의 객체 API 엔드포인트에 대한 요청은 IAM을 사용하여 인증되고 s3-outposts: 네임스페이스 접두사에 대해 권한이 부여됩니다. S3 on Outposts로 작업하려면 IAM 사용자를 구성하고 s3-outposts: IAM 네임스페이스에 대해 권한을 부여합니다.

자세한 내용은 서비스 권한 부여 참조에서 Amazon S3 on Outposts에 사용되는 작업, 리소스 및 조건 키를 참조하세요.

참고
  • 액세스 제어 목록(ACL)은 S3 on Outposts에서 지원되지 않습니다.

  • 버킷의 소유자가 객체에 액세스하거나 객체를 삭제하지 못하는 일이 없도록 S3 on Outposts에서는 기본적으로 버킷 소유자가 객체 소유자로 지정됩니다.

  • 객체가 퍼블릭 액세스 권한을 가질 수 없도록 S3 on Outposts에서는 항상 S3 퍼블릭 액세스 차단이 활성화되어 있습니다.

S3 on Outposts에 대한 IAM 설정 방법을 자세히 알아보려면 다음 주제를 참조하세요.

S3 on Outposts 정책의 보안 주체

S3 on Outposts 버킷에 대한 액세스 권한을 부여하는 리소스 기반 정책을 생성할 때, Principal 요소를 사용하여 해당 리소스에 대한 작업이나 작업을 요청할 수 있는 사람 또는 애플리케이션을 지정해야 합니다. S3 on Outposts 정책의 경우, 다음 보안 주체 중 하나를 사용할 수 있습니다.

  • AWS 계정

  • IAM 사용자

  • IAM 역할

  • 특정 IP 범위에 대한 액세스를 제한하는 Condition 요소를 사용하는 정책에서 와일드카드 문자(*)를 지정하여 모든 보안 주체

중요

정책에 특정 IP 주소 범위에 대한 액세스를 제한하는 Condition도 포함하지 않는 한 Principal 요소에 와일드카드 문자(*)를 사용하는 Outposts 버킷의 S3에 대한 정책을 작성할 수 없습니다. 이 제한은 Outposts 버킷의 S3에 대한 공개 액세스가 없도록 하는 데 도움이 됩니다. 예시는 S3 on Outposts에 대한 정책 예제에서 확인하세요.

Principal 요소에 대한 자세한 내용은 IAM 사용 설명서AWS JSON 정책 요소: 보안 주체를 참조하세요.

S3 on Outposts의 리소스 ARN

S3 on Outposts에 대한 Amazon 리소스 이름(ARN)에는 Outpost가 위치한 AWS 리전 외에Outpost ID, AWS 계정 ID, 리소스 이름이 포함됩니다. Outposts 버킷 및 객체에 액세스하고 작업을 수행하려면 다음 테이블에 표시된 ARN 형식 중 하나를 사용해야 합니다.

ARN의 partition 값은 AWS 리전 그룹을 나타냅니다. 각 AWS 계정는 하나의 파티션으로 범위가 지정됩니다. 지원되는 파티션은 다음과 같습니다.

  • aws – AWS 리전

  • aws-us-gov - AWS GovCloud (US) 리전

S3 on Outposts ARN 형식
Outposts 기반 Amazon S3 ARN ARN 형식
버킷 ARN arn:partition:s3-outposts:region:​account_id:​outpost/outpost_id/bucket/bucket_name arn:aws:s3-outposts:us-west-2:123456789012:​outpost/op-01ac5d28a6a232904/bucket/DOC-EXAMPLE-BUCKET1
액세스 포인트 ARN arn:partition:s3-outposts:region:​account_id:​outpost/outpost_id/accesspoint/accesspoint_name arn:aws:s3-outposts:us-west-2:123456789012:​outpost/op-01ac5d28a6a232904/accesspoint/access-point-name
객체 ARN arn:partition:s3-outposts:region:​account_id:​outpost/outpost_id/bucket/bucket_name/object/object_key arn:aws:s3-outposts:us-west-2:123456789012:​outpost/op-01ac5d28a6a232904/bucket/DOC-EXAMPLE-BUCKET1/object/myobject
S3 on Outposts 액세스 포인트 객체 ARN(정책에 사용) arn:partition:s3-outposts:region:​account_id:​outpost/outpost_id/accesspoint/accesspoint_name/object/object_key arn:aws:s3-outposts:us-west-2:123456789012:​outpost/op-01ac5d28a6a232904/accesspoint/access-point-name/object/myobject
Outposts 기반 S3 ARN arn:partition:s3-outposts:region:​account_id:​outpost/outpost_id arn:aws:s3-outposts:us-west-2:123456789012:​outpost/op-01ac5d28a6a232904

S3 on Outposts에 대한 정책 예제

예 : AWS 계정 보안 주체가 있는 S3 on Outposts 버킷 정책

다음 버킷 정책은 AWS 계정 보안 주체를 사용하여 S3 on Outposts 버킷에 대한 액세스 권한을 부여합니다. 이 버킷 정책을 사용하려면 user input placeholders를 사용자의 정보로 대체합니다.

{ "Version":"2012-10-17", "Id":"ExampleBucketPolicy1", "Statement":[ { "Sid":"statement1", "Effect":"Allow", "Principal":{ "AWS":"123456789012" }, "Action":"s3-outposts:*", "Resource":"arn:aws:s3-outposts:region:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outposts-bucket" } ] }

예 : 특정 IP 주소 범위에 대한 액세스를 제한하는 와일드카드 보안 주체(*) 및 조건 키가 있는 Outposts 버킷 정책의 S3

다음 버킷 정책은 특정 IP 범위에 대한 액세스를 제한하는 aws:SourceIp 조건과 함께 와일드카드 보안 주체(*)를 사용합니다. 이 버킷 정책을 사용하려면 user input placeholders를 사용자의 정보로 대체합니다.

{ "Version": "2012-10-17", "Id": "ExampleBucketPolicy2", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS" : "*" }, "Action":"s3-outposts:*", "Resource":"arn:aws:s3-outposts:region:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outposts-bucket", "Condition" : { "IpAddress" : { "aws:SourceIp": "192.0.2.0/24" }, "NotIpAddress" : { "aws:SourceIp": "198.51.100.0/24" } } } ] }

S3 on Outposts 엔드포인트에 대한 권한

S3 on Outposts 엔드포인트 작업을 관리하기 위해 S3 on Outposts에는 IAM의 고유한 권한이 필요합니다.

참고
  • 고객 소유 IP 주소 풀(CoIP 풀) 액세스 유형을 사용하는 엔드포인트의 경우 다음 테이블에 설명된 대로 CoIP 풀의 IP 주소로 작업할 수 있는 권한도 있어야 합니다.

  • AWS Resource Access Manager를 사용하여 S3 on Outposts에 액세스하는 공유 계정의 경우 공유 계정의 사용자는 공유 서브넷에서 자체 엔드포인트를 생성할 수 없습니다. 공유 계정의 사용자가 자체 엔드포인트를 관리하려는 경우 공유 계정은 Outpost에서 자체 서브넷을 생성해야 합니다. 자세한 정보는 AWS RAM 사용을 통해 S3 on Outposts 공유을 참조하십시오.

S3 on Outposts 엔드포인트 관련 IAM 권한
작업 IAM 권한
CreateEndpoint

s3-outposts:CreateEndpoint

ec2:CreateNetworkInterface

ec2:DescribeNetworkInterfaces

ec2:DescribeVpcs

ec2:DescribeSecurityGroups

ec2:DescribeSubnets

ec2:CreateTags

온프레미스 고객 소유 IP 주소 풀(CoIP 풀) 액세스 유형을 사용하는 엔드포인트의 경우 다음과 같은 추가 권한이 필요합니다.

s3-outposts:CreateEndpoint

ec2:DescribeCoipPools

ec2:GetCoipPoolUsage

ec2:AllocateAddress

ec2:AssociateAddress

ec2:DescribeAddresses

ec2:DescribeLocalGatewayRouteTableVpcAssociations

DeleteEndpoint

s3-outposts:DeleteEndpoint

ec2:DeleteNetworkInterface

ec2:DescribeNetworkInterfaces

온프레미스 고객 소유 IP 주소 풀(CoIP 풀) 액세스 유형을 사용하는 엔드포인트의 경우 다음과 같은 추가 권한이 필요합니다.

s3-outposts:DeleteEndpoint

ec2:DisassociateAddress

ec2:DescribeAddresses

ec2:ReleaseAddress

ListEndpoints

s3-outposts:ListEndpoints

참고

IAM 정책에서 리소스 태그를 사용하여 권한을 관리할 수 있습니다.