2017-11-23 5 views
-1

S3를 사용하여 백업을 저장하고 있습니다. 나는 aws s3과 cron을 통해 이것을하고있다.간단하고 기본적인 작업을 위해 S3 버킷에 ACL을 설정하는 방법

내 버킷이 공개 된 순간입니다.

나는 CRUD + ListAll 작업 만 수행 할 수있는 방식으로 ACL을 설정하려고합니다. 나는 그들의 문서를 읽었지만 너무 복잡한 반면에 간단한 것을 필요로한다. 어떻게해야합니까?

갱신 :

1) API를 통해 S3 버킷에 액세스 할 수 있어야합니다 내 VPS 서버에 내 bash는 스크립트; 아마도 IP에 의해 제한을가 있어야합니다

2)는 버킷이 또 다른 사람에 액세스 할 수 없습니다해야 어떤 장소, 어떤 IP

3)에서 웹 콘솔/S3 웹 사이트를 통해 나의 버킷해야

+0

원본 IP에서 버켓으로의 액세스를 제한하는 것이 좋습니다 (http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies). -use-case-3)을 사용하여 자격 증명을 사용하는 방법을 알아 냈습니다. 개인적으로, 나는 duplicati 같은 것을 사용하여 백업을 수행하는 것을 고려할 것이며,이 경우 필요한 IAM 자격 증명을 만드는 방법을 설명 할 것입니다. – jarmod

+0

@jarmod, ip로 제한을 만들면 S3 웹 사이트를 통해 어떤 위치에서든 내 버킷에 액세스 할 수 있습니까? API 액세스에만 ip로 제한됩니까? – Joddy

+0

정책에 Allow가 있고 IpAddress 조건이 있다고 표시되면 예 (물론 콘솔 사용자가 관련 S3 권한을 가지고 있다고 가정 할 때) AWS 콘솔의 다른 IP에서 버킷에 액세스 할 수 있습니다. 버킷 정책을 사용하면 집 IP에서 버킷에 액세스 할 수 있습니다. 다른 IP에서 AWS 콘솔을 사용하면 로그인 한 사용자와 연결된 정책에 따라 버킷에 액세스 할 수 있습니다. 귀하의 효과적인 정책은 두 정책의 최소 권한 조합입니다. 그러나 버킷 정책이 NotIpAddress 조건으로 거부 한 경우에는 수행 할 수 없습니다. – jarmod

답변

0

PUBLIC IP 주소 만 버킷에 액세스 할 수 있도록 S3 버킷 정책을 만들 수 있습니다.

다음은 정책의 예입니다. 버킷 이름을 버킷 이름으로 변경하십시오. 공용 IP 주소에 IP 주소를 변경 :

{ 
    "Version": "2012-10-17", 
    "Id": "S3PolicyId1", 
    "Statement": [ 
     { 
      "Sid": "statement1", 
      "Effect": "Allow", 
      "Principal": "*", 
      "Action":["s3:*"] , 
      "Resource": [ 
        "arn:aws:s3:::examplebucket",       
        "arn:aws:s3:::examplebucket/*"], 
      "Condition" : { 
       "IpAddress" : { 
        "aws:SourceIp": "192.168.143.0/32" 
       } 
      } 
     } 
    ] 
} 
  1. 열기 아마존 S3 콘솔을 https://console.aws.amazon.com/s3/에서.
  2. 위의 정책을 첨부 할 버킷을 선택하십시오.
  3. 권한을 선택하십시오.
  4. Edit Bucket Policy를 선택하십시오.
  5. 위의 정책을 Bucket Policy Editor 창에 복사하십시오.
  6. 버킷 정책의 값 (버킷 이름, IP 주소)을 대체하십시오.
  7. 저장 후 닫기를 선택하십시오.
+0

내가 IP로 제한을 만들면 S3 ** 웹 사이트 **를 통해 장소에서 내 버킷에 액세스 할 수 있습니까? API 액세스에만 ip로 제한됩니까? 다른 말로하면 '공개 IP 주소는 버킷에 액세스 할 수 있습니다.'-> 이는 API 액세스에만 적용됩니까? – Joddy

+0

귀하의 의견을 이해할 수 없습니다. 특정 IP 주소에만 액세스를 제한하는 S3 버킷 정책을 할당하면 해당 IP 주소 만 버킷에 액세스 할 수 있습니다. 예외는 IAM 사용자의 자격 증명이 액세스를 결정하는 API 기반 액세스입니다. –

+0

1) 내 VPS 서버의 my bash 스크립트는 API를 통해 S3 버킷에 액세스해야합니다. 아마 거기에 있어야합니다 ** 또한 ** IP에 의해 제한이 될 수 있습니다 2) ** 웹 콘솔/S3 웹 사이트 **를 통해 ** 모든 장소와 모든 IP **를 통해 내 양동이에 있어야합니다. 3) 버킷에 액세스해서는 안됩니다 아무도 다른 사람 – Joddy

0

AWS 명령 줄 도구 (awscli)를 사용하여 파일을 S3에 동기화합니다. 아마도 awscli에 자격 증명을 제공하고있을 것입니다 (매우 소수의 사람들이 awscli를 인증되지 않은 상태로 사용합니다).

인증을 받았다고 가정하면 S3 버킷을 공개로 설정 한 이유가 무엇입니까? 올바른 작업은 사용중인 자격 증명이 S3 버킷에 액세스 할 수있는 IAM 정책과 연결되어 있는지 확인하는 것입니다. 그런 다음 S3 버킷 정책을 제거하십시오. 어떤 이유로, 당신이 정말로 (일반적으로 좋은 생각) 인증없이 S3 버킷에 액세스 할 수있게하려면 않는 경우

당신은 에서 액세스 수준을 허용 applying a bucket policy에 의해 다소 안전한 일을 할 수 있습니다 귀하의 IP 주소.

희망이 도움이됩니다.

+0

thx. 내 요구 사항을 요약했습니다. 내 업데이트를 참조하십시오. – Joddy

관련 문제