2017-11-21 2 views
0

모든 사용자에 대한 액세스를 거부하고 특정 IAM 역할에 대한 액세스를 허용해야하는 S3 버킷이 하나 있습니다.AWS IAM에 s3 액세스

필자는 AWS에서 제공 한 문서를 따랐습니다. 사용자를 위해 할 수 있지만 역할을 수행하면 작동하지 않습니다. 아무도 도와 줄 수 있니?

https://aws.amazon.com/blogs/security/how-to-restrict-amazon-s3-bucket-access-to-a-specific-iam-role/

나는 람다 역할을 포함하여 모든 사용자에 대해 거부를 액세스의 원인이 policy.It S3 버킷에 다음 코드를 시도했다.

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Deny", 
      "Principal": "*", 
      "Action": "s3:*", 
      "Resource": [ 
       "arn:aws:s3:::relambda", 
       "arn:aws:s3:::relambda/*" 
      ], 
      "Condition": { 
       "StringNotLike": { 
        "aws:roleId": [ 
         "KDCNKWDCKQWCLQKC:*", 
         "5371235537537" 
        ] 
       } 
      } 
     } 

    ] 
} 

답변

0

너는 Principal에 아무것도 없습니다.

아래 정책을 참조하십시오/사용하십시오.

IAM 사용자는이 용도로 사용할 수있는 AIDA로 시작하는 고유 한 ID를 가지고 있습니다. 이 고유 ID를 찾으려면 다음을 수행하십시오.

AWS CLI가 설치된 상태에서 명령 프롬프트 또는 셸을 엽니 다. 다음 명령을 실행하십시오. aws iam get-user --user-name 사용자 이름 출력에서 ​​AIDAEXAMPLEID로 시작하는 userId 문자열을 찾으십시오. userId 문자열을 식별 한 후 다음 예제와 같이 "aws : userId"조건 배열에 배치 할 수 있습니다.

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Effect": "Deny", 
     "Principal": "*", 
     "Action": "s3:*", 
     "Resource": [ 
     "arn:aws:s3:::MyExampleBucket", 
     "arn:aws:s3:::MyExampleBucket/*" 
     ], 
     "Condition": { 
     "StringNotLike": { 
      "aws:userId": [ 
      "AROAEXAMPLEID:*", 
      "AIDAEXAMPLEID", 
      "111111111111" 
      ] 
     } 
     } 
    } 
    ] 
} 
+0

안녕하세요, 당신은 나에게 사용자를위한 솔루션을주었습니다 .IAM 역할이 필요합니다. 사용자가 일을 할 수는 있지만 역할에는 적합하지 않습니다. –

+0

귀하의 코드와 내 코드의 차이점은 무엇입니까 –

0

그것은 귀하의 요구 사항이 나타납니다 :

다행히 특정 IAM 역할에 대한 액세스를 허용

  • 기본적으로 액세스 거부, 모든 아마존 S3 버킷의 기본이다 기본적으로 액세스를 거부하므로이 항목이 자동으로 충족됩니다.

    이 같은 버킷 정책를 사용하여 특정 역할에 대한 액세스를 허용하려면

    당신이 역할을 사용하는 특정 EC2 인스턴스로 제한하는 데 사용할 수있는 다른 설정도 있습니다
    { 
        "Id": "AllowRoleAccess", 
        "Version": "2012-10-17", 
        "Statement": [ 
        { 
         "Sid": "AllowRole", 
         "Action": "s3:*", 
         "Effect": "Allow", 
         "Resource": [ 
         "arn:aws:s3:::BUCKET-NAME", 
         "arn:aws:s3:::BUCKET-NAME/*" 
         ], 
         "Principal": { 
         "AWS": [ 
          "arn:aws:iam::222222222222:role/ROLE-NAME" 
         ] 
         } 
        } 
        ] 
    } 
    

    .

  • +0

    안녕하세요, s3는 기본적으로 액세스를 거부 함을 언급하셨습니다. S3 버킷을 생성하고 읽기, 쓰기 작업을 삭제하고 루트 계정에만 적용됩니다. 모두 해당 없음 –

    +0

    기본적으로 버킷 버킷 정책이 없으므로 액세스 권한을 부여하지 않습니다. 그러나 IAM 사용자 및 역할은 버킷에 액세스 정책이없는 경우에도 버킷에 대한 액세스 권한을 부여 할 수 있습니다. 따라서 위의 내용은 버킷 정책없이 역할에 대한 권한을 설정하여 얻을 수도 있습니다. –

    +0

    하지만 새로운 버킷에 버킷 정책이 없으면 액세스 할 수 있습니다. 제한이 없습니다. –