ผู้ใช้ IAM ในบัญชี aws ของเราพยายามดึงข้อมูลลับเฉพาะจาก Secrets Manager ผ่าน aws cli แต่พวกเขาไม่สามารถทำเช่นนั้นได้ ทั้งๆ ที่ควรจะมีสิทธิ์ที่จำเป็น:
aws secretsmanager get-secret-value --secret-id "config/my/secret"
สิ่งนี้ล้มเหลวโดยมีข้อผิดพลาด ไม่อนุญาตให้เข้าถึงกม.
เราใช้ DefaultEncryptionKey สำหรับการเข้ารหัสความลับและนโยบายคีย์ (จัดการโดย AWS) ดูสมเหตุสมผลสำหรับฉัน:
"คำแถลง": [
{
"Sid": "อนุญาตการเข้าถึงผ่าน AWS Secrets Manager สำหรับผู้ว่าจ้างทั้งหมดในบัญชีที่ได้รับอนุญาตให้ใช้ AWS Secrets Manager",
"ผล": "อนุญาต",
"อาจารย์ใหญ่": {
"AWS": "*"
},
"หนังบู๊": [
"kms: เข้ารหัส",
"kms:ถอดรหัส",
"kms:เข้ารหัสใหม่*",
"kms:CreateGrant",
"kms:DescribeKey"
]
"ทรัพยากร": "*",
"เงื่อนไข": {
"StringEquals": {
"kms:CallerAccount": "<ข้อมูลปกปิด>",
"kms:ViaService": "secretsmanager.eu-west-1.amazonaws.com"
}
}
},
{
"Sid": "อนุญาตการเข้าถึงผ่าน AWS Secrets Manager สำหรับผู้ว่าจ้างทั้งหมดในบัญชีที่ได้รับอนุญาตให้ใช้ AWS Secrets Manager",
"ผล": "อนุญาต",
"อาจารย์ใหญ่": {
"AWS": "*"
},
"การดำเนินการ": "kms:GenerateDataKey*",
"ทรัพยากร": "*",
"เงื่อนไข": {
"StringEquals": {
"kms:CallerAccount": "<แก้ไขแล้ว>"
},
"StringLike": {
"kms:ViaService": "secretsmanager.*.amazonaws.com"
}
}
}
ใน สิทธิ์สำหรับคีย์ KMS พวกเขาบอกว่าคุณต้องการ
- kms:สร้างคีย์ข้อมูล
- kms:ถอดรหัส
สิ่งเหล่านี้จัดทำโดยนโยบายหลัก
ผู้ใช้ได้แนบนโยบาย IAM เพื่อให้สิทธิ์แก่ Secrets Manager ผ่าน API ตามที่อธิบายไว้ที่นี่: https://curiousprogrammer.net/posts/2022-02-16-aws-secrets-manager-least-privilege#_2_create_the_iam_policy
ฉันดูใน Cloudtrail และไม่พบสิ่งใดที่เป็นประโยชน์ มีเพียงข้อความ "ข้อผิดพลาดที่ไม่รู้จัก":
"eventSource": "secretsmanager.amazonaws.com",
"ชื่อเหตุการณ์": "GetSecretValue",
"awsRegion": "eu-west-1",
"userAgent": "aws-cli/2.4.18 Python/3.9.10 Darwin/21.2.0 source/arm64 prompt/off command/secretsmanager.get-secret-value",
"errorCode": "ความล้มเหลวภายใน",
"errorMessage": "เกิดข้อผิดพลาดที่ไม่รู้จัก",
"requestParameters": {
"secretId": "config/ของฉัน/ความลับ"
},
ฉันจะทราบได้อย่างไรว่าเกิดอะไรขึ้นและต้องการสิทธิ์เพิ่มเติมใดบ้าง