Oracle NoSQL Database Cloud Service 테이블에 대한 액세스 관리
정책 작성 및 Oracle NoSQL Database Cloud Service 테이블에 대한 액세스 권한을 부여하는 데 사용할 수 있는 일반적인 정책문 확인에 대해 알아봅니다.
이 문서에는 다음 항목이 포함되어 있습니다.
테넌시 간 NoSQL 테이블 액세스
이 항목에서는 테넌시가 다른 테넌시의 NoSQL 테이블에 액세스할 수 있도록 정책을 작성하는 방법에 대해 설명합니다.
정책을 처음 사용하는 경우 정책 시작하기를 참조하십시오.
교차 테넌시 정책
조직에서 자체 테넌시가 있는 다른 조직과 리소스를 공유하려고 할 수 있습니다. 회사의 다른 비즈니스 단위, 회사의 고객, 회사에 서비스를 제공하는 회사 등일 수 있습니다. 이와 같은 경우 이전에 설명한 필수 사용자 및 서비스 정책 외에도 교차 테넌시 정책이 필요합니다.
리소스에 액세스하고 공유하려면 두 테넌시의 관리자가 액세스 및 공유 가능한 리소스를 명시적으로 설명하는 특수 정책 문을 생성해야 합니다. 이러한 특수 명령문은 정의, 배서 및 승인이라는 단어를 사용합니다.
명세서 보증, 승인 및 정의
다음은 교차 테넌시 문에 사용되는 특수 동사의 개요입니다.
승인: 사용자 고유 테넌시의 그룹이 다른 테넌시에서 수행할 수 있는 일반적인 기능 세트를 나타냅니다. Endorse 문은 항상 테넌시에 속하며, 사용자 그룹은 테넌시의 리소스를 사용하기 위해 경계를 다른 테넌시로 넘어갑니다. 예제에서는 이 테넌시를 소스로 참조합니다.
승인: 다른 테넌시에서 그룹을 부여할 고유 테넌시의 기능 종류를 지정합니다. Admit 문은 테넌시에 "admittance"를 부여하는 테넌시에 속합니다. Admit 문은 소스 테넌시의 리소스 액세스가 필요하고 해당하는 Endorse 문으로 식별되는 사용자 그룹을 식별합니다. 예제에서는 이 테넌시를 대상으로 참조합니다.
정의: Endorse 및 Admit 정책 문에 대해 테넌시 OCID에 별칭을 지정합니다. 또한 수신자 명령문에 대한 소스 IAM 그룹 OCID에 별칭을 지정하려면 대상 테넌시에서 Define 문이 필요합니다.
명령문 정의는 보증 또는 승인 명령문과 동일한 정책 엔티티에 포함되어야 합니다. 보증 및 승인 문은 함께 작동하지만, 각 테넌시에 하나씩 별도의 정책에 상주합니다. 액세스를 지정하는 해당 명령문이 없으면 특정 Endorse 또는 Admit 명령문은 액세스 권한을 부여하지 않습니다. 두 테넌시의 계약이 필요합니다.
주: 정책 문 외에도 영역 간에 리소스를 공유하려면 영역에 가입해야 합니다.
소스 테넌시 정책 문
소스 관리자는 대상 테넌시의 리소스를 관리할 수 있는 소스 IAM 그룹을 보증하는 정책 문을 생성합니다.
주: 교차 테넌시 정책은 다른 정책 주체와 함께 작성할 수도 있습니다. 정책 주제에 대한 자세한 내용은 Oracle Cloud Infrastructure 문서의 정책 구문을 참조하십시오.
다음은 테넌시의 모든 NoSQL 테이블에서 모든 작업을 수행하도록 IAM 그룹 NoSQLAdmins 그룹을 보증하는 광범위한 정책문의 예입니다.
Endorse group NoSQLAdmins to manage nosql-family in any-tenancy
테넌시 액세스 범위를 줄이는 정책을 작성하려면 대상 관리자가 대상 테넌시 OCID를 제공해야 합니다. 다음은 IAM 그룹 NoSQLAdmins 그룹이 DestinationTenancy에서만 NoSQL 테이블을 관리하도록 보증하는 정책 문의 예입니다.
Define tenancy DestinationTenancy as ocid1.tenancy.oc1..<destination_tenancy_OCID>
Endorse group NoSQLAdmins to manage nosql-family in tenancy DestinationTenancy
대상 테넌시 정책 문
대상 관리자는 다음과 같은 정책 문을 생성합니다.
-
테넌시의 리소스에 액세스할 수 있는 소스 테넌시 및 IAM 그룹을 정의합니다. 소스 관리자가 이 정보를 제공해야 합니다.
-
정의된 소스가 테넌시에서 액세스를 허용할 NoSQL 테이블에 액세스하도록 허용합니다.
다음은 소스 테넌시의 IAM 그룹 NoSQLAdmins가 테넌시의 모든 NoSQL 테이블에서 어떤 작업도 수행하도록 보증하는 정책 문의 예입니다.
Define tenancy SourceTenancy as ocid1.tenancy.oc1..<source_tenancy_OCID>
Define group NoSQLAdmins as ocid1.group.oc1..<group_OCID>
Admit group NoSQLAdmins of tenancy SourceTenancy to manage nosql-family in tenancy
다음은 개발 컴파트먼트만 NoSQL 테이블을 관리하기 위해 소스 테넌시의 IAM 그룹 NoSQLAdmins를 보증하는 정책 문의 예입니다.
Define tenancy SourceTenancy as ocid1.tenancy.oc1..<source_tenancy_OCID>
Define group NoSQLAdmins as ocid1.group.oc1..<group_OCID>
Admit group NoSQLAdmins of tenancy SourceTenancy to manage nosql-family in compartment Develop
다른 사용자에게 NoSQL 테이블 관리 권한 부여
Oracle NoSQL Database Cloud Service에 대한 주문을 활성화하면 기본적으로 관리자 그룹에 사용자(첫번째 사용자)가 있습니다. 관리자 그룹에 있으면 Oracle Cloud Infrastructure에서 전체 관리 권한을 제공하므로 Oracle NoSQL Database Cloud Service 테이블 등을 관리할 수 있습니다. 이 권한을 위임할 필요는 없지만, 원하는 경우 manage nosql-tables 권한을 통해 다른 사용자에게 Oracle NoSQL Database Cloud Service 테이블을 생성하고 관리할 수 있는 권한을 부여할 수 있습니다.
Oracle Cloud Infrastructure에서는 IAM 보안 정책을 사용하여 권한을 부여합니다. 먼저 그룹에 사용자를 추가한 다음 특정 컴파트먼트 또는 테넌시(테넌시의 모든 컴파트먼트)에 대해 manage nosql-tables 권한을 그룹에 부여하는 보안 정책을 생성해야 합니다. 예를 들어, 다음 중 하나와 같은 정책 문을 만들 수 있습니다.
allow group MyAdminGroup to manage nosql-tables in tenancy
allow group MyAdminGroup to manage nosql-tables in compartment MyOracleNoSQL
Oracle NoSQL Database Cloud Service용 보안 정책 문을 생성하는 방법에 대한 자세한 내용은 ID 및 접근 관리를 사용하여 사용자, 그룹 및 정책 설정을 참조하십시오.
테이블 관리를 위한 일반적인 정책 문
다음은 Oracle NoSQL Database Cloud Service 테이블에 대한 액세스 권한을 부여할 때 사용할 수 없는 일반적인 정책 문입니다.
테넌시에 대한 정책을 생성할 때 정책 상속을 통해 모든 구획에 대한 액세스 권한을 사용자에게 부여합니다. 또는 개별 Oracle NoSQL Database Cloud Service 테이블 또는 구획에 대한 액세스를 제한할 수 있습니다.
예 - 그룹 관리자가 모든 Oracle NoSQL Database Cloud Service 테이블을 완전히 관리할 수 있도록 허용
allow group Administrators to manage nosql-tables in tenancy
allow group Administrators to manage nosql-rows in tenancy
allow group Administrators to manage nosql-indexes in tenancy
예 - 그룹 관리자가 Dev 컴파트먼트의 NoSQL 테이블에 대해 작업을 수행하도록 허용하려면 패밀리 리소스 유형을 사용하십시오.
allow group Admins to manage nosql-family in compartment Dev
예 - group Analytics가 Dev 컴파트먼트의 NoSQL 테이블에 대해 읽기 전용 작업을 수행하도록 허용
allow group Analytics to read nosql-rows in compartment Dev
예 - Developer의 Joe만 컴파트먼트 Dev에서 NoSQL 테이블의 인덱스를 생성하고 삭제할 수 있도록 허용하려면
allow group Developer to manage nosql-indexes in compartment Dev
where request.user.id = '<OCID of Joe>'
예 - 그룹 관리자가 NoSQL 테이블만 생성, 삭제 및 이동하도록 허용하지만 Dev 컴파트먼트에서는 변경되지 않습니다.
allow group Admins to manage nosql-tables in compartment Dev
where any {request.permission = 'NOSQL_TABLE_CREATE',
request.permission = 'NOSQL_TABLE_DROP',
request.permission = 'NOSQL_TABLE_MOVE'}
예 - 그룹 Developer가 컴파트먼트 Dev의 "고객" 테이블 행을 읽고, 업데이트하고, 삭제할 수 있도록 허용하지만 다른 행은 삭제하지 않습니다.
allow group Developer to manage nosql-rows in compartment Dev
where target.nosql-table.name = 'customer'