tencent cloud

피드백

버킷 정책

마지막 업데이트 시간:2024-06-24 17:08:32
    버킷 정책은 설정된 버킷 및 버킷의 객체에 작용합니다. 버킷 정책을 통해 CAM 서브 계정, 다른 루트 계정 및 익명 사용자에 대한 버킷 및 버킷의 객체 작업 권한을 부여할 수 있습니다.

    개요

    주의:
    Tencent Cloud 루트 계정은 그에 속한 리소스(버킷 포함)에 대해 가장 큰 권한을 가집니다. 버킷 정책이 거의 모든 작업을 제한하더라도, 루트 계정은 PUT Bucket Policy 작업 권한을 계속 가지고 있으므로, 해당 작업을 호출하여 버킷 정책을 점검하지 않도록 할 수 있습니다.
    버킷 정책(Bucket Policy)은 JSON 언어를 사용하며 익명 자격이나 Tencent Cloud의 CAM 계정에 버킷, 버킷 작업, 객체 및 객체 작업에 대한 권한을 부여할 수 있습니다. Tencent Cloud COS의 버킷 정책은 버킷의 거의 모든 작업을 관리할 수 있습니다. 버킷 정책을 사용해 ACL로 나타낼 수 없는 액세스 정책을 관리하십시오.

    적용 시나리오

    주의:
    버킷 생성과 버킷 리스트 획득의 두 가지 서비스 레벨의 작업 권한은 CAM 콘솔을 통해 설정해야 합니다.
    이 COS 버킷에 액세스할 수 있는 사용자에게 주의를 기울이는 경우 버킷 정책을 사용하는 것이 좋습니다. 버킷을 조회하고 버킷 정책을 확인하여 액세스할 수 있는 사용자를 확인할 수 있습니다. 권장 시나리오는 다음과 같습니다.
    특정 버킷에만 권한을 부여하는 경우
    ACL에 비해 버킷 정책의 유연성이 더 높습니다.
    사용자 정책 대비, 버킷 정책은 교차 계정 인증 및 익명 사용자 인증 지원

    버킷 정책 구성

    버킷 정책은 JSON 언어로 설명되어 있으며, 구문은 위탁자(principal), 효력(effect), 작업(action), 리소스(resource), 조건(condition) 등의 기본 요소를 포함하여 정책 언어 액세스의 통일된 규범을 따릅니다. 자세한 내용은 액세스 정책 언어 개요를 참고하십시오. 이 중 버킷 정책의 리소스 범위는 버킷 이내로 제한되며, 전체 버킷, 지정된 디렉터리, 지정된 객체에 대해 권한을 부여할 수 있습니다.
    주의:
    버킷 정책을 추가할 때, 반드시 업무상 필요에 따라 최소 권한 원칙에 근거하여 인증해야 합니다. 다른 사용자에게 모든 리소스 (resource:*), 또는 작업 (action:*)에 대한 모든 권한을 부여하면 권한 범위가 너무 광범위해 데이터 보안에 리스크가 발생할 수 있습니다.

    콘솔 설정 예시

    설명:
    COS 콘솔을 이용해 버킷 정책을 설정할 때, 사용자에게 버킷 소유와 관련된 권한(예: 버킷 태그 얻기, 버킷 권한 나열)을 부여해야 합니다.
    버킷 정책의 크기는 20KB로 제한됩니다.
    예시: 서브 계정에 버킷의 특정 디렉터리에 대한 모든 권한을 부여합니다. 설정 정보는 다음과 같습니다.
    설정 항목
    설정값
    효과
    허용
    위탁자
    서브 계정의 UIN이며, 해당 서브 계정은 반드시 현재 루트 계정의 서브 계정이어야 합니다(예: 100000000011)
    리소스
    특정 디렉터리의 접두사(예: folder/sub-folder/*)
    작업
    모든 작업
    조건
    없음
    콘솔은 [그래픽 설정](#그래픽 설정) 및 [정책 설정](#정책 설정) 두 가지 방식의 버킷 정책 추가, 관리를 지원합니다.

    그래픽 설정

    타깃 버킷의 권한 관리로 이동하여 Policy 권한 설정 > 그래픽 설정을 선택하고 정책 추가를 클릭하여 팝업 창에서 정책을 설정합니다.

    1단계: 템플릿 선택(옵션)

    권한이 부여된 사용자와 리소스 범위의 다양한 조합을 선택함으로써 COS는 버킷 ​​정책의 빠른 구성에 도움이 되는 다양한 정책 템플릿을 제공합니다. 템플릿이 요구 사항을 충족하지 않는 경우 이 단계를 건너뛰거나 2단계: 정책 설정에서 권한 부여 작업을 추가 또는 삭제할 수 있습니다.

    2단계: 정책 설정

    1단계에서 선택한 인증된 사용자, 지정된 디렉터리 및 템플릿의 조합에 대해, COS는 해당 작업, 인증된 사용자, 리소스 등을 정책 설정에 자동으로 추가합니다. 지정된 사용자 및 지정된 디렉터리를 선택한 경우, 정책 설정 시 특정 사용자 UIN 및 디렉터리를 지정해야 합니다.
    설명:
    디렉터리 권한 부여를 위해서는 입력 리소스 경로 뒤에 /*가 와야 합니다. 예를 들어, 디렉터리 test에 권한을 부여하려면 test/*를 입력합니다.
    COS에서 제공한 권장 템플릿이 요구 사항에 맞지 않을 경우 이 단계에서 인증된 사용자, 리소스 및 작업 추가 또는 삭제 등 정책 내용을 수정할 수 있습니다. 다음 이미지와 같습니다.
    다음은 설정 항목에 관한 설명입니다.
    유효성: 정책 구문의 허용거부에 해당하는 ‘allow’ 또는 ‘deny’ 선택을 지원합니다.
    사용자: 모든 사용자(*), 루트 계정, 서브 계정 및 클라우드 서비스 등 인증된 사용자 추가 및 삭제를 지원합니다.
    리소스: 전체 버킷 또는 지정된 디렉터리 리소스 추가를 지원합니다.
    작업: 인증해야 하는 작업을 추가 또는 삭제합니다.
    조건: 사용자의 IP 액세스 제한 등 권한 부여 시 조건을 지정합니다.

    정책 구문

    그래픽 설정을 사용하는 것 외에도 버킷 정책에 익숙한 사용자는 JSON 언어를 사용하여 타깃 버킷의 권한 관리 > Policy 권한 설정 > 정책 설정에서 정책을 직접 작성할 수 있습니다.
    버킷 정책을 작성 후 API 또는 SDK를 통해 버킷 정책을 추가할 수도 있습니다. 아래 이미지와 같습니다.

    JSON 정책 예시

    다음 정책 예시는 다음과 같이 설명됩니다. 기본 계정 ID 100000000001(APPID는 1250000000) 하위 서브 계정 ID 100000000011에 속한 베이징 리전의 examplebucket-bj 버킷의 'folder/sub-folder' 디렉터리 중의 객체에 대한 모든 작업에 권한을 부여합니다.
    {
    "Statement": [
    {
    "Principal": {
    "qcs": [
    "qcs::cam::uin/100000000001:uin/100000000011"
    ]
    },
    "Effect": "Allow",
    "Action": [
    "name/cos:*"
    ],
    "Resource": [
    "qcs::cos:ap-beijing:uid/1250000000:examplebucket-bj-1250000000/folder/sub-folder/*"
    ]
    }
    ],
    "version": "2.0"
    }

    작업 방식

    COS는 콘솔, API, SDK 등을 사용한 버킷 정책 추가를 지원합니다. 콘솔은 그래픽 설정과 일반 권한 부여 템플릿을 지원하므로 정책 언어에 익숙하지 않은 사용자가 정책을 빠르게 추가할 수 있습니다.
    작업 방식
    설명
    Web 페이지, 직관적이고 편리함
    RESTful API, 직접 COS 요청
    SDK
    풍부한 SDK demo로, 다양한 개발 언어를 지원합니다.
    

    더 많은 버킷 정책 예시

    주의:
    버킷 정책을 추가할 때, 반드시 업무상 필요에 따라 최소 권한 원칙에 근거하여 권한을 부여해야 합니다. 다른 사용자에게 모든 리소스 (resource:*), 또는 작업 (action:*)에 대한 모든 권한을 부여하면 권한 범위가 너무 광범위해 데이터 보안에 리스크가 발생할 수 있습니다.
    다음은 서브넷, 위탁자 및 VPC ID를 제한하는 버킷 정책의 예시입니다.

    예시1

    서브넷 10.1.1.0/24 IP 대역 및 vpcid의 aqp5jrc1에 대한 요청을 제한합니다. 구문 예시는 다음과 같습니다.
    {
    "Statement": [
    {
    "Action": [
    "name/cos:*"
    ],
    "Condition": {
    "ip_equal": {
    "qcs:ip": [
    "10.1.1.0/24"
    ]
    },
    "string_equal": {
    "vpc:requester_vpc": [
    "vpc-aqp5jrc1"
    ]
    }
    },
    "Effect": "deny",
    "Principal": {
    "qcs": [
    "qcs::cam::anyone:anyone"
    ]
    },
    "Resource": [
    "qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"
    ]
    }
    ],
    "version": "2.0"
    }

    예시2

    vpcid의 aqp5jrc1 및 특정 위탁자와 특정 버킷에 대한 요청을 제한합니다. 구문 예시는 다음과 같습니다.
    {
    "Statement": [
    {
    "Action": [
    "name/cos:*"
    ],
    "Condition": {
    "string_equal": {
    "vpc:requester_vpc": [
    "vpc-aqp5jrc1"
    ]
    }
    },
    "Effect": "allow",
    "Principal": {
    "qcs": [
    "qcs::cam::uin/100000000001:uin/100000000002"
    ]
    },
    "Resource": [
    "qcs::cos:ap-beijing:uid/1250000000:examplebucket-1250000000/*"
    ]
    }
    ],
    "version": "2.0"
    }
    
    문의하기

    고객의 업무에 전용 서비스를 제공해드립니다.

    기술 지원

    더 많은 도움이 필요하시면, 티켓을 통해 연락 바랍니다. 티켓 서비스는 연중무휴 24시간 제공됩니다.

    연중무휴 24시간 전화 지원