Amazon S3 버킷 정책을 업데이트하려고 할 때 "Invalid principal in policy"라는 오류가 표시되는 이유는 무엇인가요?

3분 분량
0

콘솔을 사용하여 Amazon Simple Storage Service(Amazon S3) 버킷의 버킷 정책을 추가하거나 편집하려고 합니다. 하지만 오류 메시지 "Error: Invalid principal in policy."가 표시됩니다.

해결 방법

다음과 같은 오류 메시지가 나타납니다. Invalid principal in policy message when the value of a Principal in your bucket policy isn't valid. 이 오류를 해결하려면 다음을 확인하세요.

  • 버킷 정책이 Principal 요소에 지원되는 값을 사용합니다.
  • Principal 요소의 형식이 올바르게 지정되었습니다.
  • Principal이 AWS Identity and Access Management(IAM) 사용자 또는 역할인 경우 사용자 또는 역할이 삭제되지 않았는지 확인합니다.

버킷 정책이 Principal 요소에 지원되는 값을 사용합니다

버킷 정책의 Principal 요소를 검토하세요. 다음의 지원되는 값 중 하나를 사용하고 있는지 확인합니다.

경고: **"작업:" "허용"**과 함께 사용할 경우 "*" Principal 요소는 인증된 사용자와 익명의 모든 사용자에게 액세스 권한을 부여합니다. 버킷 정책에서 이 조합을 사용하기 전에 콘텐츠가 이 수준의 액세스를 지원하는지 확인하세요.

Principal 값의 형식이 올바르게 지정되었습니다.

정책의 Principal 요소를 검토하고 형식이 올바른지 확인하세요. Principal에 하나의 사용자가 포함되어 있는 경우 해당 요소의 형식은 다음과 같아야 합니다.

"Principal": {
    "AWS": "arn:aws:iam::111111111111:user/user-name1"
}

Principal 요소에서 사용자를 지정하는 경우 "*"를 사용하여 모든 사용자를 지정할 수는 없습니다. Principal 요소에는 특정 사용자를 포함해야 합니다.

Principal 요소에 둘 이상의 IAM 사용자 또는 IAM 역할이 포함된 경우 요소의 형식은 다음과 같아야 합니다.

"Principal": {
  "AWS": [
    "arn:aws:iam::111111111111:user/user-name1",
    "arn:aws:iam::111111111111:role/role-name1"
  ]
}

Principal가 모든 사용자인 경우 요소의 형식은 다음과 같아야 합니다.

{
  "Principal": "*"
}

허용 효과가 있는 리소스 기반 정책의 Principal 요소에 와일드카드(*)를 사용하지 않는 것이 가장 좋습니다. 공개 또는 익명 액세스를 허용하려는 경우에만 와일드카드를 사용하세요. Principal 요소에서 의도한 Principal 요소, 서비스 또는 AWS 계정을 지정하세요. 그런 다음 Condition 요소를 사용하여 액세스를 제한하세요. 이는 특히 IAM 역할 신뢰 정책의 경우 이러한 정책을 통해 다른 Principal이 계정의 Principal이 될 수 있기 때문에 더욱 그렇습니다.

IAM 사용자 또는 역할이 삭제되지 않았습니다

버킷 정책에 Principal 요소에 IAM 사용자 또는 역할이 포함되어 있는 경우 해당 IAM ID가 삭제되지 않았는지 확인하세요. Principal 요소에는 전체 ARN 대신 고유 식별자를 지정해야 합니다. 이는 현재 버킷 정책에서 삭제된 IAM 사용자 및 역할을 식별하는 데 도움이 될 수 있습니다.

예제:

"Principal": {
  "AWS": [
    "arn:aws:iam::111111111111:user/user-name1",
    "AIDAJQABLZS4A3QDU576Q",
    "arn:aws:iam::111111111111:user/user-name2"
  ]
}

고유 식별자를 Principal 요소로 사용하여 버킷 정책을 저장하려고 하는 경우 오류 Invalid principal in policy가 표시됩니다. 이는 Principal 요소가 유효한 IAM ARN만 지원하기 때문입니다. 이 오류를 해결하려면 Principal 요소에서 모든 고유 식별자를 삭제해야 합니다.

IAM Principal의 계정에는 AWS 리전이 활성화되어 있지 않습니다

S3 버킷이 기본적으로 켜져 있지 않은 AWS 리전에 있는 경우 IAM Principal의 계정에 해당 지역이 켜져 있는지 확인하세요. 자세한 내용은 AWS 리전 관리를 참조하세요.

관련 정보

AWS 정책 생성기

AWS JSON 정책 요소: 주체

AWS 공식
AWS 공식업데이트됨 일 년 전
댓글 없음

관련 콘텐츠