Es una pregunta sobre la política de AWS IAM, múltiples acciones con múltiples recursos (presumiblemente no relacionadas). Tengo el parámetro 'myparam' encriptado con 'mykey', y tengo una política como los siguientes bloques separados, uno para parámetro y otro para clave, funciona.
{ { "Action": [ "ssm:GetParameter", ], "Effect": "Allow", "Resource": "MY-ARN:MY-ACC:parameter/myparam" }, { "Action": [ "kms:Decrypt" ], "Effect": "Allow", "Resource": "MY-ARN:MY-ACC::key/mykey" } }Según la documentación, podemos combinar múltiples acciones y recursos, si combino lo mismo que a continuación, ¿funciona?
{ { "Action": [ "ssm:GetParameter", "kms:Decrypt" ], "Resource": [ "MY-ARN:MY-ACC:parameter/myparam" "MY-ARN:MY-ACC::key/mykey" ], "Effect": "Allow" } }¿Cómo ocurre la asignación de acciones a recursos en este caso? No pude encontrar ninguna documentación sobre esto https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_action.html Si tengo recursos asociados o Actiosn asociado, entonces tiene sentido, ¿cuáles son sus comentarios sobre esto?
Si combino lo mismo que a continuación, ¿funciona esto?
Sí lo hace.
Para verificar que recreé su escenario con mykey y myparam y una política en línea agregada a un rol de ejecución de una prueba lambda.
De hecho, cuando utiliza la consola de IAM para crear tales permisos, la política json en línea creada tendrá la segunda forma , no la primera:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "kms:Decrypt", "ssm:GetParameter" ], "Resource": [ "arn:aws:kms:*:xxx:key/e15f691e-5dde-473c-8f24-3af45994aeaf", "arn:aws:ssm:*:xxx:parameter/myparam" ] } ] } Además, el orden de los elementos en Actons to Resources es irrelevante. Por lo tanto, también puede tener (orden de acción diferente):
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "ssm:GetParameter", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:*:xxx:key/e15f691e-5dde-473c-8f24-3af45994aeaf", "arn:aws:ssm:*:xxx:parameter/myparam" ] } ] }Esto significa que IAM probará las acciones en los recursos solo si un recurso determinado las admite .
Se suele preferir la primera forma, ya que es más fácil de leer y administrar. Si pone todo en una declaración, es difícil nombrar tal declaración, editarla y depurarla.