Aidez à améliorer cette page
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configurer les autorisations ACK
ACK nécessite des autorisations IAM pour créer et gérer AWS des ressources en votre nom. Cette rubrique explique comment IAM fonctionne avec ACK et fournit des conseils sur la configuration des autorisations pour différents cas d'utilisation.
Comment IAM travaille avec ACK
ACK utilise des rôles IAM pour s'authentifier auprès de vos ressources AWS et effectuer des actions sur celles-ci. Il existe deux manières de fournir des autorisations à ACK :
Rôle de capacité : rôle IAM que vous fournissez lors de la création de la fonctionnalité ACK. Ce rôle est utilisé par défaut pour toutes les opérations ACK.
Sélecteurs de rôles IAM : rôles IAM supplémentaires pouvant être mappés à des espaces de noms ou à des ressources spécifiques. Ces rôles remplacent le rôle de capacité pour les ressources relevant de leur champ d'application.
Lorsqu'ACK doit créer ou gérer une ressource, il détermine le rôle IAM à utiliser :
-
Vérifiez si un IAMRole sélecteur correspond à l'espace de noms de la ressource
-
Si une correspondance est trouvée, supposons que le rôle IAM
-
Sinon, utilisez le rôle de capacité
Cette approche permet une gestion flexible des autorisations, qu'il s'agisse de configurations simples à rôle unique ou de configurations complexes impliquant plusieurs comptes et plusieurs équipes.
Mise en route : configuration simple des autorisations
Pour le développement, les tests ou les cas d'utilisation simples, vous pouvez ajouter toutes les autorisations de service nécessaires directement au rôle de capacité.
Cette approche fonctionne bien lorsque :
-
Vous commencez à utiliser ACK
-
Toutes les ressources sont dans le même AWS compte
-
Une seule équipe gère toutes les ressources de l'ACK
-
Vous êtes sûr que tous les utilisateurs d'ACK ont les mêmes autorisations
Bonnes pratiques de production : sélecteurs de rôles IAM
Pour les environnements de production, utilisez les sélecteurs de rôle IAM pour implémenter l'accès avec le moindre privilège et l'isolation au niveau de l'espace de noms.
Lorsque vous utilisez des sélecteurs de rôle IAM, le rôle de capacité n'a besoin que d'une sts:AssumeRole autorisation pour assumer les rôles spécifiques au service. Vous n'avez pas besoin d'ajouter d'autorisations de AWS service (comme S3 ou RDS) au rôle de capacité lui-même. Ces autorisations sont accordées aux rôles IAM individuels assumés par le rôle de capacité.
Choix entre les modèles d'autorisation :
Utilisez des autorisations directes (ajout d'autorisations de service au rôle de capacité) lorsque :
-
Vous êtes sur le point de démarrer et souhaitez la configuration la plus simple
-
Toutes les ressources se trouvent dans le même compte que votre cluster
-
Vous avez des exigences d'autorisation administratives à l'échelle du cluster
-
Toutes les équipes peuvent partager les mêmes autorisations
Utilisez les sélecteurs de rôles IAM lorsque :
-
Gestion des ressources sur plusieurs AWS comptes
-
Les différentes équipes ou espaces de noms ont besoin d'autorisations différentes
-
Vous avez besoin d'un contrôle d'accès précis par espace de noms
-
Vous souhaitez suivre les pratiques de sécurité fondées sur le principe du moindre privilège
Vous pouvez commencer par des autorisations directes et migrer vers les sélecteurs de rôle IAM ultérieurement à mesure que vos besoins augmentent.
Pourquoi utiliser les sélecteurs de rôles IAM en production :
-
Privilège minimal : chaque espace de noms ne reçoit que les autorisations dont il a besoin
-
Isolement de l'équipe : l'équipe A ne peut pas utiliser accidentellement les autorisations de l'équipe B
-
Audit simplifié : mappage clair de l'espace de noms qui utilise quel rôle
-
Support multicompte : nécessaire pour gérer les ressources de plusieurs comptes
-
Séparation des préoccupations : différents services ou environnements utilisent des rôles différents
Configuration de base du sélecteur de rôle IAM
Étape 1 : créer un rôle IAM spécifique au service
Créez un rôle IAM avec des autorisations pour des AWS services spécifiques :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:*" ], "Resource": "*" } ] }
Configurez la politique de confiance pour permettre au rôle de capacité de l'assumer :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ACKCapabilityRole" }, "Action": "sts:AssumeRole" } ] }
Étape 2 : accorder AssumeRole l'autorisation à Capability Role
Ajoutez l'autorisation au rôle de capacité pour assumer le rôle spécifique au service :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111122223333:role/ACK-S3-Role" } ] }
Étape 3 : créer un IAMRole sélecteur
Mappez le rôle IAM à un espace de noms :
apiVersion: services.k8s.aws/v1alpha1 kind: IAMRoleSelector metadata: name: s3-namespace-config spec: arn: arn:aws:iam::111122223333:role/ACK-S3-Role namespaceSelector: names: - s3-resources
Étape 4 : créer des ressources dans l'espace de noms mappé
Les ressources de l'espace de s3-resources noms utilisent automatiquement le rôle spécifié :
apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: my-bucket namespace: s3-resources spec: name: my-production-bucket
Gestion multi-comptes
Utilisez les sélecteurs de rôle IAM pour gérer les ressources de plusieurs AWS comptes.
Étape 1 : créer un rôle IAM entre comptes
Dans le compte cible (444455556666), créez un rôle qui fait confiance au rôle de capacité du compte source :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ACKCapabilityRole" }, "Action": "sts:AssumeRole" } ] }
Associez des autorisations spécifiques au service à ce rôle.
Étape 2 : accorder AssumeRole l'autorisation
Dans le compte source (111122223333), autorisez le rôle de capacité à assumer le rôle de compte cible :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::444455556666:role/ACKTargetAccountRole" } ] }
Étape 3 : créer un IAMRole sélecteur
Associez le rôle multicompte à un espace de noms :
apiVersion: services.k8s.aws/v1alpha1 kind: IAMRoleSelector metadata: name: production-account-config spec: arn: arn:aws:iam::444455556666:role/ACKTargetAccountRole namespaceSelector: names: - production
Étape 4 : Création de ressources
Les ressources de l'espace de production noms sont créées dans le compte cible :
apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: my-bucket namespace: production spec: name: my-cross-account-bucket
Modèles de sélection de rôles IAM avancés
Pour une configuration avancée, y compris les sélecteurs d'étiquettes, le mappage des rôles spécifiques aux ressources et des exemples supplémentaires, consultez la documentation ACK
Étapes suivantes
-
Concepts d'ACK- Comprendre les concepts ACK et le cycle de vie des ressources
-
Concepts d'ACK- En savoir plus sur les politiques d'adoption et de suppression des ressources
-
Considérations relatives à la sécurité relatives aux fonctionnalités EKS- Comprendre les meilleures pratiques de sécurité en termes de fonctionnalités