설정 구성
이 항목에서는 IAM 권한, 동적 그룹, OCI Object Storage 서비스 및 VM 인스턴스로 테넌시를 구성하는 방법을 다룹니다.
객체 버킷 설정
이 솔루션에 사용되는 버킷은 표준 모드로 생성된 단순 오브젝트 버킷으로, 표준, 자주 사용되지 않는 계층 및 아카이브 계층을 모두 지원합니다. 이렇게 하면 객체가 경과할 때 계층을 변경할 수 있으며, 지정된 시간 프레임이 경과할 때까지 최저 비용의 아카이브 계층으로 흐르는 계층을 유지할 수 있습니다.
이 버킷에 보존 규칙을 추가합니다. 보존 규칙은 생성된 후 객체의 변경이나 삭제를 효과적으로 방지합니다. 테스트가 완료될 때까지 규칙이 잠기지 않습니다.
또한 객체 수명 주기 규칙을 추가하여 요구사항에 따라 각 객체의 스토리지 계층을 자동으로 변경합니다. 객체가 아카이브 계층으로 이동된 후에는 더 이상 즉시 사용할 수 없게 되므로 액세스하기 전에 "회수"해야 합니다. 이 작업은 설계해야 하는 OCI 함수, 스크립트 또는 일부 외부 프로세스를 통해 수행할 수 있습니다.
마지막으로, 버킷의 OCID 및 이름이 알려지면 버킷에 액세스할 동적 그룹에 대한 좁은 권한을 설정할 수 있습니다. 이러한 정책 문은 OCI의 고급 정책 술어(예: target.bucket.name.
)를 활용할 수 있습니다.
동적 그룹 설정
테넌시가 CIS Landing Zone을 사용하여 설정된 경우 동적 그룹이 컴파트먼트 레벨에 이미 존재할 수 있습니다. 이 섹션에서는 기존 동적 그룹이 없다고 가정합니다.
동적 그룹
서로 다른 OCI 가상 머신 세트는 RCLONE 또는 OCIFS를 설치하고 오브젝트 스토리지에 액세스하는 것입니다. 따라서 VM이 생성되는 위치에 따라 특정 인스턴스 OCID 또는 구획 OCIDS를 기반으로 동적 그룹을 정의할 수 있습니다. 이 솔루션에 대해 다음 두 개의 동적 그룹이 생성되었습니다.
Name: oci-rclone-full-dg Matching Rule: ANY {instance.id = 'ocid1.xxx.yyy.zzz1', instance.id = 'ocid.xxx.yyy.zzzz2' } or instance.compartment.id = 'ocid1.compartment.yyy.zzz'
Name: oci-ocifs-readonly-dg Matching Rule: ANY {instance.id = 'ocid1.xxx.yyy.zzz3', instance.id = 'ocid.xxx.yyy.zzz4' } or instance.compartment.id = 'ocid1.compartment.yyy.zzz
인스턴스 OCID가 생성되지 않았거나 변경되지 않을 경우 위치 표시자를 사용할 수 있습니다. 위의 두번째 옵션을 사용하면 동적 그룹 업데이트 걱정 없이 참조된 컴파트먼트에 무제한 인스턴스를 생성할 수 있습니다. 솔루션에 사용된 모든 인스턴스가 동일한 컴파트먼트에 존재할 경우 읽기 전용 인스턴스에 전체 액세스 권한이 부여되지 않도록 인스턴스 OCID를 사용하여 동적 그룹을 정의해야 합니다.
권한 설정
시작할 때 구획 또는 버킷에 대한 특정 오브젝트 스토리지 권한이 없다고 가정합니다. 시작하려면 특정 정책을 생성하거나 기존 정책에 명령문을 첨부할 수 있습니다.
cislz-appdev-cmp-policy
등의 정책이 있을 수 있습니다. 처음부터 시작하는 경우 다음 예에서는 정책 템플리트를 사용하여 객체 스토리지에 대한 동적 그룹 및 사용자 그룹 권한 액세스를 정의합니다. 지금 또는 나중에 필요한 경우 조건으로 정책 문을 보강할 수 있습니다.allow dynamic-group oci-rclone-full-dg to read buckets in compartment cis-landing-top:app-cmp where ANY {target.bucket.name = 'archive-bucket-1', target.bucket.name = 'archive-bucket-2' }
allow dynamic-group oci-rclone-full-dg to manage objects in compartment cis-landing-top:app-cmp where ANY {target.bucket.name = 'archive-bucket-1', target.bucket.name = 'archive-bucket-2' }
allow dynamic-group oci-ocifs-readonly-dg to read objects in compartment cis-landing-top:app-cmp where ANY {target.bucket.name = 'archive-bucket-1', target.bucket.name = 'archive-bucket-2' }
나중에 테스트의 일부로 추가 권한을 추가하거나 제거할 수 있습니다. 허용된 모든 권한이 올바른지 확인하기 위해 RCLONE 및 OCIFS를 모두 완전히 테스트하는 것이 좋습니다.
RCLONE으로 VM 인스턴스 설정
OCI 가상 머신 생성은 이 솔루션의 범위를 벗어나지만 모든 구성 Linux VM이 작동합니다. 포트 443의 VCN 송신과 마찬가지로 서비스 게이트웨이 또는 NAT 게이트웨이를 통한 기본 연결이 필요합니다. 오브젝트 스토리지 프라이빗 끝점이 사용 중인 경우 게이트웨이 및 송신 규칙이 필요하지 않습니다.
기본적으로 VM은 OCI Object Storage에 액세스할 수 있어야 합니다. 또 다른 중요한 요구 사항은 동적 그룹에서 참조되는 컴파트먼트 내에 VM이 생성되어야 한다는 것입니다. 앞에서 설명한 바와 같이 동적 그룹 정의는 나중에 VM OCID만 포함하도록 조정할 수도 있고 동적 그룹의 컴파트먼트 기반 정의와 일치할 수도 있습니다. VM이 설정되고 액세스 가능하면 RCLONE을 설치할 수 있습니다. 일반적인 RCLONE 설명서, 특히 OCI Object Storage 섹션을 따릅니다.
동적 그룹 설정을 활용하기 위해 여기에 있는 인증 유형은 instance_principal_auth
입니다. 위 문서의 단계를 따르고 일련의 테스트를 구성합니다. 동적 그룹을 통해 부여된 권한에 따라 잘못된 rclone
명령을 사용하여 버킷을 쉽게 삭제할 수 있습니다. 위에서 설명한 대로 이 솔루션이 시작하는 권한은 동적 그룹을 "버킷 읽기" 및 "객체 관리"로 제한합니다. 따라서 버킷을 생성하거나 삭제할 수 없지만 버킷의 내용은 제거할 수 있습니다. RCLONE 문서는 내용 나열, 객체 배치 및 단일 객체 제거와 같은 몇 가지 안전한 테스트 예를 제공합니다.
OCIFS를 사용하여 VM 인스턴스 설정
이전 섹션과 마찬가지로 가상 머신 만들기가 범위에 없습니다. OCIFS는 VM 집합에 유사하게 설치됩니다.
이전에 추가된 동적 그룹 및 정책을 활용하는 인스턴스 주체 사용에 대한 자세한 내용은 OCIFS 유틸리티 설명서를 참조하십시오.
- 직접 ocifs 마운트 명령
/etc/fstab
항목- 자동 마운트 구성
archive-bucket /mnt/archive-bucket fuse.ocifs auth=instance_principal 0 0
archive-bucket -fstype=fuse,allow_other,auth=instance_principal :ocifs\#archive-bucket