Skip to main content
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

버킷 및 그룹 액세스 정책을 사용합니다

기여자

StorageGRID은 AWS(Amazon Web Services) 정책 언어를 사용하여 S3 테넌트가 해당 버킷 및 오브젝트 내의 버킷에 대한 액세스를 제어할 수 있도록 합니다. StorageGRID 시스템은 S3 REST API 정책 언어의 하위 집합을 구현합니다. S3 API에 대한 액세스 정책은 JSON으로 기록됩니다.

액세스 정책 개요

StorageGRID에서 지원하는 액세스 정책에는 두 가지 유형이 있습니다.

  • * 버킷 정책 * - GetBucketPolicy, PutBucketPolicy 및 DeleteBucketPolicy S3 API 작업 또는 테넌트 관리자 또는 테넌트 관리 API를 사용하여 관리됩니다. 버킷 정책은 버킷에 첨부되므로 버킷 소유자 계정 또는 버킷에 대한 다른 계정 및 버킷에 있는 오브젝트에 대한 사용자의 액세스를 제어하도록 구성됩니다. 버킷 정책은 하나의 버킷과 여러 그룹에만 적용됩니다.

  • 테넌트 관리자 또는 테넌트 관리 API를 사용하여 구성된 * 그룹 정책 * 입니다. 그룹 정책은 계정의 그룹에 연결되므로 해당 그룹이 해당 계정이 소유한 특정 리소스에 액세스할 수 있도록 구성됩니다. 그룹 정책은 하나의 그룹에만 적용되고 여러 버킷에 적용될 수 있습니다.

참고 그룹 정책과 버킷 정책 간에는 우선 순위에 차이가 없습니다.

StorageGRID 버킷 및 그룹 정책은 아마존에서 정의한 특정 문법을 따릅니다. 각 정책 안에는 정책 문의 배열이 들어 있으며 각 문에는 다음 요소가 포함되어 있습니다.

  • 정책 ID(SID)(선택 사항)

  • 효과

  • Principal/NotPrincipal입니다

  • 리소스/NotResource입니다

  • 작업/NotAction

  • 조건(선택 사항)

정책 문은 이 구조를 사용하여 권한을 지정합니다. pert <effect> <principal>이(가) <condition>이(가) 적용될 때 <Resource>에서 <Action>을(를) 수행하도록 허용/거부합니다.

각 정책 요소는 특정 함수에 사용됩니다.

요소 설명

SID

SID 요소는 선택 사항입니다. SID는 사용자에 대한 설명으로만 제공됩니다. StorageGRID 시스템에서 저장하지만 해석되지 않습니다.

효과

Effect 요소를 사용하여 지정된 작업의 허용 여부를 설정합니다. 지원되는 작업 요소 키워드를 사용하여 버킷 또는 오브젝트에 대해 허용(또는 거부)하는 작업을 식별해야 합니다.

Principal/NotPrincipal입니다

사용자, 그룹 및 계정이 특정 리소스에 액세스하고 특정 작업을 수행하도록 허용할 수 있습니다. 요청에 S3 서명이 포함되지 않은 경우 와일드카드 문자(*)를 보안 주체에 지정하여 익명 액세스가 허용됩니다. 기본적으로 계정 루트만 해당 계정이 소유한 리소스에 액세스할 수 있습니다.

버킷 정책에서 Principal 요소만 지정하면 됩니다. 그룹 정책의 경우 정책이 연결된 그룹이 암시적 Principal 요소입니다.

리소스/NotResource입니다

Resource 요소는 버킷 및 오브젝트를 식별합니다. ARN(Amazon Resource Name)을 사용하여 리소스를 식별하는 버킷 및 객체에 대한 권한을 허용하거나 거부할 수 있습니다.

작업/NotAction

Action 및 Effect 요소는 권한의 두 구성 요소입니다. 그룹이 리소스를 요청하면 리소스에 대한 액세스가 부여되거나 거부됩니다. 명시적으로 권한을 할당하지 않는 한 액세스가 거부되지만 명시적 DENY를 사용하여 다른 정책이 부여한 권한을 재정의할 수 있습니다.

조건

Condition 요소는 선택 요소입니다. 조건을 사용하면 식을 만들어 정책을 적용해야 하는 시기를 결정할 수 있습니다.

Action 요소에서 와일드카드 문자(*)를 사용하여 모든 작업이나 작업의 하위 집합을 지정할 수 있습니다. 예를 들어 이 작업은 S3:GetObject , S3:PutObject 및 S3:DeleteObject 와 같은 사용 권한을 일치시킵니다.

s3:*Object

Resource 요소에서 와일드카드 문자(\ ) 및 (?)를 사용할 수 있습니다. 별표()가 0개 이상의 문자와 일치하면 물음표(?)가 모든 단일 문자와 일치합니다.

Principal 요소에서 모든 사용자에게 권한을 부여하는 익명 액세스를 설정하는 것 외에는 와일드카드 문자는 지원되지 않습니다. 예를 들어 와일드카드(*)를 Principal 값으로 설정합니다.

"Principal":"*"
"Principal":{"AWS":"*"}

다음 예제에서는 Effect , Principal , Action 및 Resource 요소를 사용합니다. 이 예에서는 "허용"의 효과를 사용하여 Principals, 관리자 그룹 및 재무 그룹 federated-group/finance, 이름이 지정된 버킷에서 mybucket 작업을 수행할 수 있는 권한 s3:ListBucket 및 해당 버킷 내의 모든 객체에 대한 작업을 s3:GetObject 제공하는 완전한 버킷 정책 문을 보여 federated-group/admin 줍니다.

{
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::27233906934684427525:federated-group/admin",
          "arn:aws:iam::27233906934684427525:federated-group/finance"
        ]
      },
      "Action": [
        "s3:ListBucket",
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:::mybucket",
        "arn:aws:s3:::mybucket/*"
      ]
    }
  ]
}

버킷 정책은 크기 제한이 20,480바이트이고 그룹 정책은 크기 제한이 5,120바이트입니다.

정책의 일관성

기본적으로 그룹 정책에 대한 모든 업데이트는 최종적으로 일치합니다. 그룹 정책이 일관되면 정책 캐싱으로 인해 변경 내용이 적용되는 데 15분이 더 걸릴 수 있습니다. 기본적으로 버킷 정책에 대한 모든 업데이트는 매우 일관적입니다.

필요에 따라 버킷 정책 업데이트의 일관성 보장을 변경할 수 있습니다. 예를 들어 사이트 중단 중에 버킷 정책의 변경을 사용할 수 있도록 할 수 있습니다.

이 경우 PutBucketPolicy 요청에서 헤더를 설정하거나 Put Bucket 정합성 요청을 사용할 수 Consistency-Control 있습니다. 버킷 정책의 정합성이 보장되면 정책 캐싱으로 인해 변경 내용이 적용되는 데 8초 더 걸릴 수 있습니다.

참고 일시적 상황을 해결하기 위해 일관성을 다른 값으로 설정한 경우 작업을 마치면 버킷 수준 설정을 원래 값으로 다시 설정해야 합니다. 그렇지 않으면 이후의 모든 버킷 요청에 수정된 설정이 사용됩니다.

정책 설명에 ARN을 사용합니다

정책 문에서 ARN은 Principal 및 Resource 요소에서 사용됩니다.

  • 이 구문을 사용하여 S3 리소스 ARN을 지정합니다.

    arn:aws:s3:::bucket-name
    arn:aws:s3:::bucket-name/object_key
  • 이 구문을 사용하여 ID 리소스 ARN(사용자 및 그룹)을 지정합니다.

    arn:aws:iam::account_id:root
    arn:aws:iam::account_id:user/user_name
    arn:aws:iam::account_id:group/group_name
    arn:aws:iam::account_id:federated-user/user_name
    arn:aws:iam::account_id:federated-group/group_name

기타 고려 사항:

  • 별표(*)를 와일드카드로 사용하여 개체 키 안에 0개 이상의 문자를 일치시킬 수 있습니다.

  • 개체 키에 지정할 수 있는 국제 문자는 JSON UTF-8 또는 JSON\u 이스케이프 시퀀스를 사용하여 인코딩해야 합니다. 퍼센트 인코딩은 지원되지 않습니다.

    PutBucketPolicy 작업에 대한 HTTP 요청 본문은 charset=UTF-8로 인코딩되어야 합니다.

정책에서 리소스를 지정합니다

정책 문에서 Resource 요소를 사용하여 사용 권한이 허용되거나 거부되는 버킷 또는 개체를 지정할 수 있습니다.

  • 각 정책 문에는 Resource 요소가 필요합니다. 정책에서 리소스는 요소로 표시되거나 NotResource 제외를 위해 요소로 Resource 표시됩니다.

  • S3 리소스 ARN을 사용하여 리소스를 지정합니다. 예를 들면 다음과 같습니다.

    "Resource": "arn:aws:s3:::mybucket/*"
  • 개체 키 내에서 정책 변수를 사용할 수도 있습니다. 예를 들면 다음과 같습니다.

    "Resource": "arn:aws:s3:::mybucket/home/${aws:username}/*"
  • 리소스 값은 그룹 정책이 생성될 때 아직 존재하지 않는 버킷을 지정할 수 있습니다.

정책에 보안 주체를 지정합니다

Principal 요소를 사용하여 policy 문에 의해 리소스에 대한 액세스가 허용/거부된 사용자, 그룹 또는 테넌트 계정을 식별합니다.

  • 버킷 정책의 각 정책 선언에는 Principal 요소가 포함되어야 합니다. 그룹 정책의 정책 설명은 그룹이 보안 주체로 인식되기 때문에 Principal 요소가 필요하지 않습니다.

  • 정책에서 주체는 "Principal" 또는 "NotPrincipal" 요소로 표시됩니다.

  • 계정 기반 ID는 ID 또는 ARN을 사용하여 지정해야 합니다.

    "Principal": { "AWS": "account_id"}
    "Principal": { "AWS": "identity_arn" }
  • 이 예에서는 계정 루트 및 계정의 모든 사용자를 포함하는 테넌트 계정 ID 27233906934684427525를 사용합니다.

     "Principal": { "AWS": "27233906934684427525" }
  • 계정 루트만 지정할 수 있습니다.

    "Principal": { "AWS": "arn:aws:iam::27233906934684427525:root" }
  • 특정 페더레이션 사용자("Alex")를 지정할 수 있습니다.

    "Principal": { "AWS": "arn:aws:iam::27233906934684427525:federated-user/Alex" }
  • 특정 통합 그룹("관리자")을 지정할 수 있습니다.

    "Principal": { "AWS": "arn:aws:iam::27233906934684427525:federated-group/Managers"  }
  • 익명 보안 주체를 지정할 수 있습니다.

    "Principal": "*"
  • 모호함을 방지하려면 사용자 이름 대신 사용자 UUID를 사용할 수 있습니다.

    arn:aws:iam::27233906934684427525:user-uuid/de305d54-75b4-431b-adb2-eb6b9e546013

    예를 들어 Alex가 조직을 떠나고 사용자 이름이 삭제된다고 가정해 Alex 보겠습니다. 새 Alex가 조직에 합류하여 동일한 사용자 이름이 할당된 경우 Alex 새 사용자는 원래 사용자에게 부여된 권한을 의도치 않게 상속할 수 있습니다.

  • Principal 값은 버킷 정책이 생성될 때 아직 존재하지 않는 그룹/사용자 이름을 지정할 수 있습니다.

정책에서 사용 권한을 지정합니다

정책에서 Action 요소는 리소스에 대한 권한을 허용/거부하는 데 사용됩니다. 정책에서 지정할 수 있는 사용 권한 집합이 있으며, 이러한 권한은 "작업" 또는 "NotAction" 요소로 표시됩니다. 각 요소는 특정 S3 REST API 작업에 매핑됩니다.

이 표에는 버킷에 적용되는 사용 권한과 객체에 적용되는 사용 권한이 나열되어 있습니다.

참고 이제 Amazon S3는 PutBucketReplication 및 DeleteBucketReplication 작업 모두에 대해 S3:PutReplicationConfiguration 권한을 사용합니다. StorageGRID는 원래 Amazon S3 사양과 일치하는 각 작업에 대해 별도의 권한을 사용합니다.
참고 기존 값을 덮어쓰는 데 PUT을 사용할 때 삭제가 수행됩니다.

버킷에 적용되는 권한

권한 S3 REST API 작업 StorageGRID 사용자 지정

S3:생성 버킷

CreateBucket

예.

  • 참고 *: 그룹 정책에만 사용합니다.

S3:삭제 버킷

삭제 버킷

S3:DeleteBucketMetadataNotification

버킷 메타데이터 알림 구성을 삭제합니다

S3:삭제 BucketPolicy

DeleteBuckketPolicy를 참조하십시오

S3:DeleteReplicationConfiguration

DeleteBuckReplication 을 참조하십시오

예, 삽입 및 삭제 권한을 구분합니다

S3:GetBuckketAcl

GetBuckketAcl

S3:GetBucketCompliance

버킷 규정 준수 가져오기(더 이상 사용되지 않음)

S3:GetBuckketConsistency

버킷 일관성 확보

S3:GetBuckketCORS

GetBuckketCors 를 참조하십시오

S3:GetEncryptionConfiguration

GetBuckketEncryption을 참조하십시오

S3:GetBucketLastAccessTime

버킷 최종 액세스 시간 가져오기

S3:GetBucketLocation

GetBucketLocation 을 참조하십시오

S3:GetBuckMetadataNotification 을 참조하십시오

Bucket 메타데이터 알림 구성 가져오기

S3:GetBucketNotification 을 참조하십시오

GetBuckNotificationConfiguration 을 참조하십시오

S3:GetBuckketObjectLockConfiguration

GetObjectLockConfiguration 을 참조하십시오

S3:GetBuckketPolicy를 참조하십시오

GetBuckketPolicy를 참조하십시오

S3:GetBucketTagging

GetBucketTagging

S3:GetBucketVersioning

GetBuckketVersioning 을 참조하십시오

S3:GetLifecycleConfiguration

GetBuckLifecycleConfiguration 을 참조하십시오

S3:GetReplicationConfiguration

GetBucketReplication 을 참조하십시오

S3:ListAllMyBucket

  • ListBucket

  • 스토리지 사용량을 가져옵니다

예, 스토리지 사용량 가져오기.

  • 참고 *: 그룹 정책에만 사용합니다.

S3:목록 버킷

  • ListObjects 를 선택합니다

  • 머리버킷

  • RestoreObject 를 선택합니다

S3:ListBuckketMultipartUploads

  • ListMultipartUploads 를 참조하십시오

  • RestoreObject 를 선택합니다

S3:목록 BuckketVersions

버킷 버전 가져오기

S3: PutBucketCompliance

버킷 규정 준수(폐기됨)

S3: PutBucketConsistency

버킷 일관성을 유지합니다

S3: PutBucketCORS

  • DeleteBucketCors †

  • BuckketCors의

S3:PutEncryptionConfiguration

  • DeleteBucketEncryption

  • PutBucketEncryption을 참조하십시오

S3:PutBucketLastAccessTime

버킷 최종 접근 시간

S3:PutBucketMetadataNotification

Put Bucket 메타데이터 알림 구성

S3: PutBucketNotification

PutBucketNotificationConfiguration을 참조하십시오

S3:PutBucketObjectLockConfiguration

  • 요청 헤더가 있는 CreateBucket x-amz-bucket-object-lock-enabled: true(S3:CreateBucket 권한도 필요)

  • PutObjectLockConfiguration 을 참조하십시오

S3: PutBucketPolicy

BucketPolicy를 참조하십시오

S3: PutBucketTagging

  • DeleteBucketTagging † 를 참조하십시오

  • BucketTagging

S3: PutBucketVersioning

PutBucketVersioning을 참조하십시오

S3: PutLifecycleConfiguration

  • DeleteBucketLifecycle † 을 참조하십시오

  • PutBucketLifecycleConfiguration을 참조하십시오

S3:PutReplicationConfiguration

PutBucketReplication을 참조하십시오

예, 삽입 및 삭제 권한을 구분합니다

객체에 적용되는 권한

권한 S3 REST API 작업 StorageGRID 사용자 지정

S3:중단멀티업로드입니다

  • AbortMultipartUpload 를 클릭합니다

  • RestoreObject 를 선택합니다

S3:BypassGovernanceRetention

  • DeleteObject 를 클릭합니다

  • DeleteObjects 를 클릭합니다

  • PutObjectRetention

S3:DeleteObject 를 선택합니다

  • DeleteObject 를 클릭합니다

  • DeleteObjects 를 클릭합니다

  • RestoreObject 를 선택합니다

S3:삭제 ObjectTagging

DeleteObjectTagging 을 선택합니다

S3:DeleteObjectVersionTagging

DeleteObjectTagging(개체의 특정 버전)

S3:DeleteObjectVersion

DeleteObject(개체의 특정 버전)

S3:GetObject

  • GetObject 를 참조하십시오

  • HeadObject 를 선택합니다

  • RestoreObject 를 선택합니다

  • SelectObjectContent 를 선택합니다

S3:GetObjectAcl

GetObjectAcl

S3:GetObjectLegalHold

GetObjectLegalHold 를 참조하십시오

S3:GetObjectRetention

GetObjectRetention을 참조하십시오

S3:GetObjectTagging

GetObjectTagging

S3:GetObjectVersionTagging

GetObjectTagging(개체의 특정 버전)

S3:GetObjectVersion

GetObject(개체의 특정 버전)

S3:ListMultipartUploadParts(S3:ListMultimpartUploadParts) 를

ListParts, RestoreObject 를 참조하십시오

S3:PutObject

  • PutObject 를 선택합니다

  • CopyObject 를 선택합니다

  • RestoreObject 를 선택합니다

  • CreateMultptUpload 를 클릭합니다

  • CompleteMultipartUpload를 클릭합니다

  • 업로드 파트

  • 업로드파트 복사

S3:PutObjectLegalHold

PutObjectLegalHold를 선택합니다

S3:PutObjectRetention

PutObjectRetention

S3:PutObjectTagging

PutObjectTagging

S3:PutObjectVersionTagging

PutObjectTagging(개체의 특정 버전)

S3:PutOverwriteObject

  • PutObject 를 선택합니다

  • CopyObject 를 선택합니다

  • PutObjectTagging

  • DeleteObjectTagging 을 선택합니다

  • CompleteMultipartUpload를 클릭합니다

S3:RestoreObject

RestoreObject 를 선택합니다

PutOverwriteObject 권한을 사용합니다

S3:PutOverwriteObject 권한은 개체를 만들거나 업데이트하는 작업에 적용되는 사용자 지정 StorageGRID 권한입니다. 이 사용 권한의 설정에 따라 클라이언트가 개체의 데이터, 사용자 정의 메타데이터 또는 S3 오브젝트 태그 지정을 덮어쓸 수 있는지 여부가 결정됩니다.

이 권한에 사용할 수 있는 설정은 다음과 같습니다.

  • * 허용 *: 클라이언트가 개체를 덮어쓸 수 있습니다. 기본 설정입니다.

  • * 거부 *: 클라이언트가 개체를 덮어쓸 수 없습니다. Deny 로 설정된 경우 PutOverwriteObject 권한은 다음과 같이 작동합니다.

    • 기존 객체가 같은 경로에 있는 경우:

      • 오브젝트의 데이터, 사용자 정의 메타데이터 또는 S3 오브젝트 태깅을 덮어쓸 수 없습니다.

      • 진행 중인 모든 수집 작업이 취소되고 오류가 반환됩니다.

      • S3 버전 관리를 사용하는 경우 거부 설정을 사용하면 PutObjectTagging 또는 DeleteObjectTagging 작업에서 개체 및 해당 비최신 버전에 대한 TagSet을 수정할 수 없습니다.

    • 기존 개체를 찾을 수 없으면 이 권한은 적용되지 않습니다.

  • 이 권한이 없으면 Allow가 설정된 것과 효과가 같습니다.

참고 현재 S3 정책이 덮어쓰기를 허용하고 PutOverwriteObject 권한이 Deny 로 설정된 경우 클라이언트는 개체의 데이터, 사용자 정의 메타데이터 또는 개체 태그를 덮어쓸 수 없습니다. 또한 * 클라이언트 수정 방지 * 확인란이 선택된 경우(* 구성 * > * 보안 설정 * > * 네트워크 및 개체 *) 해당 설정은 PutOverwriteObject 권한 설정을 재정의합니다.

정책에서 조건을 지정합니다

조건은 정책이 적용되는 시점을 정의합니다. 조건은 연산자 및 키 값 쌍으로 구성됩니다.

조건은 평가에 키 값 쌍을 사용합니다. 조건 요소에는 여러 조건이 포함될 수 있으며 각 조건에는 여러 키 값 쌍이 포함될 수 있습니다. 조건 블럭은 다음 형식을 사용합니다:

Condition: {
     condition_type: {
          condition_key: condition_values

다음 예제에서 IPAddress 조건은 SOURCEIP 조건 키를 사용합니다.

"Condition": {
    "IpAddress": {
      "aws:SourceIp": "54.240.143.0/24"
		...
},
		...

지원되는 조건 연산자

조건 연산자는 다음과 같이 분류됩니다.

  • 문자열

  • 숫자

  • 부울

  • IP 주소입니다

  • Null 확인

조건 연산자 설명

StringEquals

정확한 일치(대/소문자 구분)를 기반으로 문자열 값과 키를 비교합니다.

StringNotEquals

키를 부정 일치(대/소문자 구분)를 기반으로 문자열 값과 비교합니다.

StringEqualsIgnoreCase 를 참조하십시오

정확한 일치를 기준으로 문자열 값과 키를 비교합니다(대/소문자 무시).

StringNotEqualsIgnoreCase 를 참조하십시오

Negated matching (대소문자 무시)을 기준으로 문자열 값과 키를 비교합니다.

StringLike 를 선택합니다

정확한 일치(대/소문자 구분)를 기반으로 문자열 값과 키를 비교합니다. 및? 와일드카드 문자를 포함할 수 있습니다.

StringNotLike 를 참조하십시오

키를 부정 일치(대/소문자 구분)를 기반으로 문자열 값과 비교합니다. 및? 와일드카드 문자를 포함할 수 있습니다.

NumericEquals

정확한 일치를 기준으로 키를 숫자 값과 비교합니다.

NumericNotEquals

키를 부정 일치를 기준으로 숫자 값과 비교합니다.

NumericGreaterThan

"보다 큼" 일치를 기준으로 키를 숫자 값과 비교합니다.

NumericGreaterThanEquals

"보다 크거나 같음" 일치를 기준으로 키를 숫자 값과 비교합니다.

NumericLessThan

"보다 작음" 일치를 기준으로 키를 숫자 값과 비교합니다.

NumericLessThanEquals

"보다 작거나 같음" 일치를 기준으로 키를 숫자 값과 비교합니다.

불입니다

"true 또는 false" 일치를 기준으로 키를 부울 값과 비교합니다.

IP 주소

키를 IP 주소 또는 IP 주소 범위와 비교합니다.

NotIpAddress 를 참조하십시오

부정 일치를 기준으로 IP 주소 또는 IP 주소 범위와 키를 비교합니다.

null입니다

현재 요청 컨텍스트에 조건 키가 있는지 확인합니다.

지원되는 조건 키

상태 키 작업 설명

AWS: SOURCEIP

IP 연산자

요청이 전송된 IP 주소와 비교합니다. 버킷 또는 오브젝트 작업에 사용할 수 있습니다.

  • 참고: * S3 요청이 관리 노드 및 게이트웨이 노드의 로드 밸런서 서비스를 통해 전송된 경우 로드 밸런서 서비스의 IP 주소 업스트림과 비교됩니다.

  • 참고 *: 타사, 비투명 로드 밸런서가 사용되는 경우 이 로드 밸런서의 IP 주소와 비교합니다. `X-Forwarded-For`헤더의 유효성을 확인할 수 없으므로 헤더는 무시됩니다.

AWS: 사용자 이름

리소스/ID입니다

요청이 전송된 보낸 사람의 사용자 이름과 비교합니다. 버킷 또는 오브젝트 작업에 사용할 수 있습니다.

S3: 구분 기호

S3:ListBucket 및

S3: ListBuckketVersions 권한

는 ListObjects 또는 ListObjectVersions 요청에 지정된 구분 기호 매개 변수와 비교됩니다.

S3: ExistingObjectTag/<tag-key>

S3:삭제 ObjectTagging

S3:DeleteObjectVersionTagging

S3:GetObject

S3:GetObjectAcl

3: GetObjectTagging

S3:GetObjectVersion

S3:GetObjectVersionAcl

S3:GetObjectVersionTagging

S3: PutObjectAcl

S3:PutObjectTagging

S3: PutObjectVersionAcl

S3:PutObjectVersionTagging

기존 개체에 특정 태그 키와 값이 있어야 합니다.

S3: 최대 키

S3:ListBucket 및

S3: ListBuckketVersions 권한

는 ListObjects 또는 ListObjectVersions 요청에 지정된 max-keys 매개 변수와 비교됩니다.

S3: 오브젝트 잠금 장치 - 남은 보존 기간(일)

S3:PutObject

요청 헤더에 지정되거나 버킷 기본 보존 기간에서 계산된 유지 종료 날짜와 비교하여 x-amz-object-lock-retain-until-date 이러한 값이 다음 요청에 대해 허용되는 범위 내에 있는지 확인합니다.

  • PutObject 를 선택합니다

  • CopyObject 를 선택합니다

  • CreateMultptUpload 를 클릭합니다

S3: 오브젝트 잠금 장치 - 남은 보존 기간(일)

S3:PutObjectRetention

PutObjectRetention 요청에 지정된 유지 종료 날짜와 비교하여 허용 범위 내에 있는지 확인합니다.

S3: 접두어

S3:ListBucket 및

S3: ListBuckketVersions 권한

는 ListObjects 또는 ListObjectVersions 요청에 지정된 접두사 매개 변수와 비교됩니다.

S3: RequestObjectTag/<tag-key>

S3:PutObject

S3:PutObjectTagging

S3:PutObjectVersionTagging

개체 요청에 태그가 포함된 경우 특정 태그 키와 값이 필요합니다.

정책에 변수를 지정합니다

정책의 변수를 사용하여 사용 가능한 정책 정보를 채울 수 있습니다. 요소의 문자열 비교와 요소에 Condition 정책 변수를 사용할 수 Resource 있습니다.

이 예제에서 변수는 ${aws:username} Resource 요소의 일부입니다.

"Resource": "arn:aws:s3:::bucket-name/home/${aws:username}/*"

이 예제에서 변수는 ${aws:username} 조건 블록의 조건 값의 일부입니다.

"Condition": {
    "StringLike": {
      "s3:prefix": "${aws:username}/*"
		...
},
		...
변수 설명

${aws:SourceIp}

SOURCEIP 키를 제공된 변수로 사용합니다.

${aws:username}

제공된 변수로 사용자 이름 키를 사용합니다.

${s3:prefix}

서비스별 prefix key를 제공된 variable 로 사용한다.

${s3:max-keys}

서비스별 최대 키 키를 제공된 변수로 사용합니다.

${*}

특수 문자. 문자를 리터럴 * 문자로 사용합니다.

${?}

특수 문자. 문자를 리터럴? 문자로 사용합니다.

${$}

특수 문자. 문자를 리터럴 $ 문자로 사용합니다.

특별한 처리가 필요한 정책을 생성합니다

때로는 정책에 따라 보안이 위험하거나 계정 루트 사용자를 잠그는 등 지속적인 작업에 위험한 사용 권한을 부여할 수 있습니다. StorageGRID S3 REST API 구현은 Amazon보다 정책 검증 중에 덜 제한적이지만 정책 평가 중에도 동일하게 엄격합니다.

정책 설명입니다 정책 유형입니다 아마존 행동 StorageGRID 동작

루트 계정에 대한 모든 권한을 스스로 거부합니다

버킷

유효하고 적용되지만 루트 사용자 계정은 모든 S3 버킷 정책 작업에 대한 권한을 보유합니다

동일합니다

사용자/그룹에 대한 모든 권한을 스스로 거부합니다

그룹

유효하고 시행되었습니다

동일합니다

외부 계정 그룹에 모든 권한을 허용합니다

버킷

주체가 잘못되었습니다

유효하지만 모든 S3 버킷 정책 작업에 대한 권한은 정책에서 허용하는 경우 405 메서드 허용되지 않음 오류를 반환합니다

외부 계정 루트 또는 사용자에게 모든 권한을 허용합니다

버킷

유효하지만 모든 S3 버킷 정책 작업에 대한 권한은 정책에서 허용하는 경우 405 메서드 허용되지 않음 오류를 반환합니다

동일합니다

모든 사용자에게 모든 작업에 대한 사용 권한을 허용합니다

버킷

유효하지만 모든 S3 버킷 정책 작업에 대한 사용 권한이 외국 계정 루트 및 사용자에 대해 405 메서드 허용 안 됨 오류를 반환합니다

동일합니다

모든 작업에 대한 모든 사용자의 권한을 거부합니다

버킷

유효하고 적용되지만 루트 사용자 계정은 모든 S3 버킷 정책 작업에 대한 권한을 보유합니다

동일합니다

보안 주체는 존재하지 않는 사용자 또는 그룹입니다

버킷

주체가 잘못되었습니다

유효합니다

리소스가 존재하지 않는 S3 버킷입니다

그룹

유효합니다

동일합니다

보안 주체는 로컬 그룹입니다

버킷

주체가 잘못되었습니다

유효합니다

정책은 개체를 넣을 수 있는 비소유자 계정(익명 계정 포함) 권한을 부여합니다.

버킷

유효합니다. 객체는 생성자 계정이 소유하며 버킷 정책은 적용되지 않습니다. 생성자 계정은 개체 ACL을 사용하여 개체에 대한 액세스 권한을 부여해야 합니다.

유효합니다. 오브젝트는 버킷 소유자 계정이 소유합니다. 버킷 정책이 적용됩니다.

WORM(Write-Once-Read-Many) 보호

WORM(Write-Once-Read-Many) 버킷을 생성하여 데이터, 사용자 정의 오브젝트 메타데이터 및 S3 오브젝트 태깅을 보호할 수 있습니다. 새 객체를 생성하고 기존 컨텐츠를 덮어쓰거나 삭제하지 못하도록 WORM 버킷을 구성합니다. 여기에 설명된 방법 중 하나를 사용합니다.

덮어쓰기가 항상 거부되도록 하려면 다음을 수행할 수 있습니다.

  • Grid Manager에서 * 구성 * > * 보안 * > * 보안 설정 * > * 네트워크 및 개체 * 로 이동하여 * 클라이언트 수정 방지 * 확인란을 선택합니다.

  • 다음 규칙 및 S3 정책을 적용합니다.

    • S3 정책에 PutOverwriteObject 거부 작업을 추가합니다.

    • DeleteObject 거부 작업을 S3 정책에 추가합니다.

    • S3 정책에 PutObject 허용 작업을 추가합니다.

참고 S3 정책에서 DeleteObject를 DENY로 설정해도 "30일 후 복사본 제로" 같은 규칙이 있을 때 ILM이 개체를 삭제할 수 없습니다.
참고 이러한 규칙과 정책이 모두 적용되더라도 동시 쓰기를 방지하지 않습니다(상황 A 참조). 순차적 완료된 덮어쓰기를 방지합니다(상황 B 참조).
  • 상황 A *: 동시 쓰기(보호 안 됨)

/mybucket/important.doc
PUT#1 ---> OK
PUT#2 -------> OK
  • 상황 B *: 순차적 완료된 덮어쓰기(방지됨)

/mybucket/important.doc
PUT#1 -------> PUT#2 ---X (denied)