AWS IAM을 사용하여 모바일 앱의 임시 토큰을 생성하려고합니다. AWS C# SDK를 사용하고 있습니다.간단한 DB 정책이 무시됩니까?
여기 내 코드의 ...
토큰 생성 서비스
public string GetIAMKey(string deviceId)
{
//fetch IAM key...
var credentials = new BasicAWSCredentials("MyKey", "MyAccessId");
var sts = new AmazonSecurityTokenServiceClient(credentials);
var tokenRequest = new GetFederationTokenRequest();
tokenRequest.Name = deviceId;
tokenRequest.Policy = File.ReadAllText(HostingEnvironment.MapPath("~/policy.txt"));
tokenRequest.DurationSeconds = 129600;
var tokenResult = sts.GetFederationToken(tokenRequest);
var details = new IAMDetails { SessionToken = tokenResult.GetFederationTokenResult.Credentials.SessionToken, AccessKeyId = tokenResult.GetFederationTokenResult.Credentials.AccessKeyId, SecretAccessKey = tokenResult.GetFederationTokenResult.Credentials.SecretAccessKey, };
return JsonConvert.SerializeObject(details);
}
클라이언트
var iamkey = Storage.LoadPersistent<IAMDetails>("iamkey");
var simpleDBClient = new AmazonSimpleDBClient(iamkey.AccessKeyId, iamkey.SecretAccessKey, iamkey.SessionToken);
try
{
var details = await simpleDBClient.SelectAsync(new SelectRequest { SelectExpression = "select * from mydomain" });
return null;
}
catch (Exception ex)
{
Storage.ClearPersistent("iamkey");
}
정책 파일의 내용
{ "명령문": "허용", "조치": "sdb : *", "자원": "arn : aws : sdb : eu-west-1 : * : 도메인/사용자 도메인 * "}]}
나는 다음과 같은 오류가 ...
사용자 (: AWS : STS :: myaccountid : ARN을 연합 사용자/654321)을 계속 수행 할 수있는 권한이 없습니다 (sdb : 선택) 리소스 (arn : aws : sdb : us-east-1 : myaccountid : domain/mydomain)
내 정책 f ILE은 분명히 두 가지
를 지정- 지역이어야한다 유럽 연합 (EU) - 서 - 1
- 허용 조치가 즉, 모든
그러나 예외 던진 주장을 허용하는 와일드 카드입니다 내 사용자는 미국 동부-1
에 권한이 없습니다 나는 왜이 오류가 발생하는지에 대한 아이디어를 가지고 있습니까?