Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Il seguente esempio di IAM politica utilizza il put-resource-policy
AWS CLI
comando per allegare una politica basata sulle risorse a una tabella esistente. Questo esempio consente all'utente di John
eseguire le UpdateTableAPIazioni GetItem, PutItemUpdateItem, e su una tabella esistente denominata. MusicCollection
Ricordati di sostituire il italicized
testo con le informazioni specifiche della risorsa.
aws dynamodb put-resource-policy \ --resource-arn arn:aws:dynamodb:us-west-2:
123456789012
:table/MusicCollection
\ --policy \ "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Principal\": { \"AWS\": \"arn:aws:iam::111122223333
:user/John
\" }, \"Action\": [ \"dynamodb:GetItem\", \"dynamodb:PutItem\", \"dynamodb:UpdateItem\", \"dynamodb:UpdateTable\" ], \"Resource\": \"arn:aws:dynamodb:us-west-2:123456789012
:table/MusicCollection
\" } ] }"
Per aggiornare in modo condizionale una politica esistente basata sulle risorse di una tabella, puoi utilizzare il parametro opzionale. expected-revision-id
L'esempio seguente aggiornerà la policy solo se esiste in DynamoDB e il suo ID di revisione corrente corrisponde al parametro fornito. expected-revision-id
aws dynamodb put-resource-policy \ --resource-arn arn:aws:dynamodb:us-west-2:123456789012:table/
MusicCollection
\ --expected-revision-id 1709841168699 \ --policy \ "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Principal\": { \"AWS\": \"arn:aws:iam::111122223333:user/John
\" }, \"Action\": [ \"dynamodb:GetItem\", \"dynamodb:UpdateItem\", \"dynamodb:UpdateTable\" ], \"Resource\": \"arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection
\" } ] }"
Accedi AWS Management Console e apri la console DynamoDB all'indirizzo. https://console.aws.amazon.com/dynamodb/
-
Dalla dashboard, scegli una tabella esistente.
-
Vai alla scheda Autorizzazioni e scegli Crea politica della tabella.
-
Nell'editor delle politiche basato sulle risorse, aggiungi la politica che desideri allegare e scegli Crea politica.
Il seguente esempio di IAM policy consente all'utente
John
di eseguire le UpdateTableAPIazioni GetItem, PutItemUpdateItem, e su una tabella esistente denominata.MusicCollection
Ricordati di sostituire il
italicized
testo con le informazioni specifiche della risorsa.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
111122223333
:user/John
" }, "Action": [ "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:UpdateTable" ], "Resource": "arn:aws:dynamodb:us-west-2:123456789012
:table/MusicCollection
" } ] }
Il seguente esempio di IAM politica utilizza il putResourcePolicy
metodo per allegare una politica basata sulle risorse a una tabella esistente. Questo criterio consente a un utente di eseguire l'GetItemAPIazione su una tabella esistente.
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.services.dynamodb.model.DynamoDbException;
import software.amazon.awssdk.services.dynamodb.model.PutResourcePolicyRequest;
/**
* Before running this Java V2 code example, set up your development
* environment, including your credentials.
*
* For more information, see the following documentation topic:
*
* Get started with the AWS SDK for Java 2.x
*/
public class PutResourcePolicy {
public static void main(String[] args) {
final String usage = """
Usage:
<tableArn> <allowedAWSPrincipal>
Where:
tableArn - The Amazon DynamoDB table ARN to attach the policy to. For example, arn:aws:dynamodb:us-west-2:123456789012
:table/MusicCollection
.
allowed AWS Principal - Allowed AWS principal ARN that the example policy will give access to. For example, arn:aws:iam::123456789012
:user/John
.
""";
if (args.length != 2) {
System.out.println(usage);
System.exit(1);
}
String tableArn = args[0];
String allowedAWSPrincipal = args[1];
System.out.println("Attaching a resource-based policy to the Amazon DynamoDB table with ARN " +
tableArn);
Region region = Region.US_WEST_2;
DynamoDbClient ddb = DynamoDbClient.builder()
.region(region)
.build();
String result = putResourcePolicy(ddb, tableArn, allowedAWSPrincipal);
System.out.println("Revision ID for the attached policy is " + result);
ddb.close();
}
public static String putResourcePolicy(DynamoDbClient ddb, String tableArn, String allowedAWSPrincipal) {
String policy = generatePolicy(tableArn, allowedAWSPrincipal);
PutResourcePolicyRequest request = PutResourcePolicyRequest.builder()
.policy(policy)
.resourceArn(tableArn)
.build();
try {
return ddb.putResourcePolicy(request).revisionId();
} catch (DynamoDbException e) {
System.err.println(e.getMessage());
System.exit(1);
}
return "";
}
private static String generatePolicy(String tableArn, String allowedAWSPrincipal) {
return "{\n" +
" \"Version\": \"2012-10-17\",\n" +
" \"Statement\": [\n" +
" {\n" +
" \"Effect\": \"Allow\",\n" +
" \"Principal\": {\"AWS\":\"" + allowedAWSPrincipal + "\"},\n" +
" \"Action\": [\n" +
" \"dynamodb:GetItem\"\n" +
" ],\n" +
" \"Resource\": \"" + tableArn + "\"\n" +
" }\n" +
" ]\n" +
"}";
}
}