권한 부여 생성 - Amazon Simple Storage Service

권한 부여 생성

Amazon S3 Access Grants 인스턴스에 위치를 하나 이상 등록한 후 액세스 권한 부여를 생성할 수 있습니다. 액세스 권한 부여는 피부여자에게 등록된 위치에 액세스할 수 있는 권한을 부여합니다.

피부여자는 AWS Identity and Access Management(IAM) 사용자나 역할 또는 디렉터리 사용자나 그룹일 수 있습니다. 디렉터리 사용자는 S3 Access Grants 인스턴스와 연결된 AWS IAM Identity Center 인스턴스에 추가한 기업 디렉터리 또는 외부 ID 소스의 사용자입니다. IAM Identity Center에서 특정 사용자 또는 그룹에 대한 권한 부여를 생성하려면 IAM Identity Center에서 해당 사용자를 식별하는 데 사용하는 GUID를 찾으세요(예: a1b2c3d4-5678-90ab-cdef-EXAMPLE11111).

버킷, 접두사 또는 객체에 액세스 권한을 부여할 수 있습니다. Amazon S3의 접두사는 객체 키 이름의 앞에 있는 문자열로, 버킷 내의 객체를 구성하는 데 사용됩니다. 이는 허용되는 모든 문자열(예: engineering/ 접두사로 시작하는 버킷의 객체 키 이름)이 될 수 있습니다.

하위 접두사

등록된 위치에 대한 액세스 권한을 부여할 때 Subprefix 필드를 사용하여 범위를 버킷 내 특정 접두사 또는 버킷의 특정 객체로 좁힐 수 있습니다.

기본 위치인 s3://에 대해서는 액세스 권한 부여를 생성할 수 없으며, 생성하면 피부여자에게 리전 내 모든 버킷에 대한 액세스 권한을 부여하게 됩니다. 기본 s3:// 위치를 권한 부여 위치로 선택하는 경우 Subprefix 필드를 사용하여 다음 중 하나를 지정하여 권한 부여 범위를 좁혀야 합니다.

  • 버킷 - s3://bucket/*

  • 버킷 내 접두사 - s3://bucket/prefix*

  • 접두사 내의 접두사 - s3://bucket/prefixA/prefixB*

  • 객체 - s3://bucket/object-key-name

등록된 위치가 버킷인 곳에 액세스 권한 부여를 생성하는 경우 Subprefix 필드에 다음 중 하나를 전달할 수 있습니다.

  • 버킷 내의 접두사 - prefix*

  • 접두사 내의 접두사 - prefixA/prefixB*

  • 객체 - /object-key-name

Amazon S3 콘솔에 표시된 권한 범위 또는 API 또는 AWS Command Line Interface(AWS CLI) 응답에 반환되는 GrantScope은 위치 경로를 Subprefix와 연결한 결과입니다. 이 연결 경로가 액세스 권한을 부여하려는 S3 버킷, 접두사 또는 객체에 올바르게 매핑되는지 확인하세요.

한 객체에만 액세스 권한을 부여하는 액세스 권한 부여를 생성하는 경우 API 직접 호출 또는 CLI 명령에 s3PrefixTypeObject로 지정하세요.

참고

버킷이 아직 존재하지 않는 경우 버킷에 대한 권한 부여를 생성할 수 없습니다. 하지만 아직 존재하지 않는 접두사에 대한 권한 부여를 생성할 수는 있습니다.

Amazon S3 콘솔, AWS CLI, Amazon S3 REST API, AWS SDK를 사용하여 액세스 권한 부여를 생성할 수 있습니다.

액세스 권한 부여 생성
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 Access Grants를 선택합니다.

  3. S3 Access Grants 페이지에서 사용하려는 S3 Access Grants 인스턴스가 포함된 리전을 선택합니다.

    S3 Access Grants 인스턴스를 처음 사용하는 경우 2단계 - 위치 등록을 완료하고 Access Grants 인스턴스 설정 마법사의 3단계로 이동했는지 확인하세요. 이미 S3 Access Grants 인스턴스가 있는 경우 세부 정보 보기를 선택한 다음 권한 부여 탭에서 권한 부여 생성을 선택합니다.

    1. 권한 부여 범위 섹션에서 등록된 위치를 선택하거나 입력합니다.

      기본 s3:// 위치를 선택한 경우 하위 접두사 상자를 사용하여 액세스 권한 부여 범위를 좁힐 수 있습니다. 자세한 내용은 하위 접두사를 참조하세요. 객체에만 액세스 권한을 부여하는 경우 권한 부여 범위가 객체임을 선택합니다.

    2. 권한 및 액세스에서 권한 수준(읽기, 쓰기 또는 둘 다)을 선택합니다.

      그런 다음 피부여자 유형을 선택합니다. 기업 디렉터리를 IAM Identity Center에 추가하고 이 IAM Identity Center 인스턴스를 S3 Access Grants 인스턴스와 연결한 경우, IAM Identity Center의 디렉터리 ID를 선택할 수 있습니다. 이 옵션을 선택하는 경우 IAM Identity Center에서 사용자 또는 그룹의 ID를 가져와 이 섹션에 입력하세요.

      피부여자 유형이 IAM 사용자 또는 역할인 경우 IAM 보안 주체를 선택합니다. IAM 보안 주체 유형에서 사용자 또는 역할을 선택합니다. 그런 다음, IAM 보안 주체 사용자 아래에서 자격 증명의 ID를 목록에서 선택하거나 입력합니다.

    3. S3 Access Grants 권한 부여를 생성하려면 다음 또는 권한 부여 생성을 선택합니다.

  4. 다음 또는 권한 부여 생성이 비활성화된 경우:

    권한 부여를 생성할 수 없음
    • S3 Access Grants 인스턴스에 먼저 위치를 등록해야 할 수 있습니다.

    • 액세스 권한 부여를 생성하는 데 필요한 s3:CreateAccessGrant 권한이 없을 수도 있습니다. 계정 관리자에게 문의하세요.

AWS CLI를 설치하려면 AWS Command Line Interface 사용 설명서AWS CLI 설치를 참조하세요.

다음 예는 IAM 보안 주체에 대한 액세스 권한 부여 요청을 생성하는 방법과 기업 디렉터리 사용자 또는 그룹에 대한 액세스 권한 부여 요청을 생성하는 방법을 보여줍니다.

다음 예시 명령을 사용하려면 user input placeholders를 실제 정보로 대체하세요.

참고

하나의 객체에만 액세스 권한을 부여하는 액세스 권한 부여를 생성하는 경우 필수 파라미터인 --s3-prefix-type Object를 포함하세요.

예 IAM 보안 주체에 대한 액세스 권한 부여 요청 생성
aws s3control create-access-grant \ --account-id 111122223333 \ --access-grants-location-id a1b2c3d4-5678-90ab-cdef-EXAMPLE22222 \ --access-grants-location-configuration S3SubPrefix=prefixB* \ --permission READ \ --grantee GranteeType=IAM,GranteeIdentifier=arn:aws:iam::123456789012:user/data-consumer-3
예 액세스 권한 부여 응답 생성
{"CreatedAt": "2023-05-31T18:41:34.663000+00:00", "AccessGrantId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "AccessGrantArn": "arn:aws:s3:us-east-2:111122223333:access-grants/default/grant/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Grantee": { "GranteeType": "IAM", "GranteeIdentifier": "arn:aws:iam::111122223333:user/data-consumer-3" }, "AccessGrantsLocationId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "AccessGrantsLocationConfiguration": { "S3SubPrefix": "prefixB*" }, "GrantScope": "s3://DOC-BUCKET-EXAMPLE/prefix*", "Permission": "READ" }
디렉터리 사용자 또는 그룹에 대한 액세스 권한 부여 요청 생성

디렉터리 사용자 또는 그룹에 대한 액세스 권한 부여 요청을 생성하려면 먼저 다음 명령 중 하나를 실행하여 디렉터리 사용자 또는 그룹의 GUID를 가져와야 합니다.

예 디렉터리 사용자 또는 그룹에 대한 GUID 가져오기

IAM Identity Center 사용자의 GUID는 IAM Identity Center 콘솔이나 AWS CLI 또는 AWS SDK를 사용하여 찾을 수 있습니다. 다음 명령은 지정된 IAM Identity Center 인스턴스의 사용자를 이름 및 식별자와 함께 나열합니다.

aws identitystore list-users --identity-store-id d-1a2b3c4d1234

이 명령은 지정된 IAM Identity Center 인스턴스의 그룹을 나열합니다.

aws identitystore list-groups --identity-store-id d-1a2b3c4d1234
예 디렉터리 사용자 또는 그룹에 대한 액세스 권한 부여 생성

이 명령은 IAM 사용자 또는 역할에 대한 권한 부여를 생성하는 것과 비슷합니다. 단, 피부여자 유형은 DIRECTORY_USER 또는 DIRECTORY_GROUP이고 피부여자 식별자는 디렉터리 사용자 또는 그룹의 GUID입니다.

aws s3control create-access-grant \ --account-id 123456789012 \ --access-grants-location-id default \ --access-grants-location-configuration S3SubPrefix="DOC-EXAMPLE-BUCKET/rafael/*" \ --permission READWRITE \ --grantee GranteeType=DIRECTORY_USER,GranteeIdentifier=83d43802-00b1-7054-db02-f1d683aacba5 \

액세스 권한 부여 관리를 위한 Amazon S3 REST API 지원에 대한 자세한 내용은 Amazon Simple Storage Service API 참조의 다음 섹션을 참조하세요.

이 섹션에서는 AWS SDK를 사용하여 액세스 권한 부여를 생성하는 방법의 예시를 보여줍니다.

Java

다음 예시를 사용하려면 user input placeholders를 실제 정보로 대체하세요.

참고

하나의 객체에만 액세스 권한을 부여하는 액세스 권한 부여를 생성하는 경우 필수 파라미터인 .s3PrefixType(S3PrefixType.Object)를 포함하세요.

예 액세스 권한 부여 요청 생성
public void createAccessGrant() { CreateAccessGrantRequest createRequest = CreateAccessGrantRequest.builder() .accountId("111122223333") .accessGrantsLocationId("a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa") .permission("READ") .accessGrantsLocationConfiguration(AccessGrantsLocationConfiguration.builder().s3SubPrefix("prefixB*").build()) .grantee(Grantee.builder().granteeType("IAM").granteeIdentifier("arn:aws:iam::111122223333:user/data-consumer-3").build()) .build(); CreateAccessGrantResponse createResponse = s3Control.createAccessGrant(createRequest); LOGGER.info("CreateAccessGrantResponse: " + createResponse); }
예 액세스 권한 부여 응답 생성
CreateAccessGrantResponse( CreatedAt=2023-06-07T05:20:26.330Z, AccessGrantId=a1b2c3d4-5678-90ab-cdef-EXAMPLE33333, AccessGrantArn=arn:aws:s3:us-east-2:444455556666:access-grants/default/grant/a1b2c3d4-5678-90ab-cdef-EXAMPLE33333, Grantee=Grantee( GranteeType=IAM, GranteeIdentifier=arn:aws:iam::111122223333:user/data-consumer-3 ), AccessGrantsLocationId=a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa, AccessGrantsLocationConfiguration=AccessGrantsLocationConfiguration( S3SubPrefix=prefixB* ), GrantScope=s3://DOC-BUCKET-EXAMPLE/prefixB, Permission=READ )