액세스 제어에 속성 사용 정책 예 - Amazon Cognito

액세스 제어에 속성 사용 정책 예

회사 법무 부서의 직원이 해당 부서에 속하고 보안 수준으로 분류된 버킷의 모든 파일을 나열해야 하는 시나리오를 생각해 보세요. 이 직원이 자격 증명 공급자로부터 가져온 토큰에 다음 클레임이 포함되어 있다고 가정합니다.

클레임

{ . . "sub" : "57e7b692-4f66-480d-98b8-45a6729b4c88", "department" : "legal", "clearance" : "confidential", . . }

이러한 속성은 태그에 매핑될 수 있으며 IAM 권한 정책에서 보안 주체 태그로 참조할 수 있습니다. 이제 자격 증명 제공자의 끝에서 사용자 프로파일을 변경하여 액세스를 관리할 수 있습니다. 또는 정책 자체를 변경하지 않고 이름이나 태그를 사용하여 리소스 측에서 속성을 변경할 수 있습니다.

다음 권한 정책은 두 가지 기능을 합니다.

  • 사용자의 부서 이름과 일치하는 접두사로 끝나는 모든 S3 버킷에 대한 목록 액세스를 허용합니다.

  • 파일의 승인 태그가 사용자의 승인 속성과 일치하는 한 이러한 버킷의 파일에 대한 읽기 액세스를 허용합니다.

권한 정책

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:List*", "Resource": "arn:aws:s3:::*-${aws:PrincipalTag/department}" }, { "Effect": "Allow", "Action": "s3:GetObject*", "Resource": "arn:aws:s3:::*-${aws:PrincipalTag/department}/*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/clearance": "${aws:PrincipalTag/clearance}" } } } ] }

신뢰 정책은 이 역할을 수임할 수 있는 사용자를 결정합니다. 신뢰 관계 정책은 sts:AssumeRoleWithWebIdentitysts:TagSession을 사용하여 액세스하도록 허용합니다. 생성한 자격 증명 풀로 정책을 제한하는 조건을 추가하고 인증된 역할에만 정책이 적용되도록 보장합니다.

신뢰 정책

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": [ "sts:AssumeRoleWithWebIdentity", "sts:TagSession" ], "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "IDENTITY-POOL-ID" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "authenticated" } } } ] }