Alicloud OSS 버킷의 IP 접근 제한 점검

OSS 버킷 정책의 네트워크 제한을 용도에 맞게 구성하고 실제 요청의 소스 주소로 검증하세요.

설명

IP 조건은 OSS 접근을 승인된 네트워크로 제한하는 추가 통제입니다. acs:SourceIp 조건이 없다는 사실만으로 버킷이 공개되거나 익명 접근이 허용되지는 않습니다. 필요한 주체 권한과 다른 네트워크 통제를 함께 확인해야 합니다.

내부 저장소를 특정 경로에서만 사용해야 한다면 실제 OSS 요청의 소스 주소에 맞는 조건을 적용하세요. 인터넷 접근에서는 사설 주소가 아니라 NAT 등의 공인 출발지 주소가 사용될 수 있습니다.

잠재적 영향

  • 네트워크 제한이 필요하지만 적용되지 않으면 유출된 자격 증명이 다른 경로에서 악용될 수 있습니다.
  • 잘못된 조건이나 주소는 정상 사용자와 서비스의 접근까지 차단할 수 있습니다.

해결 방법

  • 필요한 네트워크와 실제 요청 주소를 확인하고 IpAddress 또는 NotIpAddress와 acs:SourceIp를 올바르게 조합하세요.
  • 특정 허용문에 조건을 추가하는 것과 범위 밖 요청을 명시적으로 거부하는 것은 다릅니다. 다른 허용문과 거부문도 함께 검토하세요.
  • 허용할 클라이언트, 차단할 클라이언트와 서비스 호출을 시험하고 복구 가능한 관리 경로를 확보하세요.

예시

기존 인라인 정책의 부분 예시입니다. 같은 기존 버킷을 수정할 때는 리소스 주소를 유지하세요. 203.0.113.0/24는 문서용 범위이므로 실제 승인된 소스 범위로 바꿔야 합니다.

소스 IP 조건 없는 허용

hcl
resource "alicloud_oss_bucket" "bucket_policy" {
  bucket = "bucket-170309-policy"
  acl    = "private"

  policy = <<POLICY
  {"Statement":
      [{"Action":
          ["oss:PutObject", "oss:GetObject", "oss:DeleteBucket"],
        "Effect":"Allow",
        "Principal":["*"],
        "Resource":
            ["acs:oss:*:*:bucket-170309-policy",
             "acs:oss:*:*:bucket-170309-policy/*"]}],
   "Version":"1"}
  POLICY
}

전체 주체에게 광범위한 권한을 요청하는 정책입니다. IP 조건 외에도 불필요한 주체와 작업을 제한해야 합니다.

승인된 범위 밖의 요청 거부

hcl
resource "alicloud_oss_bucket" "restricted_bucket" {
  bucket = "bucket-170309-policy"
  policy = <<POLICY
{
        "Version": "1",
        "Statement":
        [
            {
                "Effect": "Deny",
                "Action":
                [
                    "oss:RestoreObject",
                    "oss:ListObjects",
                    "oss:AbortMultipartUpload",
                    "oss:PutObjectAcl",
                    "oss:GetObjectAcl",
                    "oss:ListParts",
                    "oss:DeleteObject",
                    "oss:PutObject",
                    "oss:GetObject"
                ],
                "Principal":
                [
                    "*"
                ],
                "Resource":
                [
                    "acs:oss:*:*:bucket-170309-policy",
                    "acs:oss:*:*:bucket-170309-policy/*"
                ],
                "Condition":
                {
                    "NotIpAddress":
                    {
                        "acs:SourceIp": "203.0.113.0/24"
                    }
                }
            }
        ]
}
POLICY
}

이 거부문은 지정한 작업과 리소스에 대해 승인된 IP 범위 밖의 요청을 제한합니다. 범위 안의 요청에 권한을 부여하지는 않으며 별도의 필요한 허용이 있어야 합니다. 버킷 소유자와 서비스 호출도 영향을 받을 수 있습니다.

참조