Cloudformation how to reference Managed-Policy from another stack

There's now a supported way to do this, using Imports/Exports. Basically, the stack that creates the policy has an output that contains the policy name (or ARN, not sure which is needed in this case), and declares it as an export with a regionally-unique name. Then, other stacks can consume it using the Import function.

For example, if the following stack (let's say it's named FooStack) creates the managed policy, it can have the following in its output:

"Outputs" : {
    "MyManagedPolicy" : {
        "Value" : { "Ref" : "MyManagedPolicy" },
        "Export" : { "Name" : {"Fn::Sub": "${AWS::StackName}-MyManagedPolicy" }}
    }
}

The other stack can use it:

"Policies": [
    { "Fn::ImportValue" : "FooStack-MyManagedPolicy" }
]