C# 我应该如何使用IAM角色访问C中的S3#
我在尝试使用IAM角色访问C#中的S3时遇到了一个问题。下面是我所做的步骤C# 我应该如何使用IAM角色访问C中的S3#,c#,amazon-s3,amazon-iam,roles,C#,Amazon S3,Amazon Iam,Roles,我在尝试使用IAM角色访问C#中的S3时遇到了一个问题。下面是我所做的步骤 创建STS AssumeRole策略: { “版本”:“2012-10-17”, “声明”:[ { “Sid”:“VisualEditor0”, “效果”:“允许”, “行动”:“sts:假设角色”, “资源”:“arn:aws:iam::761612772509:role/S3TestRole”, “条件”:{ “StringEquals”:{ “aws:RequestedRegion”:“ap-northeast-1
我的区域位于ap-northeast-1,当执行assumeRoleResult方法时,我总是得到“请求中包含的安全令牌无效”。InnerException是“远程服务器返回错误:(403)禁止”。错误。我可以知道我的配置或代码有什么问题吗?提前感谢您的帮助 确保该区域的STS已激活。请参见此处:是的,我激活了此区域中的STS,并在策略中添加了一个区域请求条件。但错误似乎仍然存在…请确保该区域的STS已激活。请参见此处:是的,我激活了此区域中的STS,并在策略中添加了一个区域请求条件。但似乎错误仍然存在。。。
try
{
AssumeRoleRequest assumeRequest = new AssumeRoleRequest
{
RoleArn = "arn:aws:iam::761612772509:role/S3TestRole",
DurationSeconds = 3600,
Policy = "{\"Version\": \"2012-10-17\",\"Statement\": [{\"Sid\": \"VisualEditor0\",\"Effect\": \"Allow\",\"Action\": \"sts:AssumeRole\",\"Resource\": \"arn:aws:iam::761612772509:role/S3TestRole\",\"Condition\": {\"StringEquals\": {\"aws:RequestedRegion\": \"ap-northeast-1\"}}}]}",
};
AssumeRoleResult assumeRoleResult = new AmazonSecurityTokenServiceClient(RegionEndpoint.APNortheast1).AssumeRole(assumeRequest);
AWSCredentials tempCredentials = new SessionAWSCredentials(
assumeRoleResult.Credentials.AccessKeyId,
assumeRoleResult.Credentials.SecretAccessKey,
assumeRoleResult.Credentials.SessionToken);
s3Client = new AmazonS3Client(tempCredentials);
}
catch (Exception ex)
{
throw ex;
}