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?