Gérer les principaux de ressource
Vous pouvez gérer les principaux de ressource de cluster Big Data Service à partir de la page de détails du cluster.
Une seule configuration de principal de ressource active est autorisée par cluster.
Big Data Service 3.0.28 et ODH version 1.1.13/2.0.9 prennent en charge les principaux de ressource. Les clusters plus anciens qui suivent le chemin de mise à niveau avec au moins Big Data Service 3.0.27 (création directe de cluster ou mise à niveau) peuvent faire l'objet d'une mise à niveau pour prendre en charge les principaux de ressource. Pour utiliser des principaux de ressource, Big Data Service et ODH doivent être mis à niveau vers les versions répertoriées précédemment. Avec l'introduction de la prise en charge du principal de ressource, Big Data Service peut se connecter à différents services OCI à l'aide de l'authentification du principal de ressource et des stratégies peuvent être définies pour plusieurs niveaux (niveau de ressource, niveau de compartiment, etc.).
Pour gérer les principaux de ressource de cluster Big Data Service, reportez-vous aux sections suivantes :
- Création d'un principal de ressource
- Modification d'un principal de ressource
- Suppression d'un principal de ressource
- Régénération d'un jeton de principal de ressource
- Obtention des détails du principal de ressource
- Liste des principaux de ressource
Un nouveau jeton de session de principal de ressource est émis et distribué à tous les noeuds du cluster dans les situations suivantes :
- Remplacement d'un noeud
- Ajout d'un noeud
Prérequis
- Big Data Service 3.0.28 ou version ultérieure
- ODH 1.1.13 ou version ultérieure pour ODH 1
- ODH 2.0.9 ou version ultérieure pour ODH 2
- Droit d'accès
update bds
Pour plus d'informations sur les stratégies Big Data Service, reportez-vous à Stratégies Big Data Service.
Exemples de stratégies
Les stratégies suivantes peuvent également être créées pour un groupe spécifique.
Autoriser l'accès en lecture seule aux objets et aux buckets de Big Data Service dans la location pour un cluster
allow any-user to read buckets in tenancy where ALL{request.principal.id='<BDS Cluster OCID>'}
allow any-user to read objects in tenancy where ALL{request.principal.id='<BDS Cluster OCID>'}
Autoriser l'accès en lecture seule à des buckets spécifiques de la location pour le cluster Big Data Service
allow any-user to read buckets in tenancy where ALL{request.principal.id='<BDS Cluster OCID>',target.bucket.name='<bucket-name>'}
allow any-user to read objects in tenancy where ALL{request.principal.id='<BDS Cluster OCID>',target.bucket.name='<bucket-name>'}
Autoriser l'accès en lecture seule aux objets et aux buckets de la location pour tous les clusters Big Data Service provenant d'un compartiment spécifique
allow any-user to read buckets in tenancy where ALL{request.resource.compartment.id='<Compartment OCID of BDS Clusters>', request.principal.type='bigdataservice'}
allow any-user to read objects in tenancy where ALL{request.resource.compartment.id='<Compartment OCID of BDS Clusters>', request.principal.type='bigdataservice'}
Autoriser l'accès en lecture seule aux objets et aux buckets dans différents locataires pour le cluster Big Data Service (accès inter-locations, par exemple)
Stratégies requises dans la location source dans laquelle le cluster Big Data Service réel a été créé.
Define tenancy <Target-Tenancy-Name> as <Target-Tenancy-OCID>
Endorse any-user to read object-family in tenancy <Target-Tenancy-Name>
Endorse any-user to read buckets in tenancy <Target-Tenancy-Name>
Endorse any-user to read objects in tenancy <Target-Tenancy-Name>
Stratégies requises dans la location cible dans laquelle les ressources sont accessibles.
Define tenancy <Source-BDS-Cluster-Tenancy-Name> as <Source-BDS-Cluster-Tenancy-OCID>
Admit any-user of tenancy <Source-BDS-Cluster-Tenancy-Name> to read object-family in tenancy where request.principal.id='<BDS Cluster OCID>'
Admit any-user of tenancy <Source-BDS-Cluster-Tenancy-Name> to read buckets in tenancy where request.principal.id='<BDS Cluster OCID>'
Admit any-user of tenancy <Source-BDS-Cluster-Tenancy-Name> to read objects in tenancy where request.principal.id='<BDS Cluster OCID>'
Stratégie IAM requise pour le principal de ressource
Pour surveiller les mesures liées au principal de ressource (RPST), vous devez disposer du type d'accès requis accordé via une stratégie écrite par un administrateur. La stratégie doit autoriser l'accès au service Monitoring et aux compartiments Big Data Service spécifiques surveillés.
Si vous recevez une erreur d'autorisation refusée ou non autorisée, vérifiez :
- La stratégie d'accès inclut les droits d'accès
oci_monitoring
. - Vous travaillez dans le bon compartiment.
Référence : reportez-vous à Stratégie IAM Monitoring pour obtenir des détails sur les droits d'accès requis et sur l'accès au compartiment.
Métriques du principal de ressource
Pour plus d'informations sur les mesures de principal de ressource, reportez-vous à Mesures disponibles : oci_big_data_service.
Cas d'utilisation des mesures RPST et scénarios de surveillance combinés :
Mesure : ResourcePrincipalTokenExpiryTimeExceeding80PercentThreshold
Objectif :
Utilisé pour surveiller de manière proactive les jetons RPST qui arrivent à expiration (au-delà de 80 % de leur durée de vie) sur une base par nœud.
Utilisez cette mesure lorsque :
- Vous voulez identifier les jetons qui expirent bientôt.
- Vous devez déclencher des alertes avant l'expiration réelle du jeton pour éviter toute interruption.
- Vous souhaitez autoriser le temps de mémoire tampon pour la régénération de jeton automatique ou manuelle.
Exemple de requête:
ResourcePrincipalTokenExpiryTimeExceeding80PercentThreshold[2h]{clusterOcid = "ocid1.preprod-bigdataservice.oc1.iad.amaaaaaamn67ujqa7h57hcu6f5pvxpwl6j5u2ipl3qqdcavjlqyixtgjjiva"}.count()
Mesure : ResourcePrincipalSessionTokenStatus
Objectif :
Utilisé pour détecter les problèmes de jetons critiques, tels que l'expiration du jeton RPST ou l'absence d'un jeton par noeud.
Utilisez cette mesure lorsque :
- Vous souhaitez effectuer des vérifications de l'état en temps réel de la disponibilité des jetons.
- Vous voulez prendre des mesures immédiates si un noeud a un jeton rompu ou expiré.
- Vous voulez classer le type d'échec : 1 pour expiré, 2 pour manquant.
Exemple de requête:
ResourcePrincipalSessionTokenStatus[30m]{resourceId = "ocid1.instance.oc1.iad.anuwcljtanx7lvqc7uvyibak2qlvjwvzz4mtb6qiusn6x4zsvpx4kpfydczq"}.count()
Mesure : ResourcePrincipalTokenRefreshedInLast30Mins
Objectif :
Utilisé pour savoir si les jetons RPST ont été actualisés récemment, évalués au niveau du cluster. Cela doit être vrai au cas où ResourcePrincipalSessionTokenStatus
donnerait expiré ou manquant pour un noeud.
Utilisez cette mesure lorsque :
-
Vous voulez vous assurer que les travaux de renouvellement de jeton périodique sont en cours d'exécution.
-
Vous souhaitez un signal d'activité au niveau du cluster indiquant que la gestion des jetons fonctionne correctement.
-
Vous voulez détecter les jetons obsolètes sur tous les noeuds si cette mesure a la valeur False.
Exemple de requête:
ResourcePrincipalTokenRefreshedInLast30Mins[30m]{clusterOcid = "ocid1.preprod-bigdataservice.oc1.iad.amaaaaaamn67ujqac7xojchf2vjmbeudlixrqmjvjct7oioj34otatnibfka"}.max()
Surveillance proactive + Remédiation immédiate
Objectif : détecte les jetons arrivant à expiration et s'assure qu'aucun n'est manquant ou n'a expiré.
Utilisez les mesures suivantes ensemble :
ResourcePrincipalTokenExpiryTimeExceeding80PercentThreshold
ResourcePrincipalSessionTokenStatus
Exemple de requête (agrégez les requêtes ci-dessous) :
Requête 1 :
ResourcePrincipalTokenExpiryTimeExceeding80PercentThreshold[12h]{clusterOcid = "ocid1.preprod-bigdataservice.oc1.iad.amaaaaaamn67ujqalm2xprcarkhihwcnih3lkinktmmjmqqrutqzkukpswiq"}.grouping().count()
Requête 2 :
ResourcePrincipalSessionTokenStatus[12h]{clusterOcid = "ocid1.preprod-bigdataservice.oc1.iad.amaaaaaamn67ujqalm2xprcarkhihwcnih3lkinktmmjmqqrutqzkukpswiq"}.count()
Vérification de l'état avec validation de l'actualisation
Objectif : vérifiez que tous les jetons sont actualisés régulièrement et qu'il n'y a aucun jeton expiré/manquant.
Utilisez les mesures suivantes ensemble :
ResourcePrincipalTokenRefreshedInLast30Mins
ResourcePrincipalSessionTokenStatus
Exemple de requête (agrégez les requêtes ci-dessous) :
Requête 1 :
ResourcePrincipalTokenRefreshedInLast30Mins[30m]{clusterOcid = "ocid1.preprod-bigdataservice.oc1.iad.amaaaaaamn67ujqac7xojchf2vjmbeudlixrqmjvjct7oioj34otatnibfka"}.max()
Requête 2 :
ResourcePrincipalSessionTokenStatus[12h]{clusterOcid = "ocid1.preprod-bigdataservice.oc1.iad.amaaaaaamn67ujqalm2xprcarkhihwcnih3lkinktmmjmqqrutqzkukpswiq"}.count()
Vérification de la préparation du cluster
Objectif : assurez-vous que tous les noeuds sont prêts (jetons actifs, récemment actualisés, pas d'expiration à venir).
Utilisez les trois mesures ensemble :
ResourcePrincipalTokenExpiryTimeExceeding80PercentThreshold
ResourcePrincipalSessionTokenStatus
ResourcePrincipalTokenRefreshedInLast30Mins
Exemple de requête (agrégez les requêtes ci-dessous) :
Requête 1 :
ResourcePrincipalTokenExpiryTimeExceeding80PercentThreshold[12h]{clusterOcid = "ocid1.preprod-bigdataservice.oc1.iad.amaaaaaamn67ujqalm2xprcarkhihwcnih3lkinktmmjmqqrutqzkukpswiq"}.grouping().count()
Requête 2 :
ResourcePrincipalSessionTokenStatus[12h]{clusterOcid = "ocid1.preprod-bigdataservice.oc1.iad.amaaaaaamn67ujqalm2xprcarkhihwcnih3lkinktmmjmqqrutqzkukpswiq"}.count()
Requête 3 :
ResourcePrincipalTokenRefreshedInLast30Mins[30m]{clusterOcid = "ocid1.preprod-bigdataservice.oc1.iad.amaaaaaamn67ujqalm2xprcarkhihwcnih3lkinktmmjmqqrutqzkukpswiq"}.max()
Attributs pris en charge
Les attributs suivants sont pris en charge par les principaux de ressource Big Data Service. Il peut être utilisé à la fois au niveau de la stratégie et au niveau du groupe dynamique. Lors de l'utilisation des attributs de principal de ressource au niveau du groupe dynamique, veillez à régénérer le jeton d'accès de principal de ressource pour qu'il soit effectif.
request.principal.id
: ID de principal de ressource. La valeur est identique à l'ID Big Data Service et est utilisée pour isoler des ressources spécifiques.request.resource.compartment.id
: ID de compartiment de ressource Big Data Service, utilisé pour l'isolement au niveau du compartiment.request.resource.tenancy.id
: ID de location de la ressource Big Data Service et est utilisé pour l'isolement au niveau de la location.request.principal.type
: type de principal de ressource Big Data Service. Toutes les valeurs de principal de ressource propres à Big Data Service sont'bigdataservice'
.