如何从aws策略文档中删除不可读字符?



当我得到GetRolePolicyResponse.PolicyDocument。它是不可读的字符。如何将其转换为可读字符。

var inlinePolicyDetails = iamClient.GetRolePolicyAsync(new GetRolePolicyRequest
{
RoleName = "xyzRole",
PolicyName = "xyzPolicy"
}).GetAwaiter().GetResult();
Console.WriteLine(inlinePolicyDetails.PolicyDocument);

输出如下所示:

%7B%0A%20%20%20%20%22Version%22%3A%20%222012-10-17%22%2C%0A%20%20%20%20%22Statement%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Action%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22XYZ%3AABCD%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Effect%22%3A%20%22Allow%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Resource%22%3A%20%22%2A%22%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%5D%0A%7D

应该是这样的:

{"Version"2012 - 10 - 17","Statement"({"Sid"VisualEditor0"Effect"Allow"Action"("XYZ: ABCD"],"Resource"*";}]}

政策文件基本上是UrlEncoded的因此它所有的特殊字符都是url编码的因此你需要解码使其可读的文本

var inlinePolicyDetails = iamClient.GetRolePolicyAsync(new GetRolePolicyRequest
{
RoleName = "xyzRole",
PolicyName = "xyzPolicy"
}).GetAwaiter().GetResult();
Console.WriteLine(inlinePolicyDetails.PolicyDocument);

Console.WriteLine(HttpUtility.UrlDecode(inlinePolicyDetails.PolicyDocument));

详细信息:https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/iam-policies-display.html

相关内容

  • 没有找到相关文章

最新更新