

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Membuat tabel dengan kebijakan berbasis sumber daya
<a name="rbac-create-table"></a>

[Anda dapat menambahkan kebijakan berbasis sumber daya saat membuat tabel menggunakan konsol DynamoDB, [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html)API, SDK, atau template. AWS CLIAWS](rbac-attach-resource-based-policy.md#rbac-attach-policy-java-sdk) CloudFormation 

## AWS CLI
<a name="rbac-create-table-CLI"></a>

Contoh berikut membuat tabel bernama *MusicCollection* menggunakan `create-table` AWS CLI perintah. Perintah ini juga menyertakan `resource-policy` parameter yang menambahkan kebijakan berbasis sumber daya ke tabel. Kebijakan ini memungkinkan pengguna *John* untuk melakukan tindakan [RestoreTableToPointInTime[GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html)](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_RestoreTableToPointInTime.html),, dan [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)API pada tabel.

Ingatlah untuk mengganti *italicized* teks dengan informasi spesifik sumber daya Anda.

```
aws dynamodb create-table \
    --table-name MusicCollection \
    --attribute-definitions AttributeName=Artist,AttributeType=S AttributeName=SongTitle,AttributeType=S \
    --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 \
    --resource-policy \
        "{
            \"Version\": \"2012-10-17\",		 	 	 
            \"Statement\": [
              {
                    \"Effect\": \"Allow\",
                    \"Principal\": {
                        \"AWS\": \"arn:aws:iam::123456789012:user/John\"
                    },
                    \"Action\": [
                        \"dynamodb:RestoreTableToPointInTime\",
                        \"dynamodb:GetItem\",
                        \"dynamodb:DescribeTable\"
                    ],
                    \"Resource\": \"arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection\"
                }
            ]
        }"
```

## Konsol Manajemen AWS
<a name="rbac-create-table-console"></a>

1. Masuk ke Konsol Manajemen AWS dan buka konsol DynamoDB di. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

1. Di dasbor, pilih **Buat tabel**.

1. Dalam **Rincian tabel**, masukkan nama tabel, kunci partisi, dan urutkan detail kunci.

1. Di **Pengaturan tabel**, pilih **Sesuaikan pengaturan**.

1. **(Opsional) Tentukan opsi Anda untuk **kelas Tabel**, **Kalkulator kapasitas**, **Pengaturan kapasitas baca/tulis**, **Indeks sekunder**, **Enkripsi saat istirahat**, dan Perlindungan penghapusan.**

1. Dalam **kebijakan berbasis sumber daya, tambahkan kebijakan** untuk menentukan izin akses untuk tabel dan indeksnya. Dalam kebijakan ini, Anda menentukan siapa yang memiliki akses ke sumber daya ini, dan tindakan yang diizinkan untuk dilakukan pada setiap sumber daya. Untuk menambahkan kebijakan, lakukan salah satu hal berikut:
   + Ketik atau tempel dokumen kebijakan JSON. Untuk detail tentang bahasa kebijakan IAM, lihat [Membuat kebijakan menggunakan editor JSON di Panduan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor) Pengguna *IAM*.
**Tip**  
**Untuk melihat contoh kebijakan berbasis sumber daya di Panduan Pengembang Amazon DynamoDB, pilih Contoh kebijakan.**
   + Pilih **Tambahkan pernyataan baru** untuk menambahkan pernyataan baru dan masukkan informasi di bidang yang disediakan. Ulangi langkah ini sebanyak jumlah pernyataan yang ingin Anda tambahkan.
**penting**  
Pastikan Anda menyelesaikan peringatan, kesalahan, atau saran keamanan apa pun sebelum menyimpan kebijakan Anda.

   Contoh kebijakan IAM berikut memungkinkan pengguna *John* untuk melakukan tindakan [RestoreTableToPointInTime](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_RestoreTableToPointInTime.html), [GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html), dan [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)API pada tabel*MusicCollection*.

   Ingatlah untuk mengganti *italicized* teks dengan informasi spesifik sumber daya Anda.

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

****  

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

------

1. (Opsional) Pilih **Pratinjau akses eksternal** di sudut kanan bawah untuk melihat bagaimana kebijakan baru memengaruhi publik dan akses lintas akun ke sumber daya Anda. Sebelum Anda menyimpan kebijakan Anda, Anda dapat memeriksa apakah itu memperkenalkan temuan Penganalisa Akses IAM baru atau menyelesaikan temuan yang ada. Jika Anda tidak melihat penganalisis aktif, pilih **Buka Penganalisis Akses** untuk [membuat penganalisis akun](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#access-analyzer-enabling) di Penganalisis Akses IAM. Untuk informasi selengkapnya, lihat [Pratinjau akses](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-access-preview.html).

1. Pilih **Buat tabel**.

## AWS CloudFormation Template
<a name="rbac-create-table-cfn"></a>

------
#### [ Using the AWS::DynamoDB::Table resource ]

 CloudFormation Template berikut membuat tabel dengan aliran menggunakan sumber daya [AWS: :DynamoDB: :Table](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html). Template ini juga menyertakan kebijakan berbasis sumber daya yang dilampirkan ke tabel dan aliran.

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Resources": {
        "MusicCollectionTable": {
            "Type": "AWS::DynamoDB::Table",
            "Properties": {
                "AttributeDefinitions": [
                    {
                        "AttributeName": "Artist",
                        "AttributeType": "S"
                    }
                ],
                "KeySchema": [
                    {
                        "AttributeName": "Artist",
                        "KeyType": "HASH"
                    }
                ],
                "BillingMode": "PROVISIONED",
                "ProvisionedThroughput": {
                    "ReadCapacityUnits": 5,
                    "WriteCapacityUnits": 5
                },
                "StreamSpecification": {
                  "StreamViewType": "OLD_IMAGE",
                  "ResourcePolicy": {
                    "PolicyDocument": {
                      "Version": "2012-10-17",		 	 	 
                      "Statement": [
                        {
                            "Principal": {
                                "AWS": "arn:aws:iam::111122223333:user/John"
                            },
                            "Effect": "Allow",
                            "Action": [
                                "dynamodb:GetRecords",
                                "dynamodb:GetShardIterator",
                                "dynamodb:DescribeStream"
                            ],
                            "Resource": "*"
                        }
                      ]
                    }
                  }
                },
                "TableName": "MusicCollection",
                "ResourcePolicy": {
                    "PolicyDocument": {
                        "Version": "2012-10-17",		 	 	 
                        "Statement": [
                            {
                                "Principal": {
                                    "AWS": [
                                        "arn:aws:iam::111122223333:user/John"
                                    ]
                                },
                                "Effect": "Allow",
                                "Action": "dynamodb:GetItem",
                                "Resource": "*"
                            }
                        ]
                    }
                }
            }
           
        }
    }
}
```

------
#### [ Using the AWS::DynamoDB::GlobalTable resource ]

 CloudFormation Template berikut membuat tabel dengan sumber daya [AWS: :DynamoDB::](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html) dan melampirkan kebijakan berbasis GlobalTable sumber daya ke tabel dan alirannya.

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Resources": {
        "GlobalMusicCollection": {
            "Type": "AWS::DynamoDB::GlobalTable",
            "Properties": {
                "TableName": "MusicCollection",
                "AttributeDefinitions": [{
                    "AttributeName": "Artist",
                    "AttributeType": "S"
                }],
                "KeySchema": [{
                    "AttributeName": "Artist",
                    "KeyType": "HASH"
                }],
                "BillingMode": "PAY_PER_REQUEST",
                "StreamSpecification": {
                    "StreamViewType": "NEW_AND_OLD_IMAGES"
                },
                "Replicas": [
                    {
                        "Region": "us-east-1",
                        "ResourcePolicy": {
                            "PolicyDocument": {
                                "Version": "2012-10-17",		 	 	 
                                "Statement": [{
                                    "Principal": {
                                        "AWS": [
                                            "arn:aws:iam::111122223333:user/John"
                                        ]
                                    },
                                    "Effect": "Allow",
                                    "Action": "dynamodb:GetItem",
                                    "Resource": "*"
                                }]
                            }
                        },
                        "ReplicaStreamSpecification": {
                            "ResourcePolicy": {
                                "PolicyDocument": {
                                    "Version": "2012-10-17",		 	 	 
                                    "Statement": [{
                                        "Principal": {
                                            "AWS": "arn:aws:iam::111122223333:user/John"
                                        },
                                        "Effect": "Allow",
                                        "Action": [
                                            "dynamodb:GetRecords",
                                            "dynamodb:GetShardIterator",
                                            "dynamodb:DescribeStream"
                                        ],
                                        "Resource": "*"
                                    }]
                                }
                            }
                        }
                    }
                ]
            }
        }
    }
}
```

------