DynamoDB - การควบคุมการเข้าถึง
DynamoDB ใช้หนังสือรับรองที่คุณระบุเพื่อพิสูจน์ตัวตนคำขอ ข้อมูลรับรองเหล่านี้จำเป็นและต้องมีสิทธิ์สำหรับการเข้าถึงทรัพยากร AWS สิทธิ์เหล่านี้ครอบคลุมแทบทุกด้านของ DynamoDB ไปจนถึงคุณสมบัติย่อยของการทำงานหรือฟังก์ชันการทำงาน
ประเภทของสิทธิ์
ในส่วนนี้เราจะพูดถึงสิทธิ์ต่างๆและการเข้าถึงทรัพยากรใน DynamoDB
การพิสูจน์ตัวตนผู้ใช้
ในการสมัครใช้งานคุณได้ระบุรหัสผ่านและอีเมลซึ่งทำหน้าที่เป็นข้อมูลรับรองรูท DynamoDB เชื่อมโยงข้อมูลนี้กับบัญชี AWS ของคุณและใช้ข้อมูลนี้เพื่อให้สามารถเข้าถึงทรัพยากรทั้งหมดได้อย่างสมบูรณ์
AWS ขอแนะนำให้คุณใช้ข้อมูลรับรองรูทของคุณสำหรับการสร้างบัญชีการดูแลระบบเท่านั้น สิ่งนี้ช่วยให้คุณสร้างบัญชี IAM / ผู้ใช้ที่มีสิทธิ์น้อยกว่า ผู้ใช้ IAM เป็นบัญชีอื่น ๆ ที่สร้างขึ้นด้วยบริการ IAM สิทธิ์การเข้าถึง / สิทธิ์ของพวกเขารวมถึงการเข้าถึงเพจที่ปลอดภัยและสิทธิ์ที่กำหนดเองบางอย่างเช่นการปรับเปลี่ยนตาราง
คีย์การเข้าถึงเป็นตัวเลือกอื่นสำหรับบัญชีเพิ่มเติมและการเข้าถึง ใช้เพื่อให้สิทธิ์เข้าถึงและเพื่อหลีกเลี่ยงการให้สิทธิ์เข้าถึงด้วยตนเองในบางสถานการณ์ ผู้ใช้รวมเป็นอีกทางเลือกหนึ่งโดยอนุญาตให้เข้าถึงผ่านผู้ให้บริการข้อมูลประจำตัว
ธุรการ
ทรัพยากร AWS ยังคงอยู่ภายใต้ความเป็นเจ้าของบัญชี นโยบายสิทธิ์จะควบคุมสิทธิ์ที่มอบให้เพื่อวางไข่หรือเข้าถึงทรัพยากร ผู้ดูแลระบบเชื่อมโยงนโยบายสิทธิ์กับข้อมูลประจำตัว IAM ซึ่งหมายถึงบทบาทกลุ่มผู้ใช้และบริการ พวกเขายังแนบสิทธิ์ในทรัพยากร
สิทธิ์ระบุผู้ใช้ทรัพยากรและการดำเนินการ หมายเหตุผู้ดูแลระบบเป็นเพียงบัญชีที่มีสิทธิ์ของผู้ดูแลระบบ
การดำเนินงานและทรัพยากร
ตารางยังคงเป็นทรัพยากรหลักใน DynamoDB แหล่งข้อมูลย่อยทำหน้าที่เป็นทรัพยากรเพิ่มเติมเช่นสตรีมและดัชนี ทรัพยากรเหล่านี้ใช้ชื่อที่ไม่ซ้ำกันซึ่งบางส่วนได้กล่าวถึงในตารางต่อไปนี้ -
ประเภท | ARN (ชื่อทรัพยากร Amazon) |
---|---|
กระแส | arn: aws: dynamodb: region: account-id: table / table-name / stream / stream-label |
ดัชนี | arn: aws: dynamodb: region: account-id: table / table-name / index / index-name |
ตาราง | arn: aws: dynamodb: region: account-id: table / table-name |
ความเป็นเจ้าของ
เจ้าของทรัพยากรถูกกำหนดให้เป็นบัญชี AWS ซึ่งสร้างทรัพยากรหรือบัญชีเอนทิตีหลักที่รับผิดชอบในการตรวจสอบคำขอในการสร้างทรัพยากร พิจารณาว่าฟังก์ชันนี้ภายในสภาพแวดล้อม DynamoDB เป็นอย่างไร -
ในการใช้ข้อมูลรับรองรูทเพื่อสร้างตารางบัญชีของคุณยังคงเป็นเจ้าของทรัพยากร
ในการสร้างผู้ใช้ IAM และให้สิทธิ์ผู้ใช้ในการสร้างตารางบัญชีของคุณยังคงเป็นเจ้าของทรัพยากร
ในการสร้างผู้ใช้ IAM และการให้สิทธิ์ผู้ใช้และทุกคนที่สามารถสมมติบทบาทได้รับอนุญาตในการสร้างตารางบัญชีของคุณจะยังคงเป็นเจ้าของทรัพยากร
จัดการการเข้าถึงทรัพยากร
การจัดการการเข้าถึงส่วนใหญ่ต้องให้ความสำคัญกับนโยบายสิทธิ์ที่อธิบายถึงผู้ใช้และการเข้าถึงทรัพยากร คุณเชื่อมโยงนโยบายกับข้อมูลประจำตัวหรือทรัพยากรของ IAM อย่างไรก็ตาม DynamoDB สนับสนุนนโยบาย IAM / identity เท่านั้น
นโยบายตามข้อมูลประจำตัว (IAM) ช่วยให้คุณสามารถให้สิทธิ์ได้ด้วยวิธีต่อไปนี้ -
- แนบสิทธิ์ให้กับผู้ใช้หรือกลุ่ม
- แนบสิทธิ์กับบทบาทสำหรับการอนุญาตข้ามบัญชี
AWS อื่น ๆ อนุญาตให้ใช้นโยบายตามทรัพยากร นโยบายเหล่านี้อนุญาตให้เข้าถึงสิ่งต่างๆเช่นที่เก็บข้อมูล S3
องค์ประกอบนโยบาย
นโยบายกำหนดการกระทำผลกระทบทรัพยากรและหลักการ และให้สิทธิ์ในการดำเนินการเหล่านี้
Note - การดำเนินการ API อาจต้องการการอนุญาตสำหรับการดำเนินการหลายอย่าง
ดูองค์ประกอบนโยบายต่อไปนี้อย่างละเอียดยิ่งขึ้น -
Resource - ARN ระบุสิ่งนี้
Action - คำหลักระบุการดำเนินการทรัพยากรเหล่านี้และว่าจะอนุญาตหรือปฏิเสธ
Effect - ระบุเอฟเฟกต์สำหรับคำขอของผู้ใช้สำหรับการดำเนินการหมายถึงอนุญาตหรือปฏิเสธโดยมีการปฏิเสธเป็นค่าเริ่มต้น
Principal - เป็นการระบุผู้ใช้ที่แนบมากับนโยบาย
เงื่อนไข
ในการให้สิทธิ์คุณสามารถระบุเงื่อนไขเมื่อนโยบายเริ่มใช้งานได้เช่นในวันใดวันหนึ่ง แสดงเงื่อนไขด้วยคีย์เงื่อนไขซึ่งรวมถึงคีย์ AWS ทั้งระบบและคีย์ DynamoDB คีย์เหล่านี้จะกล่าวถึงโดยละเอียดในบทช่วยสอนในภายหลัง
สิทธิ์คอนโซล
ผู้ใช้ต้องการสิทธิ์พื้นฐานบางอย่างเพื่อใช้คอนโซล นอกจากนี้ยังต้องการสิทธิ์สำหรับคอนโซลในบริการมาตรฐานอื่น ๆ -
- CloudWatch
- ท่อส่งข้อมูล
- การจัดการข้อมูลประจำตัวและการเข้าถึง
- บริการแจ้งเตือน
- Lambda
หากนโยบาย IAM พิสูจน์ได้ว่า จำกัด เกินไปผู้ใช้จะไม่สามารถใช้คอนโซลได้อย่างมีประสิทธิภาพ นอกจากนี้คุณไม่จำเป็นต้องกังวลเกี่ยวกับสิทธิ์ของผู้ใช้สำหรับผู้ที่เรียกใช้ CLI หรือ API เท่านั้น
นโยบาย Iam สำหรับการใช้งานทั่วไป
AWS ครอบคลุมการดำเนินการทั่วไปในสิทธิ์ด้วยนโยบายที่มีการจัดการ IAM แบบสแตนด์อโลน พวกเขาให้การอนุญาตที่สำคัญซึ่งช่วยให้คุณหลีกเลี่ยงการตรวจสอบสิ่งที่คุณต้องให้อย่างลึกซึ้ง
บางส่วนมีดังนี้ -
AmazonDynamoDBReadOnlyAccess - ให้การเข้าถึงแบบอ่านอย่างเดียวผ่านคอนโซล
AmazonDynamoDBFullAccess - ให้การเข้าถึงเต็มรูปแบบผ่านคอนโซล
AmazonDynamoDBFullAccesswithDataPipeline - ให้การเข้าถึงเต็มรูปแบบผ่านคอนโซลและอนุญาตให้ส่งออก / นำเข้าด้วย Data Pipeline
คุณยังสามารถกำหนดนโยบายที่กำหนดเองได้
การให้สิทธิพิเศษ: การใช้เชลล์
คุณสามารถให้สิทธิ์โดยใช้เชลล์ Javascript โปรแกรมต่อไปนี้แสดงนโยบายการอนุญาตโดยทั่วไป -
{
"Version": "2016-05-22",
"Statement": [
{
"Sid": "DescribeQueryScanToolsTable",
"Effect": "Deny",
"Action": [
"dynamodb:DescribeTable",
"dynamodb:Query",
"dynamodb:Scan"
],
"Resource": "arn:aws:dynamodb:us-west-2:account-id:table/Tools"
}
]
}
คุณสามารถตรวจสอบสามตัวอย่างดังต่อไปนี้ -
Block the user from executing any table action.
{
"Version": "2016-05-23",
"Statement": [
{
"Sid": "AllAPIActionsOnTools",
"Effect": "Deny",
"Action": "dynamodb:*",
"Resource": "arn:aws:dynamodb:us-west-2:155556789012:table/Tools"
}
]
}
Block access to a table and its indices.
{
"Version": "2016-05-23",
"Statement": [
{
"Sid": "AccessAllIndexesOnTools",
"Effect": "Deny",
"Action": [
"dynamodb:*"
],
"Resource": [
"arn:aws:dynamodb:us-west-2:155556789012:table/Tools",
"arn:aws:dynamodb:us-west-2:155556789012:table/Tools/index/*"
]
}
]
}
Block a user from making a reserved capacity offering purchase.
{
"Version": "2016-05-23",
"Statement": [
{
"Sid": "BlockReservedCapacityPurchases",
"Effect": "Deny",
"Action": "dynamodb:PurchaseReservedCapacityOfferings",
"Resource": "arn:aws:dynamodb:us-west-2:155556789012:*"
}
]
}
การให้สิทธิพิเศษ: การใช้ GUI Console
คุณยังสามารถใช้คอนโซล GUI เพื่อสร้างนโยบาย IAM เริ่มต้นด้วยการเลือกTablesจากบานหน้าต่างนำทาง ในรายการตารางให้เลือกตารางเป้าหมายและทำตามขั้นตอนเหล่านี้
Step 1 - เลือกไฟล์ Access control แท็บ
Step 2- เลือกผู้ให้บริการข้อมูลประจำตัวการกระทำและคุณลักษณะนโยบาย เลือกCreate policy หลังจากเข้าสู่การตั้งค่าทั้งหมด
Step 3 - เลือก Attach policy instructionsและทำตามขั้นตอนที่จำเป็นแต่ละขั้นตอนเพื่อเชื่อมโยงนโยบายกับบทบาท IAM ที่เหมาะสม