3.13. STS의 속성 기반 액세스 제어(ABAC)에 대한 세션 태그
세션 태그는 사용자를 연결하는 동안 전달될 수 있는 키-값 쌍입니다. 보안 토큰 서비스(STS)에서 반환되는 세션 또는 임시 인증 정보에서 aws:PrincipalTag 로 전달됩니다. 이러한 기본 태그는 역할에 가정되는 웹 토큰 및 태그의 일부로 제공되는 세션 태그로 구성됩니다.
현재 세션 태그는 AssumeRoleWithWebIdentity 로 전달되는 웹 토큰의 일부로만 지원됩니다.
태그를 항상 다음 네임스페이스에서 지정해야 합니다. https://aws.amazon.com/tags.
페더레이션 사용자에 의해 전달되는 웹 토큰에 세션 태그가 포함된 경우 신뢰 정책에 sts:TagSession 권한이 있어야 합니다. 그렇지 않으면 AssumeRoleWithWebIdentity 작업이 실패합니다.
sts:TagSession 를 사용한 신뢰 정책의 예:
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":["sts:AssumeRoleWithWebIdentity","sts:TagSession"],
"Principal":{"Federated":["arn:aws:iam:::oidc-provider/localhost:8080/auth/realms/quickstart"]},
"Condition":{"StringEquals":{"localhost:8080/auth/realms/quickstart:sub":"test"}}
}]
}
속성
다음은 세션 태그의 속성입니다.
세션 태그는 다중 값으로 설정할 수 있습니다.
참고다중 값 세션 태그는 AWS(Amazon Web Service)에서 지원되지 않습니다.
- Keycloak은 최대 50개의 세션 태그가 있는 OpenID Connect ID 공급자(IDP)로 설정할 수 있습니다.
- 허용되는 키의 최대 크기는 128자입니다.
- 허용되는 값의 최대 크기는 256자입니다.
-
태그 또는 값은
aws:로 시작할 수 없습니다.
3.13.1. 태그 키 링크 복사링크가 클립보드에 복사되었습니다!
다음은 역할 신뢰 정책 또는 역할 권한 정책에 사용할 수 있는 태그 키입니다.
aws:RequestTag- 설명
요청에 전달된 키-값 쌍을 역할의 신뢰 정책의 키-값 쌍과 비교합니다.
AssumeRoleWithWebIdentity의 경우 역할 신뢰 정책에서 세션 태그를aws:RequestTag로 사용할 수 있습니다. 이러한 세션 태그는 웹 토큰에서 Keycloak에서 전달됩니다. 결과적으로 페더레이션 사용자는 역할을 가정할 수 있습니다.
aws:PrincipalTag- 설명
주체에 연결된 키-값 쌍을 정책의 키-값 쌍과 비교합니다.
AssumeRoleWithWebIdentity의 경우 세션 태그는 사용자가 인증되면 임시 자격 증명에 주체 태그로 표시됩니다. 이러한 세션 태그는 웹 토큰에서 Keycloak에서 전달됩니다. 역할 권한 정책에서aws:PrincipalTag로 사용할 수 있습니다.
iam:ResourceTag- 설명
리소스에 연결된 키-값 쌍을 정책의 키-값 쌍과 비교합니다.
AssumeRoleWithWebIdentity의 경우 역할에 연결된 태그가 신뢰 정책의 역할과 비교되어 사용자가 역할을 가정할 수 있습니다.참고Ceph Object Gateway는 이제 역할에 대한 태그 지정, 나열, 태그 해제 작업을 지원하기 위한 RESTful API를 지원합니다.
AWS:TagKeys- 설명
요청의 태그를 정책의 태그와 비교합니다.
AssumeRoleWithWebIdentity의 경우 사용자가 역할을 가정하기 전에 역할 신뢰 정책 또는 권한 정책에서 태그 키를 확인하는 데 사용됩니다.
s3:ResourceTag- 설명
버킷 또는 오브젝트인 S3 리소스에 있는 태그를 역할의 권한 정책의 태그와 비교합니다.
Ceph Object Gateway에서 S3 작업을 승인하는 데 사용할 수 있습니다. 그러나 이는 AWS에서 허용되지 않습니다.
오브젝트 또는 버킷에 연결된 태그를 참조하는 데 사용되는 키입니다. 태그는 동일한에 사용 가능한 RESTful API를 사용하여 오브젝트 또는 버킷에 연결할 수 있습니다.