

이제 Xamarin용 AWS Mobile SDK가에 포함됩니다 AWS SDK for .NET. 이 안내서에서는 Xamarin용 모바일 SDK의 아카이브된 버전을 참조합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 문제 해결
<a name="troubleshooting-xamarin"></a>

이 주제에서는 .NET 및 Xamarin용 AWS Mobile SDK를 사용할 때 발생할 수 있는 문제를 해결하기 위한 몇 가지 아이디어를 설명합니다.

## IAM 역할에 필요한 권한이 있는지 확인
<a name="ensure-iam-role-has-required-permissions"></a>

AWS 서비스를 호출할 때 앱은 Cognito 자격 증명 풀의 자격 증명을 사용해야 합니다. 풀의 각 자격 증명은 IAM(자격 증명 및 액세스 관리) 역할과 연결되어 있습니다.

역할은 해당 역할에 할당된 사용자가 액세스할 수 있는 AWS 리소스를 지정하는 하나 이상의 정책 파일이 연결되어 있습니다. 기본적으로 자격 증명 풀당 인증된 사용자 및 인증되지 않은 사용자에 대해 하나씩 2개의 역할이 생성됩니다.

기존 정책 파일을 수정하거나 새 정책 파일을 앱이 요구하는 권한과 연결해야 합니다. 앱이 인증된 사용자와 인증되지 않은 사용자를 모두 허용할 경우 두 역할 모두 앱에서 필요한 AWS 리소스에 액세스할 수 있는 권한이 부여되어야 합니다.

다음 정책 파일은 S3 버킷에 대한 액세스 권한을 부여하는 방법을 보여줍니다.

```
{
   "Statement":[
      {
         "Action":[
            "s3:AbortMultipartUpload",
            "s3:DeleteObject",
            "s3:GetObject",
            "s3:PutObject"
         ],
         "Effect":"Allow",
         "Resource":"arn:aws:s3:::MYBUCKETNAME/*",
         "Principal":"*"
      }
   ]
}
```

다음 정책 파일은 DynamoDB 데이터베이스에 대한 액세스 권한을 부여하는 방법을 보여줍니다.

```
{
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "dynamodb:DeleteItem",
            "dynamodb:GetItem",
            "dynamodb:PutItem",
            "dynamodb:Scan",
            "dynamodb:UpdateItem"
         ],
         "Resource":"arn:aws:dynamodb:us-west-2:123456789012:table/MyTable"
      }
   ]
}
```

정책 지정에 대한 자세한 내용은 [IAM 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html)을 참조하세요.

## HTTP 프록시 디버거 사용
<a name="using-a-http-proxy-debugger"></a>

앱이 호출하는 AWS 서비스에 HTTP 또는 HTTPS 엔드포인트가 있는 경우 HTTP/HTTPS 프록시 디버거를 사용하여 요청 및 응답을 보며 상황을 파악할 수 있습니다. 다음과 같이 다수의 HTTP 프록시 디버거를 사용할 수 있습니다.
+  [Charles](http://www.charlesproxy.com/) - Windows 및 OSX용 웹 디버깅 프록시
+  [Fiddler](http://www.telerik.com/fiddler) - Windows용 웹 디버깅 프록시

Charles와 Fiddler 모두 SSL 암호화된 트래픽을 볼 수 있도록 약간의 구성이 필요합니다. 자세한 내용은 해당 도구의 설명서를 참조하세요. 암호화된 트래픽을 표시하도록 구성할 수 없는 웹 디버깅 프록시를 사용하는 경우 aws\$1endpoints\$1json 파일을 열고 디버깅해야 하는 AWS 서비스의 HTTP 태그를 true로 설정합니다.