

 **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
<a name="ack-permissions"></a>

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
<a name="_how_iam_works_with_ack"></a>

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 :

1. Vérifiez si un IAMRole sélecteur correspond à l'espace de noms de la ressource

1. Si une correspondance est trouvée, supposons que le rôle IAM

1. 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
<a name="_getting_started_simple_permission_setup"></a>

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 se trouvent 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
<a name="_production_best_practice_iam_role_selectors"></a>

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'`sts:TagSession`autorisations pour assumer `sts:AssumeRole` 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 vous souhaitez la configuration la plus simple
+ Toutes les ressources se trouvent dans le même compte que votre cluster
+ Vous avez des exigences en matière d'autorisations 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
+ Des équipes ou des espaces de noms différents 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
<a name="_basic_iam_role_selector_setup"></a>

 **É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", "sts:TagSession"]
    }
  ]
}
```

 **É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", "sts:TagSession"],
      "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 de plusieurs comptes
<a name="_multi_account_management"></a>

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", "sts:TagSession"]
    }
  ]
}
```

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", "sts:TagSession"],
      "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
```

## Balises de session
<a name="_session_tags"></a>

La fonctionnalité EKS ACK définit automatiquement les balises de session pour toutes les demandes AWS d'API. Ces balises permettent un contrôle d'accès et un audit précis en identifiant la source de chaque demande.

### Tags de session disponibles
<a name="_available_session_tags"></a>

Les balises de session suivantes sont incluses dans chaque appel AWS d'API effectué par ACK :


| Clé de tag | Description | 
| --- | --- | 
|   `eks:eks-capability-arn`   |  L'ARN de la capacité EKS à l'origine de la demande  | 
|   `eks:kubernetes-namespace`   |  L'espace de noms Kubernetes de la ressource gérée  | 
|   `eks:kubernetes-api-group`   |  Le groupe d'API Kubernetes de la ressource (par exemple,) `s3.services.k8s.aws`  | 

### Utilisation de balises de session pour le contrôle d'accès
<a name="_using_session_tags_for_access_control"></a>

Vous pouvez utiliser ces balises de session dans les conditions de politique IAM pour limiter les ressources qu'ACK peut gérer. Cela fournit une couche de sécurité supplémentaire au-delà des sélecteurs de rôles IAM basés sur des espaces de noms.

 **Exemple : Restreindre par espace de noms** 

Autorisez ACK à créer des compartiments S3 uniquement lorsque la demande provient de l'`production`espace de noms :

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:CreateBucket",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/eks:kubernetes-namespace": "production"
        }
      }
    }
  ]
}
```

 **Exemple : Restreindre en fonction de la capacité** 

Autoriser les actions uniquement à partir d'une fonctionnalité ACK spécifique :

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/eks:eks-capability-arn": "arn:aws:eks:us-west-2:111122223333:capability/my-cluster/ack/my-ack"
        }
      }
    }
  ]
}
```

**Note**  
Les balises de session sont différentes de l'ACK autogéré, qui ne définit pas ces balises par défaut. Cela permet un contrôle d'accès plus granulaire grâce à la fonctionnalité gérée.

## Modèles de sélection de rôles IAM avancés
<a name="_advanced_iam_role_selector_patterns"></a>

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](https://aws-controllers-k8s.github.io/community/docs/user-docs/irsa/) IRSA.

## Étapes suivantes
<a name="_next_steps"></a>
+  [Concepts d'ACK](ack-concepts.md)- Comprendre les concepts ACK et le cycle de vie des ressources
+  [Concepts d'ACK](ack-concepts.md)- En savoir plus sur les politiques d'adoption et de suppression des ressources
+  [Considérations relatives à la sécurité relatives aux fonctionnalités EKS](capabilities-security.md)- Comprendre les meilleures pratiques en matière de sécurité en termes de fonctionnalités