RBAC, 팀 및 IAM 통합
IBM Cloud® Identity and Access Management(IAM)를 사용하면 안전하게 사용자를 인증하고 IBM Cloud에서 모든 클라우드 리소스에 대한 액세스를 일관되게 제어할 수 있습니다. 팀은 사용자 또는 사용자 그룹이 정의된 범위에 있는 메트릭에 액세스할 수 있도록 Monitoring 인스턴스에 격리된 작업공간을 제공합니다.
IAM은 사용자가 특정 메트릭 세트에만 액세스하고 정의된 조치 세트를 제품 내에서 수행할 수 있도록 팀과 역할의 조합을 맵핑할 수 있습니다.
팀은 사용자가 계정의 전체 인프라가 아닌 자신의 앱이 배치된 인프라와 관련된 메트릭만 볼 수 있도록 추가 보안을 제공합니다. 예를 들어, Kubernetes 클러스터에서 앱이 배치된 1 kubernestes.namespace의 메트릭만 볼 수 있는 액세스 권한을 개발자 그룹에 부여할 수 있습니다.
Monitoring 인스턴스에는 하나 이상의 팀을 정의할 수 있습니다. 팀은 사용자 또는 사용자 그룹이 정의된 범위의 메트릭에 액세스할 수 있도록 격리된 작업공간을 제공합니다.
Monitoring 인스턴스에는 다음과 같은 팀이 포함됩니다.
- 모니터 오퍼레이션
- 보안 오퍼레이션
기본적으로 사용자에게는 monitor operations 팀 또는 인스턴스 관리자가 기본 팀으로 구성한 팀에 대한 액세스 권한이 부여됩니다.
-
서비스 관리자는 여러 개의 팀을 구성하고 기본 팀을 변경할 수 있습니다.
-
각 팀에는 팀 범위에 있는 데이터를 모니터하는 데 사용할 수 있는 자체 사용자 정의 대시보드 및 경보 세트가 있습니다.
-
팀의 사용자는 팀 관리자가 정의한 범위에 포함되는 데이터에 액세스할 수 있습니다.
사용자가 팀 컨텍스트 내에서 데이터를 모니터하려면 사용자에게 IBM Cloud Monitoring 서비스에 대한 정책을 부여해야 합니다. 정책은 사용자가 해당 팀의 범위에 있는 데이터에 대해 작업할 수 있도록 사용자에 대한 팀과 서비스 권한을 지정합니다.
다음과 같은 IAM 서비스 역할을 부여할 수 있습니다.
- 작성자: 작성자 역할을 사용할 경우 사용자는 대시보드, 경보 및 알림을 통해 데이터를 모니터하고 팀 범위에 있는 대시보드, 경보 및 알림 등의 리소스를 관리할 수 있습니다.
- 독자: 독자 역할을 사용할 경우 사용자는 팀 범위에 있는 대시보드, 경보 및 알림을 통해 데이터를 모니터할 수 있습니다.
- 관리자: 관리자 역할은 관리 권한을 부여하는 인스턴스 레벨 역할입니다. 팀에 대한 정책에서 이 역할을 부여할 경우 해당 팀에 속하는 사용자에게 인스턴스에 대한 관리자 권한이 부여됩니다.
정책 및 권한 부여를 만들 수 있는 IAM 권한이 있는 경우 대상 서비스의 사용자로서 보유한 액세스 수준만 부여할 수 있습니다. 예를 들어 대상 서비스에 대한 뷰어 액세스 권한이 있는 경우 권한 부여를 위해 뷰어 역할만 할당할 수 있습니다. 관리자 등의 상위 권한을 할당하려고 하면 권한이 부여된 것처럼 보일 수 있지만 대상 서비스에 대한 가장 높은 수준의 권한, 즉 보기 권한만 할당됩니다.
다음 표는 Monitoring 서비스 작업을 수행할 수 있도록 사용자에게 부여할 수 있는 사용자 역할을 보여줍니다.
| 사용자 역할 | IAM 서비스 역할 |
|---|---|
ROLE_USER |
reader |
ROLE_ADVANCED_USER |
writer |
ROLE_ADMIN |
manager |
다음 표는 Monitoring 인스턴스의 팀 컨텍스트 내에서 작업할 수 있도록 사용자에게 부여할 수 있는 팀 역할을 보여줍니다.
| 팀 역할 | IAM 서비스 역할 | 팀 |
|---|---|---|
ROLE_TEAM_READ |
reader |
사용자 정의 팀 |
ROLE_TEAM_EDIT |
writer |
사용자 정의 팀 |
ROLE_TEAM_ADMIN |
manager |
사용자 정의 팀 |
ROLE_TEAM_MONITOR_MANAGER |
manager |
Monitor operations |
ROLE_TEAM_SECURE_MANAGER |
manager |
Secure operations |
Monitoring UI에서 더 많은 팀을 정의하여 데이터에 대한 다양한 액세스 레벨을 팀 및 사용자 세트별로 정의할 수 있습니다.
사용자에게 하나 이상의 팀에 대한 액세스 권한을 부여하려면 사용자가 액세스해야 하는 각 팀에 대한 정책을 관리자가 사용자에게 부여해야 합니다. 관리자는 팀마다 개별 정책을 사용하여 모니터링 인스턴스의 데이터에 사용할 서로 다른 서비스 액세스 및 권한 레벨을 정의할 수 있습니다.
예를 들어, 팀에서 작업해야 하는 사용자에게는 다음과 같은 정책이 필요합니다.
- 사용자가 IBM Cloud에서 모니터링 인스턴스를 볼 수 있는 플랫폼 역할 뷰어가 있는 정책
- 사용자에게 1개 팀에 대한 액세스 권한을 부여하는 정책. 서비스 역할에 따라 팀 범위에 있는 데이터에 대해 작업할 사용자의 권한이 결정됩니다.
팀 컨텍스트 내에서 IBM Cloud Monitoring 서비스에 대해 작업할 수 있도록 사용자 또는 서비스 ID 권한을 부여하려면 다음 단계를 완료하십시오.
전제조건
사용자 ID에 관리자 플랫폼 권한이 있어야 IBM Cloud Monitoring 서비스를 관리할 수 있습니다. 계정 소유자는 사용자 액세스를 관리하고 계정 리소스를 관리할 목적으로 계정에 대한 액세스 권한을 사용자에게 부여할 수 있습니다. 자세히 보기
1단계. 액세스 그룹 작성
액세스 그룹을 작성하려면 다음을 수행하십시오.
- 메뉴 표시줄에서 관리 > **액세스(IAM)**를 클릭하고 액세스 그룹을 선택하십시오.
- 작성을 클릭하십시오.
- 그룹의 이름과 선택적 설명을 입력하고 작성을 클릭하십시오.
그룹 제거 옵션을 선택하여 그룹을 삭제할 수 있습니다. 계정에서 그룹을 제거하면 그룹 및 그룹에 지정된 모든 액세스에서 모든 사용자와 서비스 ID를 제거합니다.
CLI를 사용하여 액세스 그룹을 작성하려면 ibmcloud iam access-group-create 명령을 사용할 수 있습니다.
ibmcloud iam access-group-create GROUP_NAME [-d, --description DESCRIPTION]
2단계. 옵저버빌리티 UI에서 Monitoring 인스턴스를 볼 수 있는 권한을 추가합니다
그룹을 설정한 다음 그룹에 공통 액세스 정책을 지정할 수 있습니다. 관찰 가능성 UI에서 Monitoring 인스턴스를 볼 수 있는 권한을 추가해야 합니다.
액세스 그룹에 대해 설정한 정책은 그룹 내의 모든 엔티티, 사용자 및 서비스 ID에 적용됩니다.
UI를 사용하거나 명령행을 통해 정책을 지정할 수 있습니다.
정책을 정의할 때 플랫폼 역할을 선택해야 합니다. 플랫폼 관리 역할은 인스턴스 작성 및 삭제 기능, 별명, 바인딩, 인증 정보 관리 기능, 액세스 관리 기능을 포함하여 다양한 조치를 포함합니다. 올바른 플랫폼 역할은 관리자, 편집자, 운영자, 뷰어입니다.
CLI를 통해 권한 추가
CLI를 사용하여 액세스 그룹 정책을 작성하려면 뷰어 역할로 ibmcloud iam access-group-policy-create 명령을 사용하십시오.
ibmcloud iam access-group-policy-create GROUP_NAME {-f, --file @JSON_FILE | --roles ROLE_NAME1,ROLE_NAME2... [--service-name SERVICE_NAME] [--service-instance SERVICE_INSTANCE] [--region REGION] [--resource-type RESOURCE_TYPE] [--resource RESOURCE] [--resource-group-name RESOURCE_GROUP_NAME] [--resource-group-id RESOURCE_GROUP_ID]}
예를 들어, 다음 명령을 실행하여 사용자에게 뷰어 권한을 부여할 수 있습니다.
ibmcloud iam access-group-policy-create my-access-group --roles Viewer --service-name my-monitoring-instance --service-instance 99999999-9999-9999-999999
UI를 통해 권한 추가
UI를 통해 액세스 그룹에 정책을 지정하려면 다음 단계를 완료하십시오.
-
메뉴 표시줄에서 관리 > **액세스(IAM)**를 클릭하고 액세스 그룹을 선택하십시오.
-
액세스를 지정할 그룹의 이름을 선택하십시오.
-
액세스 정책 > 액세스 권한 할당 > 리소스에 대한 액세스 권한 할당을 클릭합니다.
-
IAM 서비스를 선택하십시오.
-
지정할 액세스 권한 유형은 무엇입니까? 섹션에서 IBM Cloud Monitoring을 선택하십시오.
-
어떤 서비스에 액세스 권한을 지정하시겠습니까? 섹션에서 다음 옵션 중 하나를 선택하십시오.
모든 인스턴스를 포함하도록 정책 범위를 정의하려면 모든 서비스를 선택하십시오.
정책 범위를 세분화려면 속성 기반 서비스를 선택하십시오. 다음 옵션 중 하나를 선택하십시오.
옵션 1: 범위가 리소스 그룹으로 설정되어 있습니다. 리소스 그룹을 선택하여 1개의 리소스 그룹을 선택하고 해당 리소스 그룹과 연관된 모든 인스턴스를 포함하도록 정책 범위를 정의하십시오.
옵션 2: 범위가 리소스 그룹의 1개 인스턴스로 설정되어 있습니다. 리소스 그룹을 선택하여 리소스 그룹을 선택하십시오. 그런 다음 서비스 인스턴스를 선택하여 리소스 그룹 내의 인스턴스를 선택하십시오.
옵션 3: 범위가 1개 인스턴스로 설정되어 있습니다. 서비스 인스턴스를 선택하여 인스턴스를 선택하십시오.
Sysdig 팀 섹션에는 값을 지정하지 마십시오.
-
뷰어 플랫폼 역할을 선택하십시오.
-
지정을 클릭하십시오.
3단계. 팀에서 작업할 수 있는 권한 추가
다음으로 팀 컨텍스트 내에서 Monitoring 서비스의 데이터에 대해 작업할 수 있는 권한을 사용자에게 부여하는 정책을 추가해야 합니다.
정책을 정의할 때 서비스 역할을 선택해야 합니다. 서비스 액세스 역할은 사용자 또는 서비스가 서비스 인스턴스에 대한 조치를 수행할 수 있는지를 정의합니다. 서비스 액세스 역할은 관리자, 작성자 및 독자입니다.
CLI를 통해 권한 추가
CLI를 사용하여 액세스 그룹 정책을 작성하려면 ibmcloud iam access-group-policy-create 명령을 사용할 수 있습니다.
ibmcloud iam access-group-policy-create GROUP_NAME {-f, --file @JSON_FILE | --roles ROLE_NAME1,ROLE_NAME2... [--service-name SERVICE_NAME] [--service-instance SERVICE_INSTANCE] [--region REGION] [--resource-type RESOURCE_TYPE] [--resource RESOURCE] [--resource-group-name RESOURCE_GROUP_NAME] [--resource-group-id RESOURCE_GROUP_ID]}
올바른 역할은 Reader, Writer, Manager입니다.
JSON 파일을 사용하여 팀 정책을 작성해야 합니다.
예를 들어 다음 명령을 실행할 수 있습니다.
ibmcloud iam access-group-policy-create accessGroupName accessGroupGUID --file policy.json
여기서,
accessGroupName은 액세스 그룹 이름입니다.accessGroupGUID는 액세스 그룹의 GUID입니다.
ibmcloud iam access-groups 명령을 실행하여 계정의 이름 및 해당 GUID 목록을 가져올 수 있습니다.
다음 JSON 파일을 사용하십시오.
{
"type": "access",
"subjects": [
{
"attributes": [
{
"name": "access_group_id",
"value": "AccessGroupGuid"
}
]
}
],
"roles" : [
{
"role_id" : "crn:v1:bluemix:public:iam::::serviceRole:Reader"
}
],
"resources": [
{
"attributes": [
{
"name": "accountId",
"value": "accountGuid"
},
{
"name": "serviceName",
"value": "sysdig-monitor"
},
{
"name": "serviceInstance",
"value": "instanceGuid"
},
{
"name": "sysdigTeam",
"value": "sysdigTeamID"
}
]
}
]
}
UI를 통해 권한 추가
UI를 통해 액세스 그룹에 정책을 지정하려면 다음 단계를 완료하십시오.
-
메뉴 표시줄에서 관리 > **액세스(IAM)**를 클릭하고 액세스 그룹을 선택하십시오.
-
액세스를 지정할 그룹의 이름을 선택하십시오.
-
액세스 정책 > 액세스 권한 할당 > 리소스에 대한 액세스 권한 할당을 클릭합니다.
-
IAM 서비스를 선택하십시오.
-
지정할 액세스 권한 유형은 무엇입니까? 섹션에서 IBM Cloud Monitoring을 선택하십시오.
-
어떤 서비스에 액세스 권한을 지정하시겠습니까? 섹션에서 다음 단계를 완료하십시오.
-
정책 범위를 세분화려면 속성 기반 서비스를 선택하십시오. 다음 옵션 중 하나를 선택하십시오.
옵션 1: 범위를 리소스 그룹의 1개 인스턴스로 설정합니다. 리소스 그룹을 선택하여 리소스 그룹을 선택하십시오. 그런 다음 서비스 인스턴스를 선택하여 리소스 그룹 내의 인스턴스를 선택하십시오.
옵션 2: 범위를 1개 인스턴스로 설정합니다. 서비스 인스턴스를 선택하여 인스턴스를 선택하십시오.
-
Sysdig 팀을 선택하십시오.
-
-
서비스 역할을 선택하십시오. 서비스 역할은 사용자가 해당 팀의 리소스를 보고 관리하는 데 필요한 권한을 정의합니다.
-
서비스에 대한 관리자 권한을 부여하려면 관리자를 선택하십시오.
-
데이터 보기 권한만 부여하려면 독자를 선택하십시오.
필요한 역할에 관해 자세히 보기를 수행하십시오.
-
-
지정을 클릭하십시오.
4단계. 액세스 그룹에 사용자 또는 서비스 ID 추가
사용자 또는 서비스 ID를 기존 액세스 그룹에 추가할 수 있습니다.
액세스 그룹에 사용자 추가
다음 단계를 완료하여 사용자를 추가하십시오.
- 메뉴 표시줄에서 관리 > **액세스(IAM)**를 클릭하고 액세스 그룹을 선택하십시오.
- 액세스를 지정할 그룹의 이름을 선택하십시오.
- 사용자 탭에서 사용자 추가를 클릭하십시오.
- 목록에서 추가할 사용자를 선택하고 그룹에 추가를 클릭하십시오.
액세스 그룹에 서비스 ID 추가
다음 단계를 완료하여 서비스 ID를 추가하십시오.
- 메뉴 표시줄에서 관리 > **액세스(IAM)**를 클릭하고 액세스 그룹을 선택하십시오.
- 액세스를 지정할 그룹의 이름을 선택하십시오.
- 서비스 ID 탭을 클릭하고 서비스 ID 추가를 클릭하십시오.
- 목록에서 추가할 ID를 선택하고 그룹에 추가를 클릭하십시오.