Paweł Łukasiewicz
2024-05-20
Paweł Łukasiewicz
2024-05-20
Udostępnij Udostępnij Kontakt
Wprowadzenie

DynamoDB oferuje szereg możliwych akcji, których wykonanie wymaga uprawnień. Podczas ustawiania uprawnień musimy określić dozwolone działania, zasoby oraz warunki dostępności dla każdej z akcji.

Uprawnienia te możemy ustawić wykorzystując pole Actions z poziomu defininiowania polityk. Z kolei zasób do którego chcemy uzyskać dostęp ustawiamy wykorzystując pole Resource. Tutaj musimy się upewnić, że używana przez nas składnia jest poprawna i zawiera prefiks dynamodb: ze wskazaną operacją API, np. dynamodb:CreateTable

Wszystko stanie się jaśniejsze jak spojrzymy na poniższe tabele. Pamiętajcie, że zawsze możecie spojrzeć do jednego z poprzednich wpisów w którym rozmawialiśmy o tworzeniu nowych ról: AWS Lambda - Lambda z DynamoDB

Uprawnienia i operacje API

Poniższa tabela będzie potrzebna, kiedy będziecie tworzyć swoje własne tabele – przyjrzyjcie się jednak uważnie jakie operacje są możliwe i jakie należy nadać uprawnienie dla takiej akcji:

Uprawnienia Operacja
BatchGetItem dynamodb:BatchGetItem
BatchWriteItem dynamodb:BatchWriteItem
CreateTable dynamodb:CreateTable
DeleteItem dynamodb:DeleteItem
DeleteTable dynamodb:DeleteTable
DescribeLimits dynamodb:DescribeLimits
DescribeReservedCapacity dynamodb:DescribeReservedCapacity
DescribeReservedCapacityOfferings dynamodb:DescribeReservedCapacityOfferings
DescribeStream dynamodb:DescribeStream
DescribeTable dynamodb:DescribeTable
GetItem dynamodb:GetItem
GetRecords dynamodb:GetRecords
GetShardIterator dynamodb:GetShardIterator
ListStreams dynamodb:ListStreams
ListTables dynamodb:ListTables
PurchaseReservedCapacityOfferings dynamodb:PurchaseReservedCapacityOfferings
PutItem dynamodb:PutItem
Query dynamodb:Query
Scan dynamodb:Scan
UpdateItem dynamodb:UpdateItem
UpdateTable dynamodb:UpdateTable

Zasoby

Zanim przejdziemy dalej spójrzmy jeszcze na zasoby powiązane z daną operacją:

Operacja Zasób
BatchGetItem arn:aws:dynamodb:region:account-id:table/table-name
BatchWriteItem arn:aws:dynamodb:region:account-id:table/table-name
CreateTable arn:aws:dynamodb:region:account-id:table/table-name
DeleteItem arn:aws:dynamodb:region:account-id:table/table-name
DeleteTable arn:aws:dynamodb:region:account-id:table/table-name
DescribeLimits arn:aws:dynamodb:region:account-id:*
DescribeReservedCapacity arn:aws:dynamodb:region:account-id:*
DescribeReservedCapacityOfferings arn:aws:dynamodb:region:account-id:*
DescribeStream arn:aws:dynamodb:region:account-id:table/table-name/stream/stream-label
DescribeTable arn:aws:dynamodb:region:account-id:table/table-name
GetItem arn:aws:dynamodb:region:account-id:table/table-name
GetRecords arn:aws:dynamodb:region:account-id:table/table-name/stream/stream-label
GetShardIterator arn:aws:dynamodb:region:account-id:table/table-name/stream/stream-label
ListStreams arn:aws:dynamodb:region:account-id:table/table-name/stream/*
ListTables *
PurchaseReservedCapacityOfferings arn:aws:dynamodb:region:account-id:*
PutItem arn:aws:dynamodb:region:account-id:table/table-name
Query

arn:aws:dynamodb:region:account-id:table/table-name

lub

arn:aws:dynamodb:region:account-id:table/table-name/index/index-name