Oracle NoSQL Database Cloud Service 테이블에 대한 액세스 관리

정책 작성 및 Oracle NoSQL Database Cloud Service 테이블에 대한 액세스 권한을 부여하는 데 사용할 수 있는 일반적인 정책 문 확인에 대해 알아봅니다.

이 문서에는 다음 항목이 있습니다.

테넌시 간 NoSQL 테이블 액세스

이 항목에서는 테넌시가 다른 테넌시의 NoSQL 테이블에 액세스할 수 있도록 정책을 작성하는 방법에 대해 설명합니다.

정책을 처음 사용하는 경우 정책 시작을 참조하십시오.

교차 테넌시 정책

조직에서 자체 테넌시가 있는 다른 조직과 리소스를 공유할 수 있습니다. 회사의 다른 비즈니스 단위, 회사의 고객, 회사에 서비스를 제공하는 회사 등이 될 수 있습니다. 이와 같은 경우 앞에서 설명한 필수 유저 및 서비스 정책 외에도 테넌시 간 정책이 필요합니다.

리소스에 액세스하여 공유하려면 두 테넌시의 관리자가 액세스 및 공유할 수 있는 리소스를 명시적으로 명시하는 특수 정책 문을 만들어야 합니다. 이러한 특수 문장은 정의, 배서제출 단어를 사용합니다.

명세서 보증, 승인 및 정의

다음은 테넌시 간 명령문에 사용되는 특수한 동사의 개요입니다.

배서: 사용자 고유 테넌시의 그룹이 다른 테넌시에서 수행할 수 있는 일반적인 기능 집합을 나타냅니다. Endorse 문은 항상 테넌시에 속하며 테넌시의 리소스 작업을 위해 다른 테넌시로 경계를 넘은 사용자 그룹이 있습니다. 예제에서는 이 테넌시를 소스로 참조합니다.

허용: 다른 테넌시에서 그룹을 부여할 고유 테넌시의 기능 종류를 나타냅니다. Admit 문은 테넌시에 "admittance"를 부여하는 테넌시에 속합니다. Admit 문은 소스 테넌시에서 리소스 액세스가 필요하고 해당하는 Endorse 문으로 식별되는 사용자 그룹을 식별합니다. 예제에서는 이 테넌시를 대상으로 합니다.

정의: 보증 및 승인 정책 문에 대한 테넌시 OCID에 별칭을 지정합니다. 또한 Define 문이 대상 테넌시에 필요하여 Admit 문의 소스 IAM 그룹 OCID에 별칭을 지정합니다.

명령문 정의는 보증 또는 승인 명령문과 동일한 정책 엔티티에 포함되어야 합니다. 보증 및 승인 문은 함께 작동하지만 각 테넌시에 하나씩 별도의 정책에 있습니다. 액세스를 지정하는 해당 명령문이 없으면 특정 보증 또는 승인 명령문은 액세스 권한을 부여하지 않습니다. 두 테넌시의 합의가 필요합니다.

주:

정책문 외에도 영역 간 리소스를 공유하려면 영역을 구독해야 합니다.

소스 테넌시 정책 문

소스 관리자는 대상 테넌시에서 리소스를 관리할 수 있도록 허용된 소스 IAM 그룹을 보증하는 정책 문을 생성합니다.

주:

교차 테넌시 정책은 다른 정책 주체와 함께 작성할 수도 있습니다. 정책 주제에 대한 자세한 내용은 Oracle Cloud Infrastructure 설명서의 정책 구문을 참조하십시오.
다음은 테넌시의 모든 NoSQL 테이블에서 모든 작업을 수행하도록 IAM 그룹 NoSQLAdmins 그룹을 보증하는 광범위한 정책문의 예입니다.
Endorse group NoSQLAdmins to manage nosql-family in any-tenancy
테넌시 액세스 범위를 줄이는 정책을 작성하려면 대상 관리자가 대상 테넌시 OCID를 제공해야 합니다. 다음은 DestinationTenancy에서만 NoSQL 테이블을 관리하도록 IAM 그룹 NoSQLAdmins 그룹을 보증하는 정책문의 예입니다.
Define tenancy DestinationTenancy as ocid1.tenancy.oc1..<destination_tenancy_OCID>
Endorse group NoSQLAdmins to manage nosql-family in tenancy DestinationTenancy

대상 테넌시 정책 문

대상 관리자는 다음을 수행하는 정책 문을 생성합니다.
  • 테넌시의 리소스에 액세스할 수 있는 소스 테넌시 및 IAM 그룹을 정의합니다. 소스 관리자가 이 정보를 제공해야 합니다.
  • 테넌시에서 액세스를 허용할 NoSQL 테이블에 액세스하도록 정의된 소스를 허용합니다.
다음은 테넌시의 모든 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 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

예 - 그룹 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>'

예 - 그룹 관리자가 Dev 구획에서 변경하지 않고 NoSQL 테이블만 생성, 삭제 및 이동할 수 있도록 허용합니다.

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'}

예 - 그룹 개발자가 구획 개발에서 "customer" 테이블의 행을 읽고 업데이트하고 삭제할 수 있도록 허용합니다.

allow group Developer to manage nosql-rows in compartment Dev 
where target.nosql-table.name = 'customer'