Puncte:1

„Accesul la km nu este permis” eroare returnată la încercarea de a prelua secretul de la AWS Secrets Manager

drapel ae

Un utilizator IAM din contul nostru aws încearcă să preia un anumit secret de la Secrets Manager prin aws cli, dar nu poate face asta, deși ar trebui să aibă permisiuni necesare:

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

Acest lucru eșuează cu eroare accesul la km nu este permis. Folosim DefaultEncryptionKey pentru criptarea secretului și a politicii de cheie (gestionată de AWS) mi se pare sensibil:

    "Afirmație": [
    {
        „Sid”: „Permiteți accesul prin AWS Secrets Manager pentru toți directorii din cont care sunt autorizați să utilizeze AWS Secrets Manager”,
        „Efect”: „Permite”,
        „Principal”: {
            "AWS": "*"
        },
        "Acțiune": [
            "kms:Encrypt",
            "kms:Decriptare",
            "kms:ReEncrypt*",
            "kms:CreateGrant",
            „kms:DescribeKey”
        ],
        „Resurse”: „*”,
        "Condiție": {
            „StringEquals”: ​​{
                "kms:CallerAccount": "<EXPURAT>",
                "kms:ViaService": "secretsmanager.eu-west-1.amazonaws.com"
            }
        }
    },
    {
        „Sid”: „Permiteți accesul prin AWS Secrets Manager pentru toți directorii din cont care sunt autorizați să utilizeze AWS Secrets Manager”,
        „Efect”: „Permite”,
        „Principal”: {
            "AWS": "*"
        },
        „Acțiune”: „kms:GenerateDataKey*”,
        „Resurse”: „*”,
        "Condiție": {
            „StringEquals”: ​​{
                "kms:CallerAccount": "<redactat>"
            },
            „StringLike”: {
                "kms:ViaService": "secretsmanager.*.amazonaws.com"
            }
        }
    }

În Permisiuni pentru cheia KMS ei spun că ai nevoie

  • kms:GenerateDataKey
  • kms:Decriptare

Acestea sunt furnizate de politica cheie.

Utilizatorul a atașat o politică IAM pentru a le acorda permisiuni pentru Secrets Manager prin API, așa cum este descris aici: https://curiousprogrammer.net/posts/2022-02-16-aws-secrets-manager-least-privilege#_2_create_the_iam_policy

Am căutat în Cloudtrail și nu am găsit nimic util, doar un mesaj de „eroare necunoscută”:

"eventSource": "secretsmanager.amazonaws.com",
"eventName": "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": "Eșec intern",
"errorMessage": "A apărut o eroare necunoscută",
„requestParameters”: {
  "secretId": "config/my/secret"
},

Cum îmi pot da seama ce se întâmplă și ce permisiuni suplimentare sunt necesare?

Tim avatar
drapel gp
Tim
Aș da temporar utilizatorului permisiuni complete KMS pentru a vedea dacă asta ajută, dacă verifică CloudTrail pentru apelurile API utilizate sau doar adăuga apelurile probabile unul câte unul. Verificați și politica cheii KMS.
drapel ae
Mulțumesc pentru indicație! Acum bănuiesc că este o problemă în modul în care aplicăm MFA pentru utilizatorii IAM.
Puncte:1
drapel ae

Acest lucru a fost cauzat de noi Aplicați politica MFA Această parte în special:

{
        „Sid”: „DenyAllExceptListedIfNoMFA”,
        „Efect”: „Nega”,
        „NotAction”: [
            „iam:CreateVirtualMFADevice”,
            „iam:EnableMFADevice”,
            „iam:GetUser”,
            „iam:ListMFADevices”,
            „iam:ListVirtualMFADevices”,
            „iam:ResyncMFADevice”,
            „sts:GetSessionToken”
        ],
        „Resurse”: „*”,
        "Condiție": {
            "BoolIfExists": {"aws:MultiFactorAuthPresent": "false"}
        }
    }

Deoarece aws cli nu utilizează în mod normal MFA, politica a fost aplicată, iar regula „Refuză” a înlocuit permisiunile de funcționare menționate în politica de cheie.

Soluția a fost să folosești token-uri temporare de sesiune: 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

Am vorbit mai multe despre asta pe blogul meu: https://curiousprogrammer.net/posts/2022-02-16-aws-secrets-manager-least-privilege#_update_2022_02_22_the_perils_of_mfa

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.