---
# System prepended metadata

title: 5/18 Developing on AWS

---

# 5/18 Developing on AWS 

# Developing on AWS 실습 버그

## 질문을 남겨주세요

### 정책예제에서 NotResource를 쓰면 Resource 에서 허용한 것 말고는 모두 사용이 안되는건가요?
> 아까 전 케이스에서는 NotResource 를 Deny문과 사용 했기 때문에 그렇게 말씀하시는게 맞습니다. 즉, 일종의 이중 부정문이 되긴 한건데요.말로 풀어보자면 "지금 여기에 쓴 리소스가 아닐 경우에는(NOT resource) 접근 안됨(Deny)" 이니까, 풀어서 생각하면 나머지는 다 안된단 소리를 한번 더 한거죠. 이게 의미가 있는 이유는 나중에 의도적으로 일부 리소스만 허용하는 Allow문이 들어오더라도 DENY가 우선시 되기 때문에 명시적 거부문이 엄격하게 동작하는 것입니다. 

```jsonld=
{
  "Version": "2012-10-17",
  "Statement":[{
    "Effect":"Allow",
    "Action":["dynamodb:*","s3:*"],
    "Resource":["arn:aws:dynamodb:region:account-number-without-hyphens:table/pollynotes",
      "arn:aws:s3:::polly-notes-web",
      "arn:aws:s3:::polly-notes-mp3/*"] 
    },
    {
    "Effect":"Deny",
    "Action":["dynamodb:*","s3:*"],
    "NotResource":["arn:aws:dynamodb:region:account-number-without-hyphens:table/pollynotes",
      "arn:aws:s3:::polly-notes-web",
      "arn:aws:s3:::polly-notes-mp3/*"] 
    }
  ]
 }
```

### 파일 다운로드/업로드 기능도 동일하게 IAM에서 권한부여를 해야 기능동작이 가능한가요? 
> AWS 서비스인 S3에 접근하고자 할 때는 접근권한이 있어야 가능합니다.
> 


### 실습 2번을 진행 중 S3 콘솔 화면에서 버킷 별 접근 권한 컬럼에 ERROR라고 나오는 문제 
> 콘솔화면에서 에러가 나는 것은 각 버킷별 Access permission을 열람할 수 있는 권한이 아마 주어지지 않았을 것으로 보이는데요. 
> 정확히 해당 권한(== bucket별 permission)을 실습 환경에서 Deny시키진 않았을 것 같진 않고 아마 실습을 진행하기 위해 필요한 권한만 awsstudent 유저에게 할당하다보니(Allow) 허가되지 않은 권한 중에서 버킷의 접근 permission을 보여주는 기능이 같이 제외된 것으로 보입니다(명시적으로 Deny도 Allow도 하지 않으면 Deny). 그래서 실습에는 문제가 없는 것이라고 생각해주시면 좋겠습니다. 제가 실습 환경 유저의 권한을 확인할 수 있는지 찾아보고 확보가 되면 추가적으로 설명드리겠습니다. ^^



### previsioned 랑 on demand 자유롭게 변경 가능하다고 하셨는데 과금이 어떻게 산정되나요?
> 변경하시는 순간부터 비용책정이 선택하신 요금제로 책정됩니다. 자세한 비용에 대해서는 아래 링크를 참고해주세요. 
> [Provisioned](https://aws.amazon.com/ko/dynamodb/pricing/provisioned/)
> [On-demand](https://aws.amazon.com/ko/dynamodb/pricing/on-demand/)

### RCU WCU 횟수가 넘으면 익셉션이 난다고 하였는데 큐 같은 기능은 없나요?
> 네 말씀하신 것과 같은 DynamoDB 에서 제공하는 큐 기능은 따로 없습니다. ProvisionedThroughputExceeded exception이 발생하면 그 익셉션을 재시도 하는 방식으로 재처리하는 방법이 있습니다.  

### put할 때 버저닝 여부를 소스코드에서 선택할 수도 있나요?
가능합니다. 샘플 코드를 첨부합니다.
[.net](https://docs.aws.amazon.com/AmazonS3/latest/dev/manage-versioning-examples.html#manage-versioning-examples-dotnet)
[java](https://docs.aws.amazon.com/AmazonS3/latest/dev/manage-versioning-examples.html)


