Điểm:1

Lỗi "không được phép truy cập km" được trả về khi cố tìm nạp bí mật từ AWS Secrets Manager

lá cờ ae

Một người dùng IAM trong tài khoản aws của chúng tôi đang cố tìm nạp một bí mật cụ thể từ Trình quản lý bí mật thông qua aws cli nhưng họ không thể làm điều đó mặc dù lẽ ra họ phải có quyền:

aws secretmanager get-secret-value --secret-id "config/my/secret"

Điều này không thành công với lỗi truy cập vào km không được phép. Chúng tôi sử dụng Mặc địnhMã hóaKhóa để mã hóa bí mật và chính sách khóa (do AWS quản lý) có vẻ hợp lý đối với tôi:

    "Bản tường trình": [
    {
        "Sid": "Cho phép truy cập thông qua AWS Secrets Manager đối với tất cả chủ sở hữu trong tài khoản được phép sử dụng AWS Secrets Manager",
        "Hiệu ứng": "Cho phép",
        "Hiệu trưởng": {
            "AWS": "*"
        },
        "Hoạt động": [
            "kms:Mã hóa",
            "kms:Giải mã",
            "kms:Mã hóa lại*",
            "kms:CreateGrant",
            "kms:DescribeKey"
        ],
        "Nguồn": "*",
        "Điều kiện, tình trạng, trạng thái": {
            "StringEquals": {
                "kms:CallerAccount": "<BẢO MẬT>",
                "kms:ViaService": "secretsmanager.eu-west-1.amazonaws.com"
            }
        }
    },
    {
        "Sid": "Cho phép truy cập thông qua AWS Secrets Manager đối với tất cả chủ sở hữu trong tài khoản được phép sử dụng AWS Secrets Manager",
        "Hiệu ứng": "Cho phép",
        "Hiệu trưởng": {
            "AWS": "*"
        },
        "Hành động": "kms:GenerateDataKey*",
        "Nguồn": "*",
        "Điều kiện, tình trạng, trạng thái": {
            "StringEquals": {
                "kms:CallerAccount": "<đã biên tập lại>"
            },
            "StringLike": {
                "kms:ViaService": "secretsmanager.*.amazonaws.com"
            }
        }
    }

Trong Quyền đối với khóa KMS họ nói rằng bạn cần

  • kms:GenerateDataKey
  • km:Giải mã

Những thứ đó được cung cấp bởi chính sách chính.

Người dùng đã đính kèm chính sách IAM để cấp cho họ quyền đối với Trình quản lý bí mật thông qua API như được mô tả tại đây: https://curiousprogrammer.net/posts/2022-02-16-aws-secrets-manager-least-privilege#_2_create_the_iam_policy

Tôi đã xem trên Cloudtrail và không tìm thấy thông tin hữu ích nào, chỉ có thông báo "lỗi không xác định":

"nguồn sự kiện": "secretsmanager.amazonaws.com",
"tên sự kiện": "GetSecretValue",
"awsRegion": "eu-tây-1",
"userAgent": "aws-cli/2.4.18 Python/3.9.10 Darwin/21.2.0 source/arm64 nhắc/lệnh tắt/secretsmanager.get-secret-value",
"Mã lỗi": "Lỗi nội bộ",
"errorMessage": "Đã xảy ra lỗi không xác định",
"requestParameter": {
  "secretId": "config/của tôi/bí mật"
},

Làm cách nào tôi có thể biết chuyện gì đang xảy ra và những quyền bổ sung nào là cần thiết?

Tim avatar
lá cờ gp
Tim
Tôi sẽ tạm thời cung cấp cho người dùng đầy đủ quyền KMS để xem điều đó có hữu ích hay không, nếu nó kiểm tra CloudTrail để tìm các lệnh gọi API được sử dụng hay chỉ thêm từng lệnh gọi có khả năng xảy ra. Ngoài ra, hãy kiểm tra chính sách khóa KMS.
lá cờ ae
Cảm ơn con trỏ! Bây giờ tôi nghi ngờ đó là vấn đề trong cách chúng tôi thực thi MFA cho người dùng IAM.
Điểm:1
lá cờ ae

Điều này được gây ra bởi chúng tôi Thực thi chính sách MFA Phần này nói riêng:

{
        "Sid": "DenyAllExceptListedIfNoMFA",
        "Hiệu ứng": "Từ chối",
        "Không hành động": [
            "iam:Tạo thiết bị ảoMFA",
            "iam:EnableMFADevice",
            "iam:GetUser",
            "iam:ListMFADevices",
            "iam:ListVirtualMFADevices",
            "iam:ResyncMFADevice",
            "sts:GetSessionToken"
        ],
        "Nguồn": "*",
        "Điều kiện, tình trạng, trạng thái": {
            "BoolIfExists": {"aws:MultiFactorAuthPresent": "false"}
        }
    }

Vì aws cli thường không sử dụng MFA nên chính sách này đã được áp dụng và quy tắc "Từ chối" sẽ ghi đè các quyền hoạt động khác được nêu trong chính sách Khóa.

Giải pháp là sử dụng mã thông báo phiên tạm thời: https://aws.amazon.com/premiumsupport/knowledge-center/authenticate-mfa-cli/

$ aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token

Tôi đã nói nhiều hơn về điều này trên blog của mình: https://curiousprogrammer.net/posts/2022-02-16-aws-secrets-manager-least-privilege#_update_2022_02_22_the_perils_of_mfa

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.