La divulgation de paires AccessKey ou de jetons STS issus de comptes Alibaba Cloud ou d'utilisateurs RAM peut compromettre vos ressources cloud et votre activité. Appliquez les bonnes pratiques suivantes pour sécuriser vos identifiants et prévenir tout accès non autorisé.
Alibaba Cloud utilise deux types d'identifiants : les paires AccessKey et les jetons Security Token Service (STS). Pour plus d'informations, consultez la rubrique Identifiants.
Erreurs courantes
L'intégration en dur de paires AccessKey dans le code les expose à toute personne disposant d'un accès au dépôt. La publication de ce code sur des plateformes open source ou des services d'hébergement accroît considérablement ce risque.
L'inclusion de paires AccessKey dans du code côté client permet aux attaquants de les extraire par décompilation.
Le partage de documentation ou de supports techniques peut entraîner la divulgation de paires AccessKey.
Les exemples de code fournis dans la documentation exposent souvent des paires AccessKey.
Les réponses API peuvent révéler des paires AccessKey au-delà du périmètre de gestion prévu.
Solutions de sécurité
Évitez de transmettre ou d'intégrer en dur des identifiants lors du développement.
N'utilisez pas la paire AccessKey de votre compte Alibaba Cloud
Un compte Alibaba Cloud dispose de permissions complètes sur toutes les ressources ; par conséquent, la divulgation d'une paire AccessKey associée présente des risques critiques. N'utilisez jamais directement la paire AccessKey d'un compte Alibaba Cloud.
Évitez d'intégrer en dur les identifiants dans le code
Stockez les identifiants dans des variables d'environnement. L'exemple suivant utilise ALIBABA_CLOUD_ACCESS_KEY_ID et ALIBABA_CLOUD_ACCESS_KEY_SECRET. Pour plus d'informations, consultez la rubrique Configurer les variables d'environnement sous Linux, macOS et Windows.
Exemple de code :
public static com.aliyun.ecs20140526.Client createClient() throws Exception {
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
config.endpoint = "ecs.cn-shanghai.aliyuncs.com";
return new com.aliyun.ecs20140526.Client(config);
}
Utilisez KMS pour gérer les identifiants
Key Management Service (KMS) gère vos identifiants de manière sécurisée. Pour plus d'informations, consultez la rubrique Gestion des secrets. Secrets Manager dans KMS fait pivoter les secrets RAM selon une planification définie ou à la demande. Une fois le plug-in de secret RAM installé, votre application récupère dynamiquement la paire AccessKey actuelle. Pour plus d'informations, consultez la rubrique Gérer et utiliser les secrets RAM.
Utilisez un rôle RAM d'instance
Associez un rôle RAM d'instance à une instance Elastic Compute Service (ECS), à une instance de conteneur élastique ou à un nœud de travail Container Service for Kubernetes (ACK). Le serveur de métadonnées ECS fournit des jetons STS, ce qui élimine le besoin d'intégrer des paires AccessKey en dur. Pour plus d'informations, consultez les rubriques Rôles RAM d'instance, Utiliser un rôle RAM d'instance via les opérations API et Attribuer un rôle RAM à un pod ECI.
Utilisez la fonctionnalité RRSA
Dans ACK, un nœud de travail peut héberger des pods appartenant à plusieurs services. Tout pod peut accéder au serveur de métadonnées ECS et obtenir le jeton STS du rôle RAM du nœud de travail, ce qui entraîne des fuites de permissions. La fonctionnalité RAM Roles for Service Accounts (RRSA) offre un contrôle d'accès au niveau du pod en injectant des informations OpenID Connect (OIDC) dans les variables d'environnement. Utilisez l'outil Alibaba Cloud Credentials pour obtenir des jetons STS. Pour plus d'informations, consultez la rubrique Utiliser RRSA pour le contrôle d'accès au niveau des pods.
Utilisez l'outil Alibaba Cloud Credentials
L'outil Alibaba Cloud Credentials propose une chaîne de fournisseurs d'identifiants par défaut qui élimine le besoin d'intégrer des identifiants en dur. Pour plus d'informations, consultez la rubrique Gérer les identifiants.
Détectez les fuites d'AccessKey avec Security Center
Security Center surveille GitHub en temps réel pour détecter les paires AccessKey exposées des comptes Alibaba Cloud et des utilisateurs RAM, et génère des alertes en cas de détection. Traitez immédiatement les incidents de fuite. Pour plus d'informations, consultez la rubrique Détection des fuites de paires AccessKey.
Gérez les fuites de paires AccessKey
Fuites de paires AccessKey
-
Désactivez ou supprimez une paire AccessKey
Désactivez ou supprimez immédiatement la paire AccessKey compromise et créez-en une nouvelle. Pour plus d'informations, consultez les rubriques Désactiver la clé d'accès d'un utilisateur RAM et Supprimer la clé AccessKey d'un utilisateur RAM.
-
Interrogez les événements liés aux paires AccessKey
Utilisez la fonctionnalité d'audit des paires AccessKey d'ActionTrail pour consulter les détails des paires AccessKey, notamment les services accédés, les adresses IP et les ressources concernées. Cela vous aide à retracer l'utilisation et à identifier les fuites.
Fuites de jetons STS
Un jeton STS est valide entre 15 minutes et 12 heures. Même durant cette période, un jeton divulgué présente de sérieux risques de sécurité. Pour invalider un jeton STS compromis :
Connectez-vous à la console RAM.
-
Détachez toutes les stratégies du rôle RAM.
Pour plus d'informations, consultez la rubrique Révoquer les autorisations d'un rôle RAM.
-
Ou bien, supprimez entièrement le rôle RAM.
Pour plus d'informations, consultez la rubrique Supprimer un rôle RAM.
Cette action invalide immédiatement tous les jetons STS non expirés associés à ce rôle.
Pour continuer à utiliser le rôle par la suite, créez un nouveau rôle portant le même nom et appliquant les mêmes stratégies.
Références
Rubriques connexes :