Scénario de test & Cas d'usage
Gestión de derechos de acceso y seguridad de datos.
Descubrir todas las acciones de accessControlSe crea un modelo de árbol de decisión simple y se guarda como un astore. Tanto el modelo como los datos de scoring se colocan en una caslib donde el usuario tiene acceso de lectura a los datos, pero no permiso para ejecutar el conjunto de acciones 'aStore'.
| 1 | /* 1. Crear datos de entrenamiento */ |
| 2 | DATA casuser.train_data; |
| 3 | DO i = 1 to 1000; |
| 4 | x1 = rand('UNIFORM'); |
| 5 | x2 = rand('UNIFORM'); |
| 6 | IF x1 > 0.5 and x2 > 0.5 THEN target = 1; ELSE target = 0; |
| 7 | OUTPUT; |
| 8 | END; |
| 9 | RUN; |
| 10 | |
| 11 | /* 2. Crear datos para scoring */ |
| 12 | DATA casuser.score_data; |
| 13 | DO i = 1 to 10; |
| 14 | x1 = rand('UNIFORM'); |
| 15 | x2 = rand('UNIFORM'); |
| 16 | OUTPUT; |
| 17 | END; |
| 18 | RUN; |
| 1 | PROC CAS; |
| 2 | /* Como admin: entrenar y guardar el modelo */ |
| 3 | decisionTree.dtreeTrain / |
| 4 | TABLE={caslib='casuser', name='train_data'}, |
| 5 | target='target', |
| 6 | inputs={'x1', 'x2'}, |
| 7 | savestate={name='DT_MODEL', caslib='casuser', replace=true}; |
| 8 | |
| 9 | /* Como usuario junior: intentar ejecutar aStore.score (debe fallar si la acción está restringida) */ |
| 10 | aStore.score / |
| 11 | TABLE={caslib='casuser', name='score_data'}, |
| 12 | rstore={caslib='casuser', name='DT_MODEL'}, |
| 13 | out={caslib='casuser', name='scored_output', replace=true}; |
| 14 | RUN; |
| 1 | |
| 2 | PROC CAS; |
| 3 | ACCESSCONTROL.assumeRole / adminRole='ACTION'; |
| 4 | RUN; |
| 5 |
| 1 | PROC CAS; |
| 2 | aStore.score / |
| 3 | TABLE={caslib='casuser', name='score_data'}, |
| 4 | rstore={caslib='casuser', name='DT_MODEL'}, |
| 5 | out={caslib='casuser', name='scored_output', replace=true}; |
| 6 | RUN; |
| 1 | |
| 2 | PROC CAS; |
| 3 | TABLE.dropTable / caslib='casuser' name='score_data'; |
| 4 | /* Se espera un error de autorización */ |
| 5 | RUN; |
| 6 |
El escenario valida que el rol 'ACTION' permite la ejecución de acciones restringidas sin conceder permisos de manipulación de datos no deseados. El científico de datos junior puede puntuar nuevos datos pero no puede alterar los activos de datos originales, cumpliendo con el principio de mínimo privilegio.