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 DynamoDB basées sur les ressources
Lorsque vous spécifiez un ARN dans le Resource
champ d'une stratégie basée sur les ressources, la stratégie ne prend effet que si la valeur spécifiée ARN correspond à celle ARN de la ressource DynamoDB à laquelle elle est attachée.
Note
N'oubliez pas de remplacer le italicized
texte contenant les informations spécifiques à votre ressource.
Politique basée sur les ressources pour une table
La politique basée sur les ressources suivante attachée à une table DynamoDB nommée MusicCollection
, donne aux IAM utilisateurs John
and Jane
autorisation d'exécution GetItemet BatchGetItemactions sur le MusicCollection
ressource.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "1111", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
111122223333
:user/John
", "arn:aws:iam::111122223333
:user/Jane
" ] }, "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem" ], "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012
:table/MusicCollection
" ] } ] }
Politique basée sur les ressources pour un flux
La politique basée sur les ressources suivante attachée à un flux DynamoDB nommé donne aux utilisateurs 2024-02-12T18:57:26.492
IAM John
and Jane
autorisation d'exécution GetRecordsGetShardIterator, et DescribeStreamAPIactions sur la 2024-02-12T18:57:26.492
ressource.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "1111", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
111122223333
:user/John
", "arn:aws:iam::111122223333
:user/Jane
" ] }, "Action": [ "dynamodb:DescribeStream", "dynamodb:GetRecords", "dynamodb:GetShardIterator" ], "Resource": [ "arn:aws:dynamodb:us-west-2: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
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 (*) 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 donnera à l'utilisateur John
autorisation d'effectuer des actions sur MusicCollection
table et tous ses index, y compris les index qui seront créés dans le futur.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "1111", "Effect": "Allow", "Principal":"arn:aws:iam::
111122223333
:user/John
", "Action": "dynamodb:*", "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012
:table/MusicCollection
", "arn:aws:dynamodb:us-west-2:123456789012
:table/MusicCollection
/index/*" ] } ] }
Politique basée sur les ressources pour l'accès entre comptes
Vous pouvez définir des autorisations pour une IAM identité multi-comptes afin d'accéder aux ressources DynamoDB. Par exemple, vous pouvez avoir besoin d'un utilisateur d'un compte approuvé pour accéder au contenu de votre tableau, à condition qu'il n'accède qu'à des éléments spécifiques et à des attributs spécifiques de ces éléments. La politique suivante autorise l'accès à l'utilisateur John
à partir d'un Compte AWS identifiant fiable 111111111111
pour accéder aux données d'une table dans le compte 123456789012
en utilisant le GetItemAPI. La politique garantit que l'utilisateur ne peut accéder qu'aux éléments dotés d'une clé primaire Jane
et que l'utilisateur ne peut récupérer que Artist
les attributsSongTitle
, mais aucun autre attribut.
Important
Si vous ne spécifiez pas la SPECIFIC_ATTRIBUTES
condition, vous verrez tous les attributs des articles renvoyés.
{ "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 stratégie basée sur les ressources précédente, la politique basée sur l'identité attachée à l'utilisateur John
doit également autoriser l'GetItem
APIaction en faveur de l'accès multicompte au travail. Voici un exemple de politique basée sur l'identité que vous devez associer à l'utilisateur John
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountIdentityBasedPolicy", "Effect": "Allow", "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" } } } ] }
L'utilisateur John peut faire une GetItem
demande en spécifiant la table ARN 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
Vous pouvez appliquer une condition pour restreindre les adresses IP sources, les clouds privés virtuels (VPCs) et les points de VPC terminaison (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 depuis une source IP spécifique, telle qu'un point de terminaison d'entreprise. VPN Spécifiez ces adresses IP dans la Condition
déclaration.
L'exemple suivant permet à l'utilisateur John
accès à n'importe quelle ressource DynamoDB lorsque les sources sont et. IPs 54.240.143.0/24
2001:DB8:1234:5678::/64
{ "Id":"PolicyId2", "Version":"2012-10-17", "Statement":[ { "Sid":"AllowIPmix", "Effect":"Allow", "Principal":"arn:aws:iam::
111111111111
:user/John
", "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
.
{ "Id":"PolicyId", "Version":"2012-10-17", "Statement": [ { "Sid": "AccessToSpecificVPCEOnly", "Principal": "*", "Action": "dynamodb:*", "Effect": "Deny", "Resource": "*", "Condition": { "StringNotEquals":{ "aws:sourceVpce":"
vpce-1a2b3c4d
" } } } ] }
Stratégie basée sur les ressources utilisant un rôle IAM
Vous pouvez également spécifier un rôle IAM de service dans la politique basée sur les ressources. IAMles entités 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 IAM entité d'effectuer toutes les actions DynamoDB sur MusicCollection
and MusicCollection
Ressources DynamoDB.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "1111", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
111122223333
:role/John
" }, "Action": "dynamodb:*", "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012
:table/MusicCollection
", "arn:aws:dynamodb:us-west-2:123456789012
:table/MusicCollection
/*" ] } ] }