Publié le :
Administration CREATION_INTERNE

Mise à jour des connexions web dans les métadonnées SAS

Attention : Ce code nécessite des droits administrateur.
Le programme se connecte au serveur de métadonnées SAS© pour modifier les objets de connexion TCP/IP. Il identifie toutes les connexions utilisant un protocole et un port spécifiés (par exemple, HTTP sur le port 7980) et les met à jour avec un nouveau protocole et un nouveau port (par exemple, HTTPS sur le port 8343). Avant d'appliquer les modifications, il effectue une sauvegarde ad-hoc des métadonnées pour des raisons de sécurité. C'est un script d'administration essentiel lors de la sécurisation d'un environnement SAS©.
Analyse des données

Type : CREATION_INTERNE


Le script n'utilise pas de données tabulaires en entrée. Il interroge et modifie dynamiquement les objets de configuration stockés dans le serveur de métadonnées SAS. Les informations sont générées et traitées en mémoire via les fonctions de métadonnées.

1 Bloc de code
Définition de macro-variables
Explication :
Ce bloc définit toutes les variables nécessaires : les informations de connexion au serveur de métadonnées, l'identifiant et le mot de passe, ainsi que les anciens et nouveaux protocoles et ports à modifier.
Copié !
1/* Define macro variables for Metadata connection information and the protocols and ports that need changing.*/
2%let metaserve=meta.demo.sas.com;
3%let metaport=8561;
4%let userid=sasadm @saspw;
5%let pass=password;
6%let oldprotocol='http';
7%let newprotocol='https';
8%let oldport='7980';
9%let newport='8343';
10/*End edit. */
2 Bloc de code
PROC METAOPERATE
Explication :
Définit les options de connexion au serveur de métadonnées SAS. Ensuite, la procédure `PROC METAOPERATE` est utilisée pour effectuer une sauvegarde des métadonnées avant toute modification, ajoutant un commentaire pour l'identification.
Copié !
1/* Define Metadata connection information. */
2options metaserver="&metaserve"
3metaport=&metaport
4metaprotocol='bridge'
5metauser="&userid"
6metapass="&pass"
7metarepository='Foundation'
8metaconnect='NONE'
9;
10 
11/* Take an ad-hoc Metadata backup. */
12 
13PROC METAOPERATE ACTION=refresh options="<BACKUP COMMENT='METAOPERATE backup'/>" noautopause;
14RUN;
3 Bloc de code
DATA STEP
Explication :
Une requête est définie pour trouver les objets de connexion TCP/IP correspondant à l'ancien protocole et port. Une étape DATA _null_ exécute cette requête avec `metadata_resolve`. Si des connexions sont trouvées, le programme boucle sur chaque résultat, récupère l'URI de l'objet avec `metadata_getnobj`, puis met à jour les attributs 'CommunicationProtocol' et 'Port' avec les nouvelles valeurs via `metadata_setattr`.
Copié !
1/* Define a search that only returns objects defined with the old protocol and port. */
2 
3%let query="omsobj:TCPIPConnection? @CommunicationProtocol=&oldprotocol and @Port=&oldport";
4 
5/* For each, change the protocol to the new one. */
6 
7DATA _null_;
8 LENGTH type id uri $ 50 ;
9 call missing (of _character_);
10 count=metadata_resolve(&query,type,id);
11 put "NOTE: Found " count "connections to update.";
12 IF count > 0 THEN DO n=1 to count;
13 rc=metadata_getnobj(&query,n,uri);
14 rc=metadata_setattr(uri,"CommunicationProtocol",&newprotocol);
15 rc=metadata_setattr(uri,"Port",&newport);
16 END;
17RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : Copyright © 2023, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. SPDX-License-Identifier: Apache-2.0


Banner
Le Conseil de l'Expert
Expert
Simon
Expert SAS et fondateur.
« La transition d'un environnement SAS vers le protocole HTTPS nécessite une mise à jour rigoureuse des objets de connexion au sein du référentiel de métadonnées (OMR). Ce script illustre une méthode d'administration avancée permettant de basculer massivement les configurations de ports et de protocoles, garantissant ainsi que tous les clients et services (comme SAS Web Infrastructure Platform) s'alignent sur les nouvelles normes de sécurité.

Recommandations et points de vigilance
La ceinture de sécurité METAOPERATE : L'utilisation de PROC METAOPERATE pour déclencher une sauvegarde ad-hoc avant toute modification est une pratique exemplaire. Contrairement à une base de données classique, les modifications via metadata_setattr sont immédiates et sans "Rollback" natif. Ce point de restauration est votre unique filet de sécurité en cas d'erreur dans la chaîne de requête.

Précision du filtrage XPath : La macro-variable &query utilise une expression XPath pour cibler précisément les objets TCPIPConnection. Il est crucial de valider que les valeurs &oldprotocol et &oldport correspondent exactement à ce qui est stocké en métadonnées (attention à la casse pour le protocole). Une erreur ici pourrait soit ignorer des connexions critiques, soit, plus grave, modifier des services non concernés.

Impact sur l'infrastructure : Bien que les métadonnées soient mises à jour instantanément, le changement n'est effectif pour les serveurs (comme le SAS Web Server ou le SAS Object Spawner) qu'après un redémarrage des services ou un rafraîchissement de leur configuration. Prévoyez toujours une fenêtre de maintenance après l'exécution de ce script. »