2015-02-03 2 views
15

I criteri IAM sono animali complicati. Sarebbe bello aggiungere un commento quando li realizzi. Ad esempio,Come si aggiunge un commento a un criterio JSON IAM?

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Sid": "Stmt1422979261000", 
     "Effect": "Allow", 
     "Action": [ 
     "route53:ListHostedZones", 
     ], 
     "Comment": "Foo" 
     # or Bar 
     "Resource": [ 
     "*" 
     ] 
    } 
    ] 
} 

Nessuno di questi lavori. Esiste un modo per aggiungere commenti a queste politiche?

risposta

7

No. In generale, i commenti come li descrivono are not allowed in JSON. Per creare efficacemente un commento, è necessario consentire un nuovo elemento che descrive i commenti. Dal momento che AWS è il maestro di questo oggetto JSON, sarebbe responsabile di consentire questo.

Che attualmente only allow the following elements:

  • Versione
  • Id
  • Dichiarazione
  • Sid
  • Effetto
  • Principal
  • NotPrincipal
  • Azione
  • NotAction
  • Resource
  • NotResource
  • Condizione
+0

Grazie per i collegamenti. Ero consapevole del fatto che JSON in generale non supporta i commenti, ma è bello sapere che nemmeno i campi ad-hoc sono permessi. – seanmcl

17

Hyper del answer Anthony è corretta nel senso stretto di 'commento' - tuttavia, nella maggior parte dei casi si può almeno usare il Sid per pseudo commenti per comunicare l'intento o eventuali vincoli ecc .:

The Sid (conto ID) è un identificativo opzionale che fornisci per la dichiarazione di politica. È possibile assegnare un valore Sid a ciascuna istruzione in un array di istruzioni. Nei servizi che consentono di specificare un elemento ID, come SQS e SNS, il valore Sid è solo un sub-ID dell'ID del documento della politica. In IAM, il valore Sid deve essere univoco all'interno di una politica. [emphasis mine]

Questo è per es. esemplificata dall'utilizzo di TheseActionsSupportResourceLevelPermissions all'interno del (molto utile) AWS post sul blog Demystifying EC2 Resource-Level Permissions:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "TheseActionsSupportResourceLevelPermissions", 
      "Effect": "Allow", 
      "Action": [ 
       "ec2:RunInstances", 
       "ec2:TerminateInstances", 
       "ec2:StopInstances", 
       "ec2:StartInstances" 
      ], 
      "Resource": "arn:aws:ec2:us-east-1:accountid:instance/*" 
     } 
    ] 
} 
  • Come menzionato in Sid alcuni servizi potrebbero richiedere questo elemento e che hanno i requisiti di unicità per lo, ma io non ho esperienza con i vincoli di denominazione risultanti.
+0

Grazie per il link! Volevo aggiungere un commento sulla natura "Ho provato questa cosa che sembra che dovrebbe funzionare ovviamente, ma non è così, non ho il tempo di capire perché, quindi sto usando *". Usare Sid per documenti di alto livello è comunque una buona idea. Grazie. – seanmcl

+0

Sono venuto qui quando ho cercato di scoprire se è possibile. Chiunque lo provi e si imbatte in problemi, si prega di commentare qui. – Shorn

+1

Sono anche venuto qui cercando di scoprire come commentare una politica IAM. Come dovrei ricordare in 6 mesi a chi si riferisce il codice principale di AWS? Come dovrebbe sapere il mio team? Sarebbe davvero di grande aiuto se AWS supportasse un campo "nome di visualizzazione" e "descrizione" per queste istruzioni politiche. – LisaD