

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.

# Exemples de politiques basées sur l'identité pour Amazon QLDB
<a name="security_iam_id-based-policy-examples"></a>

Par défaut, les utilisateurs et les rôles ne sont pas autorisés à créer ou à modifier des ressources QLDB. Ils ne peuvent pas non plus effectuer de tâches à l'aide de l'API AWS Management Console, AWS Command Line Interface (AWS CLI) ou de AWS l'API. Pour octroyer aux utilisateurs des autorisations d’effectuer des actions sur les ressources dont ils ont besoin, un administrateur IAM peut créer des politiques IAM. L’administrateur peut ensuite ajouter les politiques IAM aux rôles et les utilisateurs peuvent assumer les rôles.

Pour apprendre à créer une politique basée sur l’identité IAM à l’aide de ces exemples de documents de politique JSON, consultez [Création de politiques IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) dans le *Guide de l’utilisateur IAM*.

*Pour plus de détails sur les actions et les types de ressources définis par QLDB, y compris le format du pour chacun des ARNs types de ressources, [consultez la section Actions, ressources et clés de condition pour Amazon QLDB](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonqldb.html) dans le Service Authorization Reference.*

**Contents**
+ [

## Bonnes pratiques en matière de politiques
](#security_iam_service-with-iam-policy-best-practices)
+ [

## Utilisation de la console QLDB
](#security_iam_id-based-policy-examples-console)
  + [

### Autorisations d'historique des requêtes
](#id-based-policy-examples-console-dbqms)
  + [

### Autorisations d'accès complet à la console sans historique des requêtes
](#id-based-policy-examples-console-no-dbqms)
+ [

## Autorisation accordée aux utilisateurs pour afficher leurs propres autorisations
](#security_iam_id-based-policy-examples-view-own-permissions)
+ [

## Transactions de données en cours
](#security_iam_id-based-policy-examples-data-transactions)
  + [

### Autorisations standard pour les actions PartiQL et les ressources des tables
](#security_iam_id-based-policy-examples-standard-mode)
    + [

#### Accès complet à toutes les actions
](#security_iam_id-based-policy-examples-full-access)
    + [

#### Accès complet à toutes les actions en fonction des balises du tableau
](#security_iam_id-based-policy-examples-full-tags)
    + [

#### Accès en lecture/écriture
](#security_iam_id-based-policy-examples-read-write)
    + [

#### Accès en lecture seule
](#security_iam_id-based-policy-examples-read-only)
    + [

#### Accès en lecture seule à une table spécifique
](#security_iam_id-based-policy-examples-table-specific)
    + [

#### Autoriser l'accès pour créer des tables
](#security_iam_id-based-policy-examples-create-table)
    + [

#### Autoriser l'accès pour créer des tables en fonction des balises de demande
](#security_iam_id-based-policy-examples-table-tags)
+ [

## Exportation d'un journal vers un compartiment Amazon S3
](#security_iam_id-based-policy-examples-export-to-s3-bucket)
+ [

## Diffusion d'un journal sur Kinesis Data Streams
](#security_iam_id-based-policy-examples-stream-to-kinesis)
+ [

## Mise à jour des registres QLDB en fonction des balises
](#security_iam_id-based-policy-examples-update-ledger-tags)

**Important**  
Avis de fin de support : les clients existants pourront utiliser Amazon QLDB jusqu'à la fin du support le 31 juillet 2025. Pour plus de détails, consultez [Migrer un registre Amazon QLDB vers Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/).

## Bonnes pratiques en matière de politiques
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Les politiques basées sur l'identité déterminent si quelqu'un peut créer, accéder ou supprimer des ressources QLDB dans votre compte. Ces actions peuvent entraîner des frais pour votre Compte AWS. Lorsque vous créez ou modifiez des politiques basées sur l’identité, suivez ces instructions et recommandations :
+ **Commencez AWS par les politiques gérées et passez aux autorisations du moindre privilège : pour commencer à accorder des autorisations** à vos utilisateurs et à vos charges de travail, utilisez les *politiques AWS gérées* qui accordent des autorisations pour de nombreux cas d'utilisation courants. Ils sont disponibles dans votre Compte AWS. Nous vous recommandons de réduire davantage les autorisations en définissant des politiques gérées par les AWS clients spécifiques à vos cas d'utilisation. Pour plus d’informations, consultez [politiques gérées par AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) ou [politiques gérées par AWS pour les activités professionnelles](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) dans le *Guide de l’utilisateur IAM*.
+ **Accordez les autorisations de moindre privilège** : lorsque vous définissez des autorisations avec des politiques IAM, accordez uniquement les autorisations nécessaires à l’exécution d’une seule tâche. Pour ce faire, vous définissez les actions qui peuvent être entreprises sur des ressources spécifiques dans des conditions spécifiques, également appelées *autorisations de moindre privilège*. Pour plus d’informations sur l’utilisation d’IAM pour appliquer des autorisations, consultez [politiques et autorisations dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) dans le *Guide de l’utilisateur IAM*.
+ **Utilisez des conditions dans les politiques IAM pour restreindre davantage l’accès** : vous pouvez ajouter une condition à vos politiques afin de limiter l’accès aux actions et aux ressources. Par exemple, vous pouvez écrire une condition de politique pour spécifier que toutes les demandes doivent être envoyées via SSL. Vous pouvez également utiliser des conditions pour accorder l'accès aux actions de service si elles sont utilisées par le biais d'un service spécifique Service AWS, tel que CloudFormation. Pour plus d’informations, consultez [Conditions pour éléments de politique JSON IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dans le *Guide de l’utilisateur IAM*.
+ **Utilisez l’Analyseur d’accès IAM pour valider vos politiques IAM afin de garantir des autorisations sécurisées et fonctionnelles** : l’Analyseur d’accès IAM valide les politiques nouvelles et existantes de manière à ce que les politiques IAM respectent le langage de politique IAM (JSON) et les bonnes pratiques IAM. IAM Access Analyzer fournit plus de 100 vérifications de politiques et des recommandations exploitables pour vous aider à créer des politiques sécurisées et fonctionnelles. Pour plus d’informations, consultez [Validation de politiques avec IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) dans le *Guide de l’utilisateur IAM*.
+ **Exiger l'authentification multifactorielle (MFA**) : si vous avez un scénario qui nécessite des utilisateurs IAM ou un utilisateur root, activez l'authentification MFA pour une sécurité accrue. Compte AWS Pour exiger la MFA lorsque des opérations d’API sont appelées, ajoutez des conditions MFA à vos politiques. Pour plus d’informations, consultez [Sécurisation de l’accès aux API avec MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) dans le *Guide de l’utilisateur IAM*.

Pour plus d’informations sur les bonnes pratiques dans IAM, consultez [Bonnes pratiques de sécurité dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dans le *Guide de l’utilisateur IAM*.

## Utilisation de la console QLDB
<a name="security_iam_id-based-policy-examples-console"></a>

Pour accéder à la console Amazon QLDB, vous devez disposer d'un ensemble minimal d'autorisations. Ces autorisations doivent vous permettre de répertorier et d'afficher les détails relatifs aux ressources QLDB de votre. Compte AWS Si vous créez une politique basée sur l’identité qui est plus restrictive que l’ensemble minimum d’autorisations requis, la console ne fonctionnera pas comme prévu pour les entités (utilisateurs ou rôles) tributaires de cette politique.

Il n'est pas nécessaire d'accorder des autorisations de console minimales aux utilisateurs qui appellent uniquement l'API AWS CLI ou l' AWS API. Autorisez plutôt l’accès à uniquement aux actions qui correspondent à l’opération d’API qu’ils tentent d’effectuer.

Pour garantir aux utilisateurs et aux rôles un accès complet à la console QLDB et à toutes ses fonctionnalités, associez la politique gérée AWS suivante aux entités. Pour plus d'informations[AWS politiques gérées pour Amazon QLDB](security-iam-awsmanpol.md), consultez la section « [Ajouter des autorisations à un utilisateur](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) » dans le *guide de l'utilisateur IAM*.

```
AmazonQLDBConsoleFullAccess
```

### Autorisations d'historique des requêtes
<a name="id-based-policy-examples-console-dbqms"></a>

Outre les autorisations QLDB, certaines fonctionnalités de console nécessitent des autorisations pour le service de *métadonnées de requête de base de données* (préfixe de service :). `dbqms` Il s'agit d'un service interne uniquement qui gère vos requêtes récentes et enregistrées dans l'éditeur de requêtes de console pour QLDB et autres. Services AWS Pour une liste complète des actions de l'API DBQMS, voir [Service de métadonnées de requête de base de données](https://docs.aws.amazon.com/service-authorization/latest/reference/list_databasequerymetadataservice.html) dans la référence *d'autorisation de service*.

Pour autoriser les autorisations relatives à l'historique des requêtes, vous pouvez utiliser la politique AWS gérée [Amazon QLDBConsole FullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonQLDBConsoleFullAccess). Cette politique utilise un caractère générique (`dbqms:*`) pour autoriser toutes les actions DBQMS pour toutes les ressources.

Vous pouvez également créer une politique IAM personnalisée et inclure les actions DBQMS suivantes. L'éditeur de requêtes partiQL de la console QLDB nécessite des autorisations pour utiliser ces actions dans le cadre des fonctionnalités d'historique des requêtes.

```
dbqms:CreateFavoriteQuery
dbqms:CreateQueryHistory
dbqms:DeleteFavoriteQueries
dbqms:DeleteQueryHistory
dbqms:DescribeFavoriteQueries
dbqms:DescribeQueryHistory
dbqms:UpdateFavoriteQuery
```

### Autorisations d'accès complet à la console sans historique des requêtes
<a name="id-based-policy-examples-console-no-dbqms"></a>

[Pour permettre un accès complet à la *console* QLDB sans aucune autorisation d'historique des requêtes, vous pouvez créer une politique IAM personnalisée qui exclut toutes les actions DBQMS.](https://docs.aws.amazon.com/service-authorization/latest/reference/list_databasequerymetadataservice.html) Par exemple, le document de politique suivant autorise les mêmes autorisations que celles accordées par la politique AWS gérée [Amazon QLDBConsole FullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonQLDBConsoleFullAccess), à l'*exception* des actions qui commencent par le préfixe `dbqms` de service.

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "qldb:CreateLedger",
        "qldb:UpdateLedger",
        "qldb:UpdateLedgerPermissionsMode",
        "qldb:DeleteLedger",
        "qldb:ListLedgers",
        "qldb:DescribeLedger",
        "qldb:ExportJournalToS3",
        "qldb:ListJournalS3Exports",
        "qldb:ListJournalS3ExportsForLedger",
        "qldb:DescribeJournalS3Export",
        "qldb:CancelJournalKinesisStream",
        "qldb:DescribeJournalKinesisStream",
        "qldb:ListJournalKinesisStreamsForLedger",
        "qldb:StreamJournalToKinesis",
        "qldb:GetBlock",
        "qldb:GetDigest",
        "qldb:GetRevision",
        "qldb:TagResource",
        "qldb:UntagResource",
        "qldb:ListTagsForResource",
        "qldb:SendCommand",
        "qldb:ExecuteStatement",
        "qldb:ShowCatalog",
        "qldb:InsertSampleData",
        "qldb:PartiQLCreateIndex",
        "qldb:PartiQLDropIndex",
        "qldb:PartiQLCreateTable",
        "qldb:PartiQLDropTable",
        "qldb:PartiQLUndropTable",
        "qldb:PartiQLDelete",
        "qldb:PartiQLInsert",
        "qldb:PartiQLUpdate",
        "qldb:PartiQLSelect",
        "qldb:PartiQLHistoryFunction"
      ],
      "Effect": "Allow",
      "Resource": "*"
    },
    {
      "Action": [
        "kinesis:ListStreams",
        "kinesis:DescribeStream"
      ],
      "Effect": "Allow",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": "qldb.amazonaws.com"
        }
      }
    }
  ]
}
```

## Autorisation accordée aux utilisateurs pour afficher leurs propres autorisations
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Cet exemple montre comment créer une politique qui permet aux utilisateurs IAM d’afficher les politiques en ligne et gérées attachées à leur identité d’utilisateur. Cette politique inclut les autorisations permettant d'effectuer cette action sur la console ou par programmation à l'aide de l'API AWS CLI or AWS .

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## Transactions de données en cours
<a name="security_iam_id-based-policy-examples-data-transactions"></a>

Pour interagir avec l'API de données transactionnelles QLDB (*session QLDB) en exécutant des instructions [partiQL](ql-reference.md)* sur un registre, vous devez autoriser l'action de l'API. `SendCommand` Le document JSON suivant est un exemple de politique qui autorise uniquement l'action de l'`SendCommand`API sur le registre`myExampleLedger`.

Pour utiliser cette politique, remplacez *us-east-1**123456789012*, et *myExampleLedger* dans l'exemple par vos propres informations.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "QLDBSendCommandPermission",
            "Effect": "Allow",
            "Action": "qldb:SendCommand",
            "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger"
        }
    ]
}
```

Si le mode `ALLOW_ALL` autorisations est `myExampleLedger` utilisé, cette politique accorde l'autorisation d'exécuter toutes les commandes partiQL sur n'importe quelle table du registre.

Vous pouvez également utiliser une politique AWS gérée pour accorder un accès complet à toutes les ressources QLDB. Pour de plus amples informations, veuillez consulter [AWS politiques gérées pour Amazon QLDB](security-iam-awsmanpol.md).

### Autorisations standard pour les actions PartiQL et les ressources des tables
<a name="security_iam_id-based-policy-examples-standard-mode"></a>

Pour les registres en mode `STANDARD` autorisations, vous pouvez vous référer aux documents de politique IAM suivants comme exemples d'octroi des autorisations partiQL appropriées. Pour obtenir la liste des autorisations requises pour chaque commande partiQL, consultez le. [Référence des autorisations partiQL](getting-started-standard-mode.md#security_iam_partiql-reference)

**Topics**
+ [

#### Accès complet à toutes les actions
](#security_iam_id-based-policy-examples-full-access)
+ [

#### Accès complet à toutes les actions en fonction des balises du tableau
](#security_iam_id-based-policy-examples-full-tags)
+ [

#### Accès en lecture/écriture
](#security_iam_id-based-policy-examples-read-write)
+ [

#### Accès en lecture seule
](#security_iam_id-based-policy-examples-read-only)
+ [

#### Accès en lecture seule à une table spécifique
](#security_iam_id-based-policy-examples-table-specific)
+ [

#### Autoriser l'accès pour créer des tables
](#security_iam_id-based-policy-examples-create-table)
+ [

#### Autoriser l'accès pour créer des tables en fonction des balises de demande
](#security_iam_id-based-policy-examples-table-tags)

#### Accès complet à toutes les actions
<a name="security_iam_id-based-policy-examples-full-access"></a>

Le document de politique JSON suivant accorde un accès complet pour utiliser *toutes les* commandes partiQL sur *toutes les* tables de. `myExampleLedger` Cette politique produit le même effet que l'utilisation du mode `ALLOW_ALL` autorisations pour le registre.

Pour utiliser cette politique, remplacez *us-east-1**123456789012*, et *myExampleLedger* dans l'exemple par vos propres informations.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "QLDBSendCommandPermission",
            "Effect": "Allow",
            "Action": "qldb:SendCommand",
            "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger"
        },
        {
            "Sid": "QLDBPartiQLFullPermissions",
            "Effect": "Allow",
            "Action": [
                "qldb:PartiQLCreateIndex",
                "qldb:PartiQLDropIndex",
                "qldb:PartiQLCreateTable",
                "qldb:PartiQLDropTable",
                "qldb:PartiQLUndropTable",
                "qldb:PartiQLDelete",
                "qldb:PartiQLInsert",
                "qldb:PartiQLUpdate",
                "qldb:PartiQLRedact",
                "qldb:PartiQLSelect",
                "qldb:PartiQLHistoryFunction"
            ],
            "Resource": [
                "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*",
                "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables"
            ]
        }
    ]
}
```

#### Accès complet à toutes les actions en fonction des balises du tableau
<a name="security_iam_id-based-policy-examples-full-tags"></a>

Le document de politique JSON suivant utilise une condition basée sur les balises de ressources de table pour accorder un accès complet à l'utilisation de *toutes les* commandes partiQL sur *toutes les* tables de. `myExampleLedger` Les autorisations ne sont accordées que si la balise de table `environment` possède la valeur`development`.

**Avertissement**  
Il s'agit d'un exemple d'utilisation d'un caractère générique (\$1) pour autoriser toutes les actions partiQL, y compris l'administration read/write et les opérations sur toutes les tables d'un registre QLDB. Il est préférable de spécifier explicitement chaque action à accorder, et uniquement ce dont cet utilisateur, ce rôle ou ce groupe a besoin.

Pour utiliser cette politique, remplacez *us-east-1**123456789012*, et *myExampleLedger* dans l'exemple par vos propres informations.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "QLDBSendCommandPermission",
            "Effect": "Allow",
            "Action": "qldb:SendCommand",
            "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger"
        },
        {
            "Sid": "QLDBPartiQLFullPermissionsBasedOnTags",
            "Effect": "Allow",
            "Action": [
                "qldb:PartiQL*"
            ],
            "Resource": [
                "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*",
                "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables"
            ],
            "Condition": {
                "StringEquals": { "aws:ResourceTag/environment": "development" }
            }
        }
    ]
}
```

#### Accès en lecture/écriture
<a name="security_iam_id-based-policy-examples-read-write"></a>

Le document de politique JSON suivant autorise la sélection, l'insertion, la mise à jour et la suppression de données sur toutes les tables de`myExampleLedger`. Cette politique n'accorde pas l'autorisation de supprimer des données ou de modifier le schéma, par exemple pour créer et supprimer des tables et des index.

**Note**  
Une `UPDATE` instruction nécessite des autorisations pour les `qldb:PartiQLSelect` actions `qldb:PartiQLUpdate` et sur la table en cours de modification. Lorsque vous exécutez une `UPDATE` instruction, celle-ci exécute une opération de lecture en plus de l'opération de mise à jour. Le fait d'exiger les deux actions garantit que seuls les utilisateurs autorisés à lire le contenu d'une table obtiennent `UPDATE` des autorisations.  
De même, une `DELETE` instruction nécessite des autorisations pour les `qldb:PartiQLSelect` actions `qldb:PartiQLDelete` et.

Pour utiliser cette politique, remplacez *us-east-1**123456789012*, et *myExampleLedger* dans l'exemple par vos propres informations.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "QLDBSendCommandPermission",
            "Effect": "Allow",
            "Action": "qldb:SendCommand",
            "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger"
        },
        {
            "Sid": "QLDBPartiQLReadWritePermissions",
            "Effect": "Allow",
            "Action": [
                "qldb:PartiQLDelete",
                "qldb:PartiQLInsert",
                "qldb:PartiQLUpdate",
                "qldb:PartiQLSelect",
                "qldb:PartiQLHistoryFunction"
            ],
            "Resource": [
                "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*",
                "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables"
            ]
        }
    ]
}
```

#### Accès en lecture seule
<a name="security_iam_id-based-policy-examples-read-only"></a>

Le document de politique JSON suivant accorde des autorisations de lecture seule sur toutes les tables de. `myExampleLedger` Pour utiliser cette politique, remplacez *us-east-1**123456789012*, et *myExampleLedger* dans l'exemple par vos propres informations.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "QLDBSendCommandPermission",
            "Effect": "Allow",
            "Action": "qldb:SendCommand",
            "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger"
        },
        {
            "Sid": "QLDBPartiQLReadOnlyPermissions",
            "Effect": "Allow",
            "Action": [
                "qldb:PartiQLSelect",
                "qldb:PartiQLHistoryFunction"
            ],
            "Resource": [
                "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*",
                "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables"
            ]
        }
    ]
}
```

#### Accès en lecture seule à une table spécifique
<a name="security_iam_id-based-policy-examples-table-specific"></a>

Le document de politique JSON suivant accorde des autorisations de lecture seule sur une table spécifique dans. `myExampleLedger` Dans cet exemple, l'ID de table est`Au1EiThbt8s0z9wM26REZN`.

Pour utiliser cette politique, remplacez*us-east-1*, *123456789012**myExampleLedger*, et *Au1EiThbt8s0z9wM26REZN* dans l'exemple par vos propres informations.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "QLDBSendCommandPermission",
            "Effect": "Allow",
            "Action": "qldb:SendCommand",
            "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger"
        },
        {
            "Sid": "QLDBPartiQLReadOnlyPermissionsOnTable",
            "Effect": "Allow",
            "Action": [
                "qldb:PartiQLSelect",
                "qldb:PartiQLHistoryFunction"
            ],
            "Resource": [
                "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/Au1EiThbt8s0z9wM26REZN"
            ]
        }
    ]
}
```

#### Autoriser l'accès pour créer des tables
<a name="security_iam_id-based-policy-examples-create-table"></a>

Le document de politique JSON suivant autorise la création de tables dans`myExampleLedger`. L'`qldb:PartiQLCreateTable`action nécessite des autorisations sur le type de ressource de table. Toutefois, l'ID d'une nouvelle table n'est pas connu au moment où vous exécutez une `CREATE TABLE` instruction. Ainsi, une politique qui accorde l'`qldb:PartiQLCreateTable`autorisation doit utiliser un caractère générique (\$1) dans l'ARN de la table pour spécifier la ressource.

Pour utiliser cette politique, remplacez *us-east-1**123456789012*, et *myExampleLedger* dans l'exemple par vos propres informations.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "QLDBSendCommandPermission",
            "Effect": "Allow",
            "Action": "qldb:SendCommand",
            "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger"
        },
        {
            "Sid": "QLDBPartiQLCreateTablePermission",
            "Effect": "Allow",
            "Action": [
                "qldb:PartiQLCreateTable"
            ],
            "Resource": [
                "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*"
            ]
        }
    ]
}
```

#### Autoriser l'accès pour créer des tables en fonction des balises de demande
<a name="security_iam_id-based-policy-examples-table-tags"></a>

Le document de politique JSON suivant utilise une condition basée sur la clé de `aws:RequestTag` contexte pour accorder l'autorisation de créer des tables dans`myExampleLedger`. Les autorisations ne sont accordées que si la balise de demande `environment` possède la valeur`development`. Le balisage des tables lors de leur création nécessite l'accès aux `qldb:TagResource` actions `qldb:PartiQLCreateTable` et. Pour savoir comment baliser des tableaux lors de leur création, consultez[Tableaux de balisage](getting-started-standard-mode.md#security_iam_partiql-ref.table-tags).

Pour utiliser cette politique, remplacez *us-east-1**123456789012*, et *myExampleLedger* dans l'exemple par vos propres informations.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "QLDBSendCommandPermission",
            "Effect": "Allow",
            "Action": "qldb:SendCommand",
            "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger"
        },
        {
            "Sid": "QLDBPartiQLCreateTablePermission",
            "Effect": "Allow",
            "Action": [
                "qldb:PartiQLCreateTable",
                "qldb:TagResource"
            ],
            "Resource": [
                "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*"
            ],
            "Condition": {
                "StringEquals": { "aws:RequestTag/environment": "development" }
            }
        }
    ]
}
```

## Exportation d'un journal vers un compartiment Amazon S3
<a name="security_iam_id-based-policy-examples-export-to-s3-bucket"></a>

**Étape 1 : Autorisations d'exportation du journal QLDB**

Dans l'exemple suivant, vous accordez à un utilisateur l' Compte AWS autorisation d'effectuer l'`qldb:ExportJournalToS3`action sur une ressource de registre QLDB. Vous accordez également des autorisations pour effectuer l'`iam:PassRole`action sur la ressource de rôle IAM que vous souhaitez transmettre au service QLDB. Cela est obligatoire pour toutes les demandes d'exportation de journaux.

Pour utiliser cette politique, remplacez*us-east-1*, *123456789012**myExampleLedger*, et *qldb-s3-export* dans l'exemple par vos propres informations.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "QLDBJournalExportPermission",
            "Effect": "Allow",
            "Action": "qldb:ExportJournalToS3",
            "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger"
        },
        {
            "Sid": "IAMPassRolePermission",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::123456789012:role/qldb-s3-export",
            "Condition": {
               "StringEquals": {
                  "iam:PassedToService": "qldb.amazonaws.com"
               }
            }
        }
    ]
}
```

**Étape 2 : autorisations du compartiment Amazon S3**

Dans l'exemple suivant, vous utilisez un rôle IAM pour accorder à QLDB l'accès à l'écriture dans l'un de vos compartiments Amazon S3. `amzn-s3-demo-bucket` Cela est également requis pour toutes les exportations de journaux QLDB.

Outre l'octroi de l'`s3:PutObject`autorisation, la politique accorde également l'`s3:PutObjectAcl`autorisation de définir les autorisations de la liste de contrôle d'accès (ACL) pour un objet.

Pour utiliser cette politique, remplacez amzn-s3-demo-bucket dans l'exemple par le nom de votre compartiment Amazon S3.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "QLDBJournalExportS3Permissions",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
    ]
}
```

Vous associez ensuite cette politique d'autorisation à un rôle IAM que QLDB peut assumer pour accéder à votre compartiment Amazon S3. Le document JSON suivant est un exemple de politique de confiance qui permet à QLDB d'assumer le rôle IAM pour n'importe quelle ressource QLDB du compte uniquement. `123456789012`

Pour utiliser cette politique, remplacez *us-east-1* et *123456789012* dans l'exemple par vos propres informations.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "qldb.amazonaws.com"
            },
            "Action": [ "sts:AssumeRole" ],
            "Condition": {
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:qldb:us-east-1:123456789012:*"
                },
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                }
            }
        }
    ]
}
```

## Diffusion d'un journal sur Kinesis Data Streams
<a name="security_iam_id-based-policy-examples-stream-to-kinesis"></a>

**Étape 1 : autorisations du flux de journaux QLDB**

Dans l'exemple suivant, vous accordez à un utilisateur l' Compte AWS autorisation d'effectuer l'`qldb:StreamJournalToKinesis`action sur toutes les sous-ressources de flux QLDB d'un registre. Vous accordez également des autorisations pour effectuer l'`iam:PassRole`action sur la ressource de rôle IAM que vous souhaitez transmettre au service QLDB. Cela est obligatoire pour toutes les demandes de flux de journal.

Pour utiliser cette politique, remplacez*us-east-1*, *123456789012**myExampleLedger*, et *qldb-kinesis-stream* dans l'exemple par vos propres informations.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "QLDBJournalStreamPermission",
            "Effect": "Allow",
            "Action": "qldb:StreamJournalToKinesis",
            "Resource": "arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*"
        },
        {
            "Sid": "IAMPassRolePermission",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::123456789012:role/qldb-kinesis-stream",
            "Condition": {
               "StringEquals": {
                  "iam:PassedToService": "qldb.amazonaws.com"
               }
            }
        }
    ]
}
```

**Étape 2 : autorisations Kinesis Data Streams**

Dans l'exemple suivant, vous utilisez un rôle IAM pour autoriser QLDB à écrire des enregistrements de données dans votre flux de données Amazon Kinesis. *stream-for-qldb* Cela est également requis pour tous les flux de journaux QLDB.

Pour utiliser cette politique, remplacez *us-east-1**123456789012*, et *stream-for-qldb* dans l'exemple par vos propres informations.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "QLDBStreamKinesisPermissions",
            "Action": [ "kinesis:PutRecord*", "kinesis:DescribeStream", "kinesis:ListShards" ],
            "Effect": "Allow",
            "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/stream-for-qldb"
        }
    ]
}
```

Vous associez ensuite cette politique d'autorisation à un rôle IAM que QLDB peut assumer pour accéder à votre flux de données Kinesis. Le document JSON suivant est un exemple de politique de confiance qui permet à QLDB d'assumer un rôle IAM pour n'importe quel flux QLDB dans le compte du registre uniquement. `123456789012` `myExampleLedger`

Pour utiliser cette politique, remplacez *us-east-1**123456789012*, et *myExampleLedger* dans l'exemple par vos propres informations.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "qldb.amazonaws.com"
            },
            "Action": [ "sts:AssumeRole" ],
            "Condition": {
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*"
                },
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                }
            }
        }
    ]
}
```

## Mise à jour des registres QLDB en fonction des balises
<a name="security_iam_id-based-policy-examples-update-ledger-tags"></a>

Vous pouvez utiliser des conditions dans votre politique basée sur l'identité pour contrôler l'accès aux ressources QLDB en fonction de balises. Cet exemple montre comment créer une politique permettant de mettre à jour un registre. Toutefois, l'autorisation n'est accordée que si le tag Ledger `Owner` a la valeur du nom d'utilisateur de cet utilisateur. Cette politique accorde également les autorisations nécessaires pour réaliser cette action sur la console.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ListLedgersInConsole",
            "Effect": "Allow",
            "Action": "qldb:ListLedgers",
            "Resource": "*"
        },
        {
            "Sid": "UpdateLedgerIfOwner",
            "Effect": "Allow",
            "Action": "qldb:UpdateLedger",
            "Resource": "arn:aws:qldb:*:*:ledger/*",
            "Condition": {
                "StringEquals": {"aws:ResourceTag/Owner": "${aws:username}"}
            }
        }
    ]
}
```

Vous pouvez attacher cette stratégie aux utilisateurs de votre compte. Si un utilisateur nommé `richard-roe` essaie de mettre à jour un registre QLDB, le registre doit être étiqueté ou. `Owner=richard-roe` `owner=richard-roe` Dans le cas contraire, l’utilisateur se voit refuser l'accès. La clé de condition de balise `Owner` correspond à la fois à `Owner` et à `owner`, car les noms de clé de condition ne sont pas sensibles à la casse. Pour plus d’informations, consultez [Conditions pour éléments de politique JSON IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dans le *Guide de l’utilisateur IAM*.