InstructLab에 대한 IAM 액세스 관리
계정의 사용자에 대한 Red Hat AI InstructLab 프로젝트 액세스는 IBM Cloud® Identity and Access Management (IAM)에서 제어합니다. 계정의 Red Hat AI InstructLab 서비스에 액세스하는 모든 사용자에게 IAM 역할과 함께 액세스 정책이 지정되어야 합니다. 다음 역할, 작업 등을 검토하여 Red Hat AI InstructLab 에 대한 액세스 권한을 할당하는 가장 좋은 방법을 결정하는 데 도움이 됩니다.
계정에서 사용자에게 할당하는 액세스 정책에 따라 사용자가 선택한 서비스 또는 특정 프로젝트의 컨텍스트 내에서 수행할 수 있는 작업이 결정됩니다. 허용되는 작업은 서비스에서 수행할 수 있는 작업으로 Red Hat AI InstructLab 에서 사용자 지정 및 정의합니다. 각 조치는 사용자에게 지정할 수 있는 IAM 플랫폼 또는 서비스 역할에 맵핑됩니다.
사용하려는 리소스 그룹에 대한 뷰어 역할도 가지고 있는지 확인하세요.
IAM 액세스 정책은 다양한 수준의 액세스를 지원합니다. 몇 가지 옵션은 다음과 같습니다:
- 리더 또는 작성자에게 특정 프로젝트에 대한 액세스 권한을 부여합니다.
- 리더 또는 작성자에게 많은 프로젝트가 있을 수 있는 특정 리소스 그룹에 대한 액세스 권한을 부여합니다.
- 많은 프로젝트가 있는 리소스 그룹이 있을 수 있는 전체 계정에 대해 리더 또는 작성자에게 액세스 권한을 부여합니다.
- 리소스 그룹 및 계정 수준 내에서 뷰어에게 InstructLab 프로젝트에 대한 액세스 권한을 부여합니다.
- 리소스 그룹 및 계정 수준 내에서 InstructLab 프로젝트를 만들 수 있는 생성 액세스 권한을 부여합니다.
특정 역할 및 해당 조치가 처리하려는 유스 케이스에 맞지 않는 경우 사용자 정의 역할을 작성하고 포함할 조치를 선택할 수 있습니다.
Red Hat AI InstructLab 서비스로 작업할 때 각 역할이 허용하는 작업 유형을 간략하게 설명하는 다음 표를 검토하세요. 플랫폼 관리 역할을 통해 사용자는 서비스에 대한 사용자 액세스 권한 할당, 프로젝트 생성 또는 삭제, 프로젝트를 애플리케이션에 바인딩하는 등 플랫폼 수준에서 서비스 리소스에 대한 작업을 수행할 수 있습니다. 서비스 액세스 역할을 통해 사용자는 Red Hat AI InstructLab 에 액세스할 수 있으며 Red Hat AI InstructLab 의 API를 호출할 수 있습니다.
이 글은 플랫폼 역할이 사용자에게 허용하는 작업에 대한 높은 수준의 개요입니다. 각 역할이 할당되었을 때 완료할 수 있는 작업의 종류 또는 사용자가 수행할 것으로 예상되는 일반적인 작업에 대해 평이한 언어로 설명하세요.
IAM 역할 및 조치
| 플랫폼 역할 | 설명 |
|---|---|
| 뷰어 | 뷰어는 프로젝트를 볼 수는 있지만 수정할 수는 없습니다. |
| 운영자 | 운영자는 서비스 대시보드 보기와 같이 프로젝트를 구성하고 운영하는 데 필요한 플랫폼 작업을 수행할 수 있습니다. |
| 편집자 | 편집자는 계정 관리 및 액세스 정책 지정을 제외한 모든 플랫폼 조치를 수행할 수 있습니다. |
| 관리자 | 관리자(administrator)는 다른 사용자에게 액세스 정책을 지정하는 것을 포함하여 이 역할이 지정되는 리소스를 기반으로 모든 플랫폼 조치를 수행할 수 있습니다. |
| 서비스 구성 관리자 리더 | 통제 관리를 위해 서비스 구성을 읽을 수 있는 기능입니다. |
| 키 관리자 | 키 관리자로서 이 서비스는 새 리소스 키 생성 등 리소스 키 관리에 필요한 플랫폼 작업을 수행할 수 있습니다. |
| 서비스 역할 | 설명 |
|---|---|
| 독자 | 독자는 서비스 내 읽기 전용 조치(예:서비스 특정 리소스 보기)를 수행할 수 있습니다. |
| 작성자 | 작성자는 서비스 특정 리소스 작성 및 편집을 포함하여 독자 역할 이상의 권한을 갖습니다. |
| 관리자 | 관리자(manager)는 서비스에서 정의한 대로 권한이 있는 조치를 완료하기 위해 작성자 역할 이상의 권한을 갖습니다. 또한 서비스 특정 리소스를 작성하고 편집할 수 있습니다. |
| 동작 및 이벤트 | 설명 | 역할 |
|---|---|---|
instructlab.dashboard.view |
InstructLab 대시보드 보기. | 운영자, 관리자, 편집자 |
instructlab.taxonomy.read |
분류 체계에 대한 자세한 내용을 읽어보세요. | 독자, 작성자, 관리자 |
instructlab.taxonomy.create |
분류 체계 만들기 | 작성자, 관리자 |
instructlab.taxonomy.list |
분류법을 나열합니다. | 독자, 작성자, 관리자 |
instructlab.taxonomy.delete |
분류를 삭제합니다. | 작성자, 관리자 |
instructlab.sdgdata.read |
데이터 생성 실행에 대한 자세한 내용을 읽어보세요. | 독자, 작성자, 관리자 |
instructlab.sdgdata.list |
목록 데이터 생성 실행. | 독자, 작성자, 관리자 |
instructlab.sdgdata.create |
데이터 생성 실행을 만듭니다. | 작성자, 관리자 |
instructlab.sdgdata.delete |
데이터 생성 실행을 삭제합니다. | 작성자, 관리자 |
instructlab.sdgdata.stop |
데이터 생성 실행을 중지합니다. | 작성자, 관리자 |
instructlab.sdgdata.stop |
데이터 생성 실행을 중지합니다. | 작성자, 관리자 |
instructlab.model.read |
모델 트레이닝 실행에 대한 자세한 내용을 읽어보세요. | 독자, 작성자, 관리자 |
instructlab.model.list |
모델 트레이닝 실행을 나열합니다. | 독자, 작성자, 관리자 |
instructlab.model.create |
모델 트레이닝 실행을 만듭니다. | 작성자, 관리자 |
instructlab.model.delete |
모델 트레이닝 실행을 삭제합니다. | 작성자, 관리자 |
instructlab.model.stop |
모델 트레이닝 실행을 중지합니다. | 작성자, 관리자 |
InstuctLab 아티팩트 생성 및 업데이트 권한 부여 Object Storage
InstructLab 에 Object Storage 서비스에 대한 Writer 액세스 역할을 부여합니다. 로그인한 사용자에게도 동일한 권한이 있어야 합니다.
-
InstructLab 및 Object Storage 에 대한 권한 부여 정책을 만듭니다.
ibmcloud iam authorization-policy-create Writer --source-service-name instructlab --target-service-name cloud-object-storage사용할 Object Storage 리소스가 이미 있는 경우 해당 리소스로만 권한 부여 범위를 지정할 수 있습니다.
ibmcloud iam authorization-policy-create Writer --source-service-name instructlab --target-service-name cloud-object-storage --target-service-instance-id <cloud-object-storage-instance-id> --target-resource <cloud-object-storage-bucket> --target-resource-type bucket -
권한 부여 정책이 생성되었는지 확인합니다.
ibmcloud iam authorization-policies권한 부여가 특정 Object Storage 버킷으로 범위가 지정되지 않은 경우의 결과입니다:
Getting authorization policies under account abc1234 as user... OK ID: <id> Source service name: instructlab Source service instance: All instances Target service name: cloud-object-storage Target service instance: All instances Roles: Writer권한 부여가 특정 Object Storage 버킷으로 범위가 지정된 경우의 결과입니다:
Getting authorization policies under account abc1234 as user... OK ID: <id> Source service name: instructlab Source service instance: All instances Target service name: cloud-object-storage Target service instance: bucket Roles: Writer -
선택 사항 비공개 리포지토리를 사용하는 경우 InstructLab 에 대한 다른 서비스 권한을 만들고 Secrets Manager
ibmcloud iam authorization-policy-create Reader --source-service-name instructlab --target-service-name secrets-manager -
필요한 경우 로그인한 사용자에게
Writer권한을 부여합니다. 이전 단계의 Object Storage 서비스 인스턴스 ID를 포함합니다.ibmcloud iam user-policy-create <user> --roles Writer --service-instance <cloud-object-storage-instance-id>
리소스에 대한 사용자 액세스 권한 할당
계정에서 어떤 사용자(또는 사용자 그룹)가 InstructLab 리소스에 액세스할지 제어할 수 있습니다. 콘솔에서 액세스 권한을 할당하려면 다음 단계를 따르세요.
액세스 권한을 할당하는 방법, CLI 사용 단계 또는 InstructLab 또는 Object Storage 버킷에 대한 액세스 범위를 지정하는 다양한 방법에 대한 자세한 내용은 IBM Cloud 에서 Red Hat AI InstructLab 에 대한 IAM 액세스 관리하기를 참조하세요.
액세스 권한을 할당하는 일반적인 방법은 두 가지가 있습니다:
- 사용자별 액세스 정책.
- 콘솔의 관리 > 액세스(IAM) > 사용자 페이지에서 사용자별 액세스 정책을 관리할 수 있습니다. IAM 액세스 권한을 할당하는 단계에 대한 정보는 콘솔의 리소스 액세스 권한 관리하기를 참조하세요.
- 액세스 그룹.
- 액세스 그룹은 그룹에 대한 액세스 권한을 한 번 지정하여 액세스 관리를 간소화하는 데 사용되며, 필요한 대로 그룹에서 사용자를 추가하거나 제거하여 액세스 권한을 제어할 수 있습니다. 콘솔의 관리 > 액세스(IAM) > 액세스 그룹 페이지에서 액세스 그룹 및 해당 액세스를 관리합니다. 자세한 정보는 콘솔에서 그룹에 대한 액세스 지정을 참조하십시오.
{{../account/iam-mng-access.md#access-resources-console}}
{{../account/iam-mng-access.md#access-to-resources-console}}
{{../account/iam-mng-access.md#access-to-resource-group}}
CLI를 사용하여 InstructLab 에 액세스 권한 할당하기
액세스 지정, 제거 및 검토에 대한 단계별 지시사항은 CLI를 사용하여 리소스에 대한 액세스 지정을 참조하십시오. 다음 예는 instructlab 에 Writer 역할을 할당하는 명령을 보여줍니다:
서비스 이름에 instructlab을(를) 사용하십시오. 역할 ID를 찾으려면 ibmcloud iam roles 명령을 실행합니다. 또한 두 단어 이상의 역할 이름에는 따옴표를 사용하세요. 예: "Service Configuration Reader".
사용자에게 계정의 특정 InstructLab 프로젝트에 대한 뷰어 역할을 부여하는 명령 예시입니다.
ibmcloud iam user-policy-create name@example.com --roles Viewer --service-name instructlab --attributes "projectId=1b111111-1ef1-11f1-1111-111bae11111a"
사용자에게 계정의 특정 InstructLab 프로젝트에 대한 키 관리자 역할을 부여하는 명령 예시입니다.
ibmcloud iam user-policy-create name@email.com --roles "Key Manager" --service-name instructlab
사용자에게 계정의 모든 InstructLab 프로젝트에 대한 작성자 역할을 부여하는 명령 예제입니다.
ibmcloud iam user-policy-create USER@EXAMPLE.COM --service-name instructlab --roles Writer
계정에서 InstructLab 서비스의 모든 인스턴스에 대해 관리자 역할을 할당하는 명령 예시입니다.
ibmcloud iam user-policy-create name@example.com --roles Administrator --service-name instructlab
계정의 모든 리소스 그룹에 Viewer 역할을 할당하는 명령 예시입니다.
ibmcloud iam user-policy-create name@example.com --roles Viewer --resource-type resource-group
특정 리소스 그룹의 모든 사용자에게 뷰어 역할을 할당하는 명령의 예입니다.
ibmcloud iam user-policy-create name@example.com --roles Viewer --resource-type resource-group
리소스 그룹에 관리자 역할을 부여하는 명령의 예입니다.
ibmcloud iam service-policy-create test --roles Administrator --resource-group-name sample-resource-group
API를 사용하여 InstructLab 에 사용자 액세스 권한 할당하기
액세스 권한 지정, 제거 및 검토에 대한 단계별 지시사항은 API를 사용하여 리소스에 대한 액세스 권한 지정 또는 정책 API 문서 작성을 참조하십시오. 다음 표에 있는 역할 클라우드 리소스 이름(CRN)은 API로 액세스를 지정하는 데 사용됩니다.
서비스 이름에 instructlab 을 사용하고 역할 CRN 값 표를 참조하여 역할에 올바른 값을 사용하고 있는지 확인하세요. 다음 역할 CRN 목록을 검토하세요.
| 역할 | CRN |
|---|---|
| 독자 | crn:v1:bluemix:public:iam::::serviceRole:Reader |
| 작성자 | crn:v1:bluemix:public:iam::::serviceRole:Writer |
| 관리자 | crn:v1:bluemix:public:iam::::serviceRole:Manager |
| 뷰어 | crn:v1:bluemix:public:iam::::role:Viewer |
| 운영자 | crn:v1:bluemix:public:iam::::role:Operator |
| 편집자 | crn:v1:bluemix:public:iam::::role:Editor |
| 관리자 | crn:v1:bluemix:public:iam::::role:Administrator |
| 서비스 구성기 리더 | crn:v1:bluemix:public:iam::::role:ConfigReader |
| 키 관리자 | crn:v1:bluemix:public:resource-controller::::role:KeyManager |
다음 예제에서는 instructlab 에 Writer 역할을 할당합니다.
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{
"type": "access",
"description": "Writer role for InstructLab",
"subjects": [
{
"attributes": [
{
"name": "iam_id",
"value": "IBMid-123453user"
}
]
}'
],
"roles":[
{
"role_id": "crn:v1:bluemix:public:iam::::serviceRole:Writer"
}
],
"resources":[
{
"attributes": [
{
"name": "accountId",
"value": "$ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "instructlab"
}
]
}
]
}
{{../account/iam-mng-access.md#access-resources-api}}
{{../account/iam-mng-access.md#access-resourcegroups-api}}