Score:1

ข้อผิดพลาด "ไม่อนุญาตให้เข้าถึง kms" ส่งคืนเมื่อพยายามดึงข้อมูลลับจาก AWS Secrets Manager

ธง ae

ผู้ใช้ 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/ของฉัน/ความลับ"
},

ฉันจะทราบได้อย่างไรว่าเกิดอะไรขึ้นและต้องการสิทธิ์เพิ่มเติมใดบ้าง

Tim avatar
gp flag
Tim
ฉันจะให้สิทธิ์ KMS แก่ผู้ใช้ทั้งหมดเป็นการชั่วคราวเพื่อดูว่าจะช่วยได้หรือไม่ หากตรวจสอบ CloudTrail สำหรับการเรียก API ที่ใช้ หรือเพียงแค่เพิ่มการเรียกที่เป็นไปได้ทีละรายการ ตรวจสอบนโยบายคีย์ KMS ด้วย
ae flag
ขอบคุณสำหรับตัวชี้! ตอนนี้ฉันสงสัยว่ามันเป็นปัญหาในการบังคับใช้ MFA สำหรับผู้ใช้ IAM
Score:1
ธง ae

เหตุเกิดจากเรา บังคับใช้นโยบาย MFA ส่วนนี้โดยเฉพาะ:

{
        "ซิด": "DenyAllExceptListedIfNoMFA",
        "ผล": "ปฏิเสธ",
        "ไม่ดำเนินการ": [
            "iam:CreateVirtualMFADevice",
            "เอี่ยม:เปิดใช้งาน MFADevice",
            "เอี่ยม:GetUser",
            "iam:ListMFADevices",
            "iam:ListVirtualMFFADevices",
            "เอี่ยม:ResyncMFADevice",
            "sts:GetSessionToken"
        ]
        "ทรัพยากร": "*",
        "เงื่อนไข": {
            "BoolIfExists": {"aws:MultiFactorAuthPresent": "false"}
        }
    }

เนื่องจากโดยปกติแล้ว aws cli ไม่ได้ใช้ MFA นโยบายจึงถูกนำมาใช้และกฎ "ปฏิเสธ" จะลบล้างสิทธิ์การทำงานอื่นๆ ที่ระบุไว้ในนโยบายคีย์

วิธีแก้ไขคือใช้โทเค็นเซสชันชั่วคราว: https://aws.amazon.com/premiumsupport/knowledge-center/authenticate-mfa-cli/

$ aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code รหัสจากโทเค็น

ฉันได้พูดคุยเกี่ยวกับเรื่องนี้เพิ่มเติมในบล็อกของฉัน: https://curiousprogrammer.net/posts/2022-02-16-aws-secrets-manager-least-privilege#_update_2022_02_22_the_perils_of_mfa

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา