함수 개발을 위한 테넌시 준비

함수가 다른 Oracle Cloud Infrastructure 리소스에 액세스할 수 있도록 하려면 동적 그룹에 함수를 포함한 다음 동적 그룹에 해당 리소스에 대한 액세스 권한을 부여하는 정책을 생성해야 합니다.

함수에 대한 동적 그룹 생성

동적 그룹을 사용하면 Oracle Cloud Infrastructure 컴퓨터 인스턴스를 "주체" 작업자(사용자 그룹과 유사) 로 그룹화할 수 있습니다. 그런 다음 인스턴스가 Oracle Cloud Infrastructure 서비스에 대해 API 호출을 수행하도록 허용하는 정책을 생성할 수 있습니다.

동적 그룹을 생성할 때 그룹에 명시적으로 멤버를 추가하는 대신 일치 규칙 집합을 정의하여 그룹 멤버를 정의합니다. 예를 들어, 규칙은 특정 구획의 모든 인스턴스가 동적 그룹의 멤버가 되도록 지정할 수 있습니다. 멤버는 해당 구획에서 인스턴스가 실행 및 종료될 때 동적으로 변경될 수 있습니다.

  1. 콘솔을 열고 ID, 동적 그룹 순으로 누릅니다. 테넌시의 동적 그룹 목록이 표시됩니다.
  2. 동적 그룹 생성 을 누릅니다.
  3. 다음을 입력합니다:
    • 이름: 그룹의 고유 이름입니다. 이름은 테넌시의 모든 그룹(동적 그룹 및 사용자 그룹) 에서 고유해야 합니다. 나중에 변경할 수 없습니다.
    • 설명: 친숙한 설명입니다. 콘솔에서 이 값을 변경할 수는 없지만 API를 사용하여 변경할 수 있습니다.
  4. 대응 규칙을 입력합니다. 규칙 조건을 충족하는 리소스가 그룹의 멤버입니다.
    • 규칙 1: 구획의 모든 함수가 리소스에 액세스할 수 있도록 허용하려면 다음과 유사한 규칙을 입력합니다. 여기서 <compartment_id>은 애플리케이션 및 연관된 함수가 배포될 구획의 OCID입니다:
      ALL {resource.type = 'fnfunc', resource.compartment.id = '<compartment_id>'}
    • 필요에 따라 추가 규칙을 입력합니다. 규칙을 추가하려면 +Additional 규칙 을 누릅니다.

  5. 리소스를 생성할 수 있는 권한이 있는 경우 해당 리소스에 자유 형식 태그를 적용할 수 있는 권한도 있습니다. 정의된 태그를 적용하려면 태그 네임스페이스를 사용할 수 있는 권한이 있어야 합니다. 태그를 적용할지 잘 모르는 경우 이 옵션을 건너 뛰거나(나중에 태그를 적용할 수 있음) 관리자에게 문의하십시오.
  6. 동적 그룹 생성 을 누릅니다.

    일치 규칙 구문은 확인되지만 규칙에 사용된 OCID는 확인되지 않습니다. 입력한 OCID가 정확한지 확인하십시오.

기능에 대한 정책 생성

정책을 통해 그룹은 특정 구획의 특정 리소스 유형에 대해 특정 방식으로 작동할 수 있습니다.

정책을 쓰려는 그룹 및 구획이 존재해야 합니다.

다음 단계에서는 애플리케이션 및 연관된 함수가 배치될 구획 및 인스턴스의 루트 구획에 정책을 추가합니다.

  1. 탐색 메뉴를 엽니다. [거버넌스 및 관리] 아래에서 ID를 누른 다음 정책 을 누릅니다.
    보고 있는 구획의 정책 목록이 표시됩니다.
  2. 왼쪽 구획 목록에서 애플리케이션 및 연관된 함수를 배치할 구획을 선택합니다.
  3. 정책 생성을 누릅니다.
  4. 다음 정보를 제공합니다.
    • 이름: 정책의 고유 이름입니다. 이 이름은 테넌시의 모든 정책에서 고유해야 합니다. 이 설정은 나중에 변경할 수 없습니다.
    • 설명: 친숙한 설명입니다. 이 설정은 나중에 원하는 경우 변경할 수 있습니다.
    • 정책 버전 지정: 동사 및 리소스에 대한 이후 변경 사항으로 정책을 최신 상태로 유지하려면 정책을 최신 상태로 유지 를 선택합니다. 또는 현재 특정 날짜에 있던 정의에 따라 액세스를 제한하려면 버전 날짜 사용 을 선택하고 YYYY-MM-DD 형식으로 해당 날짜를 입력합니다.
  5. 정책 명령문을 제공하십시오. 미리 정의된 명령문을 하나 이상 추가하려면 사용자 정의(고급) 를 누릅니다.
    다음 정책 문을 추가합니다. 여기서 <group_name>은 연관된 동적 그룹의 이름이고 <compartment_name>는 애플리케이션 및 연관된 함수가 배치될 구획입니다:
    • 함수가 구획의 리소스에 액세스할 수 있도록 허용하는 다음 명령문을 추가합니다:
      Allow dynamic-group <group_name> to manage buckets in compartment <compartment_name>
      Allow dynamic-group <group_name> to manage objects in compartment <compartment_name>
      allow dynamic-group <group_name> to use autonomous-databases in compartment <compartment_name> where request.permission='AUTONOMOUS_DATABASE_CONTENT_READ'
      Allow dynamic-group <group_name> to inspect instances in compartment <compartment_name>
      Allow service FaaS to use virtual-network-family in compartment <compartment_name>
      Allow group fleetAdmins to manage functions-family in compartment <compartment_name>
    • 파일이 Oracle Cloud Infrastructure Object Storage로 업로드될 때 Oracle Cloud Infrastructure Events가 함수를 호출하도록 허용하려면 다음 명령문을 추가합니다:
      Allow dynamic-group <group_name> to inspect streams in compartment <compartment_name>
      Allow dynamic-group <group_name> to manage cloudevents-rules in compartment <compartment_name>
      Allow dynamic-group <group_name> to use stream-push in compartment <compartment_name>
      Allow dynamic-group <group_name> to use stream-pull in compartment <compartment_name>
  6. 생성 을 누릅니다.
    새로 생성된 정책이 구획에 대한 정책과 함께 나열됩니다.
  7. 왼쪽의 구획 목록에서 루트 구획(< instance-name >(루트)) 을 선택하고 위의 3단계와 4단계를 반복합니다.
  8. 정책 명령문을 제공하십시오. 미리 정의된 명령문을 하나 이상 추가하려면 사용자 정의(고급) 를 누릅니다.
    다음 정책 문을 추가합니다. 여기서 <compartment_name>는 애플리케이션 및 연관된 함수가 배치될 구획입니다:
    Allow service FaaS to manage repos in tenancy
    Allow service FaaS to use virtual-network-family in compartment <compartment_name>
  9. 생성 을 누릅니다.
    새로 생성된 정책이 루트 구획에 대한 정책과 함께 나열됩니다.