

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 les ressources DynamoDB
<a name="rbac-examples"></a>

Lorsque vous spécifiez un ARN dans le champ `Resource` d’une politique basée sur les ressources, la politique ne prend effet que si l’ARN spécifié correspond à celui de la ressource DynamoDB à laquelle il est attaché.

**Note**  
N'oubliez pas de remplacer le *italicized* texte par les informations spécifiques à votre ressource.

## Politique basée sur les ressources pour une table
<a name="rbac-examples-get"></a>

La politique basée sur les ressources suivante, attachée à une table DynamoDB nommée*MusicCollection*, donne aux utilisateurs IAM l'*Jane*autorisation d'effectuer *John* des actions sur la ressource. [GetItem[BatchGetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchGetItem.html)](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html)*MusicCollection*

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "1111",
        "Effect": "Allow",
        "Principal": {
          "AWS": [
            "arn:aws:iam::111122223333:user/username",
            "arn:aws:iam::111122223333:user/Jane"
          ]
        },
        "Action": [
          "dynamodb:GetItem",
          "dynamodb:BatchGetItem"
        ],
        "Resource": [
          "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection"
        ]
    }
  ]
}
```

------

## Politique basée sur les ressources pour un flux
<a name="rbac-examples-streams"></a>

La politique basée sur les ressources suivante attachée à un flux DynamoDB nommé `2024-02-12T18:57:26.492` donne aux utilisateurs IAM l'*Jane*autorisation d'effectuer [GetRecords](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetRecords.html)des *John* actions d'API sur la ressource. [GetShardIterator[DescribeStream](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_DescribeStream.html)](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetShardIterator.html)`2024-02-12T18:57:26.492`

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "1111",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::111122223333:user/username",
          "arn:aws:iam::111122223333:user/Jane"
        ]
      },
      "Action": [
        "dynamodb:DescribeStream",
        "dynamodb:GetRecords",
        "dynamodb:GetShardIterator"
      ],
      "Resource": [
        "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection/stream/2024-02-12T18:57:26.492"
      ]
    }
  ]
}
```

------

## Politique d’accès basée sur les ressources pour effectuer toutes les actions sur les ressources spécifiées
<a name="rbac-examples-wildcard"></a>

Pour permettre à un utilisateur d’effectuer toutes les actions sur une table et tous les index associés à une table, vous pouvez utiliser un caractère générique (\$1) pour représenter les actions et les ressources associées à la table. L’utilisation d’un caractère générique pour les ressources permettra à l’utilisateur d’accéder à la table DynamoDB et à tous ses index associés, y compris ceux qui n’ont pas encore été créés. Par exemple, la politique suivante *John* autorisera l'utilisateur à effectuer des actions sur la *MusicCollection* table et sur tous ses index, y compris les index qui seront créés dans le futur.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "1111",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:user/role-name"
      },
      "Action": "dynamodb:*",
      "Resource": [
        "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection",
        "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection/index/index-name"
      ]
    }
  ]
}
```

------

## Politique basées sur les ressources pour l’accès intercompte
<a name="rbac-examples-cross-account"></a>

Vous pouvez spécifier des autorisations pour une identité IAM intercompte afin d’accéder aux ressources DynamoDB. Par exemple, vous pouvez avoir besoin qu’un utilisateur d’un compte approuvé bénéficie d’un accès au contenu de votre table, à condition qu’il n’accède qu’à des éléments et à des attributs spécifiques de ces éléments. La politique suivante autorise l'accès à un utilisateur à *John* partir d'un Compte AWS identifiant fiable *111111111111* pour accéder aux données d'une table dans un compte à *123456789012* l'aide de l'[GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html)API. La politique garantit que l'utilisateur ne peut accéder qu'aux éléments dotés d'une clé primaire *Jane* et qu'il ne peut récupérer que les attributs `Artist``SongTitle`, mais aucun autre attribut.

**Important**  
Si vous ne spécifiez pas la condition `SPECIFIC_ATTRIBUTES`, vous verrez tous les attributs des articles renvoyés.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CrossAccountTablePolicy",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111111111111:user/John"
            },
            "Action": "dynamodb:GetItem",
            "Resource": [
                "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection"
            ],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "dynamodb:LeadingKeys": "Jane",
                    "dynamodb:Attributes": [
                        "Artist",
                        "SongTitle"
                    ]
                },
                "StringEquals": {
                    "dynamodb:Select": "SPECIFIC_ATTRIBUTES"
                }
            }
        }
    ]
}
```

------

Outre la politique basée sur les ressources précédente, la politique basée sur l'identité attachée à l'utilisateur doit *John* également autoriser l'action de l'`GetItem`API pour que l'accès entre comptes fonctionne. Voici un exemple de politique basée sur l'identité que vous devez associer à l'utilisateur. *John*

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CrossAccountIdentityBasedPolicy",
            "Effect": "Allow",
            "Action": [
                "dynamodb:GetItem"
            ],
            "Resource": [
                "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection"
            ],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "dynamodb:LeadingKeys": "Jane",
                    "dynamodb:Attributes": [
                        "Artist",
                        "SongTitle"
                    ]
                },
                "StringEquals": {
                    "dynamodb:Select": "SPECIFIC_ATTRIBUTES"
                }
            }
        }
    ]
}
```

------

L'utilisateur John peut faire une `GetItem` demande en spécifiant l'ARN de la table dans le `table-name` paramètre d'accès à la table *MusicCollection* dans le compte*123456789012*.

```
aws dynamodb get-item \
    --table-name arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection \
    --key '{"Artist": {"S": "Jane"}' \
    --projection-expression 'Artist, SongTitle' \
    --return-consumed-capacity TOTAL
```

## Politique basée sur les ressources avec conditions d’adresse IP
<a name="rbac-examples-conditions"></a>

Vous pouvez appliquer une condition pour restreindre les adresses IP sources, les clouds privés virtuels (VPCs) et les points de terminaison VPC (VPCE). Vous pouvez spécifier des autorisations en fonction des adresses sources de la demande d’origine. Par exemple, vous pouvez autoriser un utilisateur à accéder aux ressources DynamoDB uniquement si elles sont accessibles à partir d’une source IP spécifique, telle qu’un point de terminaison VPN d’entreprise. Spécifiez ces adresses IP dans la déclaration `Condition`.

L'exemple suivant permet à l'utilisateur d'*John*accéder à n'importe quelle ressource DynamoDB lorsque les IPs sources sont et. `54.240.143.0/24` `2001:DB8:1234:5678::/64`

------
#### [ JSON ]

****  

```
{
  "Id":"PolicyId2",
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Sid":"AllowIPmix",
      "Effect":"Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111111111111:user/username"
      },
      "Action":"dynamodb:*",
      "Resource":"*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": [
            "54.240.143.0/24",
            "2001:DB8:1234:5678::/64"
          ]
        }
      }
    }
  ]
}
```

------

Vous pouvez également refuser tout accès aux ressources DynamoDB, sauf lorsque la source est un point de terminaison VPC spécifique, par exemple. *vpce-1a2b3c4d*

**Important**  
Lorsque vous utilisez DAX avec des tables DynamoDB dotées de politiques de ressources basées sur l'adresse IP IPv6 dans des environnements uniquement, vous devez configurer des règles d'accès supplémentaires. Si votre politique de ressources restreint l'accès à l'espace d' IPv4 adressage `0.0.0.0/0` des tables, vous devez autoriser l'accès au rôle IAM associé à votre cluster DAX. Ajoutez une `ArnNotEquals` condition à votre politique pour garantir que DAX conserve l'accès à vos tables DynamoDB. Pour plus d'informations, voir [DAX et. IPv6](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.create-cluster.DAX_and_IPV6.html)

------
#### [ JSON ]

****  

```
{
  "Id":"PolicyId",
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AccessToSpecificVPCEOnly",
      "Principal": "*",
      "Action": "dynamodb:*",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringNotEquals":{
          "aws:sourceVpce":"vpce-1a2b3c4d"
        }
      }
    }
  ]
}
```

------

## Politique basée sur les ressources utilisant un rôle IAM
<a name="rbac-examples-iam"></a>

Vous pouvez également spécifier un rôle de service IAM dans la politique basée sur les ressources. Les entités IAM qui assument ce rôle sont limitées par les actions autorisées spécifiées pour le rôle et par l’ensemble de ressources spécifique dans le cadre de la politique basée sur les ressources.

L'exemple suivant permet à une entité IAM d'effectuer toutes les actions DynamoDB sur les ressources DynamoDB et DynamoDB. *MusicCollection* *MusicCollection*

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "1111",
      "Effect": "Allow",
      "Principal": { "AWS": "arn:aws:iam::111122223333:role/role-name" },
      "Action": "dynamodb:*",
      "Resource": [
        "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection",
        "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection/*"
      ]
    }
  ]
}
```

------