Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Contoh kebijakan IAM berikut menggunakan put-resource-policy
AWS CLI
perintah untuk melampirkan kebijakan berbasis sumber daya ke tabel yang ada. Contoh ini memungkinkan pengguna John
untuk melakukan tindakan GetItem, PutItem, UpdateItem, dan UpdateTableAPI pada tabel yang ada bernamaMusicCollection
.
Ingatlah untuk mengganti italicized
teks dengan informasi spesifik sumber daya Anda.
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
\" } ] }"
Untuk memperbarui kebijakan tabel berbasis sumber daya yang ada secara kondisional, Anda dapat menggunakan parameter opsional. expected-revision-id
Contoh berikut hanya akan memperbarui kebijakan jika ada di DynamoDB dan ID revisi saat ini cocok dengan parameter yang disediakan. 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
\" } ] }"
Masuk ke AWS Management Console dan buka konsol DynamoDB di. https://console.aws.amazon.com/dynamodb/
-
Dari dasbor, pilih tabel yang ada.
-
Arahkan ke tab Izin, dan pilih Buat kebijakan tabel.
-
Di editor kebijakan berbasis sumber daya, tambahkan kebijakan yang ingin dilampirkan dan pilih Buat kebijakan.
Contoh kebijakan IAM berikut memungkinkan pengguna
John
untuk melakukan tindakan GetItem,, PutItemUpdateItem, dan UpdateTableAPI pada tabel yang ada bernamaMusicCollection
.Ingatlah untuk mengganti
italicized
teks dengan informasi spesifik sumber daya Anda.{ "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
" } ] }
Contoh kebijakan IAM berikut menggunakan putResourcePolicy
metode untuk melampirkan kebijakan berbasis sumber daya ke tabel yang ada. Kebijakan ini memungkinkan pengguna untuk melakukan tindakan GetItemAPI pada tabel yang ada.
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" +
"}";
}
}