

• Le AWS Systems Manager CloudWatch tableau de bord ne sera plus disponible après le 30 avril 2026. Les clients peuvent continuer à utiliser CloudWatch la console Amazon pour consulter, créer et gérer leurs CloudWatch tableaux de bord Amazon, comme ils le font aujourd'hui. Pour plus d'informations, consultez la [documentation Amazon CloudWatch Dashboard](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

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.

# Structure de déclaration et opérateurs intégrés pour les politiques d’approbation automatique et de refus d’accès
<a name="auto-approval-deny-access-policy-statement-structure"></a>

Le tableau suivant montre la structure des politiques d’approbation automatique et de refus d’accès.


| Composant | Syntaxe | 
| --- | --- | 
| effet |  `permit \| forbid`  | 
| scope |  `(principal, action, resource)`  | 
| clause de condition |  <pre>when {<br />    principal or resource has attribute name             <br />};</pre>  | 

## Composants de politique
<a name="policy-components"></a>

Une politique d’approbation automatique ou de refus d’accès contient les composants suivants :
+ **Effet** : `permit` (autoriser) ou `forbid` (refuser) l’accès.
+ **Portée** : les principaux, actions et ressources auxquels s’applique l’effet. Vous pouvez laisser le champ de portée indéfini dans Cedar en n’identifiant pas de principaux, d’actions ou de ressources spécifiques. Dans ce cas, la politique s’applique à tous les principaux, actions et ressources possibles. Pour l'accès aux just-in-time nœuds, `action` c'est toujours le cas`AWS::SSM::Action::"getTokenForInstanceAccess"`.
+ **Clause de condition** : le contexte dans lequel l’effet s’applique.

## Commentaires
<a name="auth-policies-policy-comments"></a>

Vous pouvez inclure des commentaires dans vos politiques. Les commentaires sont définis comme une ligne commençant par `//` et se terminant par un caractère de nouvelle ligne.

L’exemple suivant illustre les commentaires dans une politique.

```
// Allows users in the Engineering group from the Platform org to automatically connect to nodes tagged with Engineering and Production keys. 
permit (
    principal in AWS::IdentityStore::Group::"d4q81745-r081-7079-d789-14da1EXAMPLE",
    action == AWS::SSM::Action::"getTokenForInstanceAccess",
    resource
)
when {
    principal has organization && resource.hasTag("Engineering") && resource.hasTag("Production") && principal.organization == "Platform"
};
```

## Clauses multiples
<a name="multiple-clauses"></a>

Vous pouvez utiliser plusieurs clauses de condition dans une déclaration de politique à l’aide de l’opérateur `&&`.

```
// Allow access if node has tag where the tag key is Environment 
// & tag value is Development 

permit(principal, action == AWS::SSM::getTokenForInstanceAccess, resource)
when {
    resource.hasTag("Environment") &&
    resource.getTag("Environment") == "Development"
};
```

## Caractères réservés
<a name="reserved-characters"></a>

L’exemple suivant montre comment écrire une politique si une propriété de contexte utilise un `:` (point-virgule), qui est un caractère réservé dans le langage de politique.

```
permit (
    principal,
    action == AWS::SSM::Action::"getTokenForInstanceAccess",
    resource
)
when {
    principal has employeeNumber && principal.employeeNumber like "E-1*" && resource.hasTag("Purpose") && resource.getTag("Purpose") == "Testing"
}
```

Pour accéder à des exemples supplémentaires, consultez [Exemples de déclarations de politique](#policy-statement-examples).

## Just-in-time schéma d'accès aux nœuds
<a name="auto-approval-deny-access-policy-statement-schema"></a>

Voici le schéma Cedar pour l'accès aux just-in-time nœuds.

```
namespace AWS::EC2 {
    entity Instance tags String;
}


namespace AWS::IdentityStore {
    entity Group;
    
    entity User in [Group] {
    employeeNumber?: String,
    costCenter?: String,
    organization?: String,
    division?: String,
    };

}


namespace AWS::IAM {

    entity Role;
    
    type AuthorizationContext = {
        principalTags: PrincipalTags,
    };
    
    entity PrincipalTags tags String;
}

namespace AWS::SSM {

    entity ManagedInstance tags String;

    action "getTokenForInstanceAccess" appliesTo {
    principal: [AWS::IdentityStore::User],
    resource: [AWS::EC2::Instance, AWS::SSM::ManagedInstance],
    context: {
        "iam": AWS::IAM::AuthorizationContext
        }
    };
}
```

## Opérateurs intégrés
<a name="built-in-policy-operators"></a>

Lorsque vous créez le contexte d’une politique d’approbation automatique ou de refus d’accès utilisant différentes conditions, vous pouvez utiliser l’opérateur `&&` pour ajouter des conditions supplémentaires. Il existe également de nombreux autres opérateurs intégrés que vous pouvez utiliser pour ajouter un pouvoir d’expression supplémentaire à vos conditions de politique. Le tableau suivant contient tous les opérateurs intégrés à titre de référence.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/systems-manager/latest/userguide/auto-approval-deny-access-policy-statement-structure.html)

## Exemples de déclarations de politique
<a name="policy-statement-examples"></a>

Voici des exemples de déclaration de politique.

```
// Users assuming IAM roles with a principal tag of "Elevated" can automatically access nodes tagged with the "Environment" key when the value equals "prod"
permit(principal, action == AWS::SSM::getTokenForInstanceAccess, resource)
when {
    // Verify IAM role principal tag
    context.iam.principalTags.getTag("AccessLevel") == "Elevated" &&
    
    // Verify the node has a tag with "Environment" tag key and a tag value of "prod"
    resource.hasTag("Environment") &&
    resource.getTag("Environment") == "prod"
};
```

```
// Identity Center users in the "Contractor" division can automatically access nodes tagged with the "Environment" key when the value equals "dev"
permit(principal, action == AWS::SSM::getTokenForInstanceAccess, resource)
when {
    // Verify that the user is part of the "Contractor" division
    principal.division == "Contractor" &&
    
    // Verify the node has a tag with "Environment" tag key and a tag value of "dev"
    resource.hasTag("Environment") &&
    resource.getTag("Environment") == "dev"
};
```

```
// Identity Center users in a specified group can automatically access nodes tagged with the "Environment" key when the value equals "Production"
permit(principal in AWS::IdentityStore::Group::"d4q81745-r081-7079-d789-14da1EXAMPLE",
    action == AWS::SSM::getTokenForInstanceAccess,
    resource)
when {
    resource.hasTag("Environment") &&
    resource.getTag("Environment") == "Production"
};
```