AWS STS에서 세션 태그 전달 - AWS Identity and Access Management

AWS STS에서 세션 태그 전달

세션 태그는 IAM 역할을 맡거나 AWS STS에서 사용자를 연동할 때 전달하는 키-값 페어 속성입니다. STS 또는 자격 증명 공급자(IdP)를 통해 AWS CLI 또는 AWS API를 요청하면 됩니다. AWS STS를 사용하여 임시 보안 자격 증명을 요청하면 세션이 생성됩니다. 세션은 만료되고 액세스 키 페어 및 세션 토큰과 같은 자격 증명을 갖습니다. 세션 자격 증명을 사용하여 후속 요청을 하면 요청 컨텍스트aws:PrincipalTag 컨텍스트 키가 포함됩니다. 정책의 Condition 요소에서 aws:PrincipalTag 키를 사용하여 해당 태그를 기반으로 액세스를 허용하거나 거부할 수 있습니다.

임시 자격 증명을 사용하여 요청하면 보안 주체에 태그 세트가 포함될 수 있습니다. 이러한 태그는 다음 소스에서 가져옵니다.

  1. 세션 태그 – 이 태그는 역할을 맡거나 AWS CLI 또는 AWS API를 사용하여 사용자를 연동할 때 전달됩니다. 이러한 작업에 대한 자세한 내용은 아래 세션 태그 지정 작업 단원을 참조하십시오.

  2. 수신 전이적 세션 태그 – 이 태그는 역할 체인의 이전 세션에서 상속됩니다. 자세한 내용은 이 주제의 후반부에서 세션 태그를 사용하는 역할 체인 단원을 참조하십시오.

  3. IAM 태그 – 이 태그는 사용자가 맡은 IAM 역할에 연결되어 있습니다.

세션 태그 지정 작업

AWS STS에서 다음 AWS CLI 또는 AWS API 작업을 사용하여 세션 태그를 전달할 수 있습니다. AWS Management 콘솔 역할 전환 기능을 사용하여 세션 태그를 전달할 수 없습니다.

세션 태그를 전이적으로 설정할 수도 있습니다. 전이적 태그는 역할 체인 동안 지속됩니다. 자세한 내용은 세션 태그를 사용하는 역할 체인 단원을 참조하십시오.

세션 태그 전달 방법 비교
방법 역할을 맡을 수 있는 사용자 태그를 전달하는 방법 전이적 태그를 설정하는 방법
assume-role CLI 또는 AssumeRole API 작업 IAM 사용자 또는 세션 Tags API 파라미터 또는 --tags CLI 옵션 TransitiveTagKeys API 파라미터 또는 --transitive-tag-keys CLI 옵션
assume-role-with-saml CLI 또는 AssumeRoleWithSAML API 작업 SAML 자격 증명 공급자를 사용하여 인증된 모든 사용자 PrincipalTag SAML 속성 TransitiveTagKeys SAML 속성
assume-role-with-web-identity CLI 또는 AssumeRoleWithWebIdentity API 작업 웹 자격 증명 공급자를 사용하여 인증된 모든 사용자 PrincipalTag 웹 자격 증명 토큰 TransitiveTagKeys 웹 자격 증명 토큰
get-federation-token CLI 또는 GetFederationToken API 작업 IAM 사용자 또는 루트 사용자 Tags API 파라미터 또는 --tags CLI 옵션 지원되지 않음

다음 조건 중 하나에 해당하는 경우 세션 태그 지정을 지원하는 작업이 실패할 수 있습니다.

  • 50개 이상의 세션 태그를 전달하는 경우

  • 세션 태그 키의 일반 텍스트가 128자를 초과하는 경우

  • 세션 태그 값의 일반 텍스트가 256자를 초과하는 경우

  • 세션 정책의 일반 텍스트의 총 크기가 2048자를 초과하는 경우

  • 결합된 세션 정책 및 세션 태그의 총 압축 크기가 너무 큰 경우 작업이 실패할 경우 오류 메시지는 결합된 정책과 태그가 최대 크기 제한에 얼마나 가까운지를 백분율로 나타냅니다.

세션 태그에 대해 알아야 할 사항

세션 태그를 사용하기 전에 세션 및 태그에 대한 다음 세부 정보를 검토하십시오.

  • 세션 태그는 세션을 요청하는 동안 지정하는 보안 주체 태그입니다. 태그는 세션의 자격 증명을 사용하여 생성한 요청에 적용됩니다.

  • 세션 태그는 키-값 페어입니다. 예를 들어, 세션에 연락처 정보를 추가하려면 세션 태그 키 email 및 태그 값 johndoe@example.com을 추가할 수 있습니다.

  • 세션 태그는 IAM 및 AWS STS의 태그 이름 지정 규칙을 따라야 합니다. 이 주제에는 세션 태그에 적용되는 대/소문자 구분 및 제한된 접두사에 대한 정보가 포함되어 있습니다.

  • 새 세션 태그는 대/소문자에 관계없이 동일한 태그 키의 기존에 맡은 역할 또는 연동 사용자 태그를 재정의합니다.

  • AWS Management 콘솔을 사용하여 세션 태그를 전달할 수는 없습니다.

  • 세션 태그는 현재 세션에서만 유효합니다.

  • 세션 태그는 역할 체인을 지원합니다. 기본적으로 태그는 후속 역할 세션에 전달되지 않습니다. 그러나 세션 태그를 전이적으로 설정할 수 있습니다. 전이적 태그는 역할 체인 동안 지속됩니다. 자세한 내용은 세션 태그를 사용하는 역할 체인 단원을 참조하십시오.

  • 세션 태그를 사용하여 리소스에 대한 액세스를 제어하거나 후속 세션에 전달할 수 있는 태그를 제어할 수 있습니다. 자세한 내용은 ABAC에 SAML 세션 태그 사용 단원을 참조하십시오.

  • AWS CloudTrail 로그에서 세션 태그를 포함하여 세션의 보안 주체 태그를 볼 수 있습니다. 자세한 내용은 CloudTrail에서 세션 태그 보기 단원을 참조하십시오.

  • 각 세션 태그에 대해 단일 값을 전달해야 합니다. 다중 값 세션 태그는 지원되지 않습니다.

  • 최대 50개의 세션 태그를 전달할 수 있습니다.

  • AWS 변환은 전달된 세션 정책과 세션 태그를 별도의 제한이 있는 압축된 이진 형식으로 압축합니다. 이 제한을 초과할 경우 AWS CLI 또는 AWS API 오류 메시지는 결합된 정책과 태그가 최대 크기 제한에 얼마나 가까운지를 백분율로 나타냅니다.

세션 태그를 추가하는 데 필요한 권한

API 작업과 일치하는 작업 외에도 정책에는 다음과 같은 권한 전용 작업이 있어야 합니다.

sts:TagSession

이 작업은 다음 조건 키와 함께 사용할 수 있습니다.

  • aws:PrincipalTag – 이 키를 사용하여 요청을 하는 보안 주체에 연결된 태그를 정책에서 지정한 태그와 비교합니다. 예를 들어, 요청을 하는 보안 주체에 지정된 태그가 있는 경우에만 보안 주체가 세션 태그를 전달하도록 허용할 수 있습니다.

  • aws:RequestTag – 이 키를 사용하여 요청에서 전달된 태그 키-값 페어를 정책에서 지정한 태그 페어와 비교합니다. 예를 들어, 보안 주체가 지정된 세션 태그를 전달할 수는 있지만, 지정된 값만 사용하도록 허용할 수 있습니다.

  • aws:ResourceTag – 이 키를 사용하여 정책에서 지정한 태그 키-값 페어를 리소스에 연결된 키-값 페어와 비교합니다. 예를 들어, 보안 주체가 맡고 있는 역할에 지정된 태그가 포함된 경우에만 보안 주체가 세션 태그를 전달하도록 허용할 수 있습니다.

  • aws:TagKeys – 이 키를 사용하여 요청의 태그 키를 정책에서 지정한 키와 비교합니다. 예를 들어, 보안 주체가 지정된 태그 키를 가진 세션 태그만 전달하도록 허용할 수 있습니다. 이 조건 키는 전달할 수 있는 최대 세션 태그 세트를 제한합니다.

  • sts:TransitiveTagKeys - 이 키를 사용하여 요청의 전이적 세션 태그 키와 정책에 지정된 전이적 세션 태그 키를 비교합니다. 예를 들어, 보안 주체가 특정 태그만 전이적으로 설정하도록 허용하는 정책을 작성할 수 있습니다. 전이적 태그는 역할 체인 동안 지속됩니다. 자세한 내용은 세션 태그를 사용하는 역할 체인 단원을 참조하십시오.

예를 들어, 다음 역할 신뢰 정책test-session-tags 사용자가 정책이 연결된 역할을 맡을 수 있도록 허용합니다. 해당 사용자가 역할을 맡는 경우 AWS CLI 또는 AWS API를 사용하여 세 개의 필수 세션 태그와 필수 외부 ID를 전달해야 합니다. 또한 사용자는 ProjectDepartment 태그를 전이적으로 설정하도록 선택할 수 있습니다.

예 세션 태그에 대한 역할 신뢰 정책

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIamUserAssumeRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": {"AWS": "arn:aws:iam::123456789012:user/test-session-tags"}, "Condition": { "StringLike": { "aws:RequestTag/Project": "*", "aws:RequestTag/CostCenter": "*", "aws:RequestTag/Department": "*" }, "StringEquals": {"sts:ExternalId": "Example987"} } }, { "Sid": "AllowPassSessionTagsAndTransitive", "Effect": "Allow", "Action": "sts:TagSession", "Principal": {"AWS": "arn:aws:iam::123456789012:user/test-session-tags"}, "Condition": { "StringLike": { "aws:RequestTag/Project": "*", "aws:RequestTag/CostCenter": "*" }, "StringEquals": { "aws:RequestTag/Department": [ "Engineering", "Marketing" ] }, "ForAllValues:StringEquals": { "sts:TransitiveTagKeys": [ "Project", "Department" ] } } } ] }

이 정책이 하는 일은 무엇입니까?

  • AllowIamUserAssumeRole 문은 test-session-tags 사용자가 정책이 연결된 역할을 맡을 수 있도록 허용합니다. 해당 사용자가 역할을 맡을 때는 필수 세션 태그 및 외부 ID를 전달해야 합니다.

    • 이 문의 첫 번째 조건 블록의 경우 사용자가 Project, CostCenterDepartment 세션 태그를 전달해야 합니다. 이 문에서 태그 값은 중요하지 않으므로 태그 값에 와일드카드(*)를 사용했습니다. 이 블록의 경우 사용자가 적어도 이 세 개의 세션 태그를 전달해야 하며, 그렇지 않으면 작업이 실패합니다. 사용자는 추가 태그를 전달할 수 있습니다.

    • 두 번째 조건 블록의 경우 사용자가 Example987 값의 외부 ID를 전달해야 합니다.

  • AllowPassSessionTagsAndTransitive 문은 sts:TagSession 권한 전용 작업을 허용합니다. 이 작업을 허용해야 사용자가 세션 태그를 전달할 수 있습니다. 정책에 두 번째 문은 없고 첫 번째 문만 포함되어 있는 경우 사용자는 역할을 맡을 수 없습니다.

    • 이 문의 첫 번째 조건 블록은 사용자가 CostCenterProject 세션 태그에 대한 값을 전달하도록 허용합니다. 정책의 태그 값에 와일드카드(*)를 사용하여 이 작업을 수행하려면 StringLike 조건 연산자를 사용해야 합니다.

    • 두 번째 조건 블록은 사용자가 Department 세션 태그의 Engineering 또는 Marketing 값만 전달하도록 허용합니다.

    • 세 번째 조건 블록은 전이적으로 설정할 수 있는 최대 태그 세트를 나열합니다. 사용자는 하위 세트를 설정하거나 태그를 전이적으로 설정하지 않도록 선택할 수 있습니다. 그러나 추가 태그를 전이적으로 설정할 수는 없습니다. "Null":{"sts:TransitiveTagKeys":"false"}를 포함하는 다른 조건 블록을 추가하여 태그 중 하나 이상을 전이적으로 설정하도록 요구할 수 있습니다.

AssumeRole을 사용하여 세션 태그 전달

AssumeRole 작업은 AWS 리소스에 액세스하는 데 사용할 수 있는 임시 자격 증명 세트를 반환합니다. IAM 사용자 또는 역할 자격 증명을 사용하여 AssumeRole을 호출할 수 있습니다. 역할을 맡는 동안 세션 태그를 전달하려면 --tags AWS CLI 옵션 또는 Tags AWS API 파라미터를 사용합니다.

태그를 전이적으로 설정하려면 --transitive-tag-keys AWS CLI 옵션 또는 TransitiveTagKeys AWS API 파라미터를 사용합니다. 전이적 태그는 역할 체인 동안 지속됩니다. 자세한 내용은 세션 태그를 사용하는 역할 체인 단원을 참조하십시오.

다음 예제에서는 AssumeRole을 사용하는 샘플 요청을 보여 줍니다. 이 예제에서는 my-role-example 역할을 맡을 때 my-session이라는 세션을 생성합니다. 세션 태그 키-값 페어 Project = Automation, CostCenter = 12345Department = Engineering을 추가합니다. 또한 해당 키를 지정하여 ProjectDepartment 태그를 전이적으로 설정합니다.

예 AssumeRole CLI 요청

aws sts assume-role \ --role-arn arn:aws:iam::123456789012:role/my-role-example \ --role-session-name my-session \ --tags Key=Project,Value=Automation Key=CostCenter,Value=12345 Key=Department,Value=Engineering \ --transitive-tag-keys Project Department \ --external-id Example987

AssumeRoleWithSAML을 사용하여 세션 태그 전달

AssumeRoleWithSAML 작업은 SAML 기반 연동을 사용하여 인증됩니다. 이 작업은 AWS 리소스에 액세스하는 데 사용할 수 있는 임시 자격 증명 세트를 반환합니다. AWS Management 콘솔 액세스를 위해 SAML 기반 연동을 사용하는 방법에 대한 자세한 내용은 SAML 2.0 연동 사용자가 AWS Management 콘솔에 액세스할 수 있게 하기 단원을 참조하십시오. AWS CLI 또는 AWS API 액세스에 대한 자세한 내용은 SAML 2.0 기반 연동에 대하여 단원을 참조하십시오. Active Directory 사용자를 위한 SAML 연동을 설정하는 방법에 대한 자습서는AWS 보안 블로그ADFS(Active Directory 연동 서비스)를 사용한 AWS 연동 인증을 참조하십시오.

관리자는 회사 디렉터리의 멤버가 AWS STS AssumeRoleWithSAML 작업을 사용하여 AWS로 연동하도록 허용할 수 있습니다. 이렇게 하려면 다음 작업을 완료해야 합니다.

AWS에는 자격 증명 솔루션으로 세션 태그에 대한 엔드 투 엔드 환경을 인증한 파트너가 포함되어 있습니다. 이러한 자격 증명 공급자를 사용하여 세션 태그를 구성하는 방법은 타사 SAML 솔루션 공급자를 AWS와 통합 단원을 참조하십시오.

SAML 속성을 세션 태그로 전달하려면 Name 속성이 https://aws.amazon.com/SAML/Attributes/PrincipalTag:{TagKey}로 설정된 Attribute 요소를 포함합니다. AttributeValue 요소를 사용하여 태그 값을 지정합니다. 각 세션 태그마다 별도의 Attribute 요소를 포함합니다.

예를 들어, 다음 자격 증명 속성을 세션 태그로 전달한다고 가정합니다.

  • Project:Automation

  • CostCenter:12345

  • Department:Engineering

이러한 속성을 전달하려면 SAML 어설션에 다음 요소를 포함합니다.

예 SAML 어설션의 코드 조각

<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:Project"> <AttributeValue>Automation</AttributeValue> </Attribute> <Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:CostCenter"> <AttributeValue>12345</AttributeValue> </Attribute> <Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:Department"> <AttributeValue>Engineering</AttributeValue> </Attribute>

위의 태그를 전이적으로 설정하려면 Name 속성이 https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys로 설정된 다른 Attribute 요소를 포함합니다. 전이적 태그는 역할 체인 동안 지속됩니다. 자세한 내용은 세션 태그를 사용하는 역할 체인 단원을 참조하십시오.

ProjectDepartment 태그를 전이적으로 설정하려면 다음과 같은 다중 값 속성을 사용합니다.

예 SAML 어설션의 코드 조각

<Attribute Name="https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys"> <AttributeValue>Project</AttributeValue> <AttributeValue>Department</AttributeValue> </Attribute>

AssumeRoleWithWebIdentity를 사용하여 세션 태그 전달

AssumeRoleWithWebIdentity 작업은 OIDC(OpenID Connect) 호환 웹 자격 증명 연동을 사용하여 인증됩니다. 이 작업은 AWS 리소스에 액세스하는 데 사용할 수 있는 임시 자격 증명 세트를 반환합니다. AWS Management 콘솔 액세스를 위해 웹 자격 증명 연동을 사용하는 방법에 대한 자세한 내용은 웹 자격 증명 연동에 대하여 단원을 참조하십시오.

OIDC(OpenID Connect)에서 세션 태그를 전달하려면 JWT(JSON 웹 토큰)에 세션 태그를 포함해야 합니다. AssumeRoleWithWebIdentity 요청을 제출할 때 토큰의 https://aws.amazon.com/tags 네임스페이스에 세션 태그를 포함합니다. OIDC 토큰 및 클레임에 대한 자세한 내용은 Amazon Cognito 개발자 안내서사용자 풀과 함께 토큰 사용을 참조하십시오.

예를 들어, 다음의 디코딩된 JWT는 Project, CostCenterDepartment 세션 태그를 사용하여 AssumeRoleWithWebIdentity를 호출하는 데 사용되는 토큰입니다. 또한 토큰은 ProjectCostCenter 태그를 전이적으로 설정합니다. 전이적 태그는 역할 체인 동안 지속됩니다. 자세한 내용은 세션 태그를 사용하는 역할 체인 단원을 참조하십시오.

예 디코딩된 JSON 웹 토큰

{ "sub": "johndoe", "aud": "ac_oic_client", "jti": "ZYUCeRMQVtqHypVPWAN3VB", "iss": "https://xyz.com", "iat": 1566583294, "exp": 1566583354, "auth_time": 1566583292, "https://aws.amazon.com/tags": { "principal_tags": { "Project": ["Automation"], "CostCenter": ["987654"], "Department": ["Engineering"] }, "transitive_tag_keys": [ "Project", "CostCenter" ] } }

GetFederationToken을 사용하여 세션 태그 전달

GetFederationToken을 사용하면 사용자를 연동할 수 있습니다. 이 작업은 AWS 리소스에 액세스하는 데 사용할 수 있는 임시 자격 증명 세트를 반환합니다. 연동 사용자 세션에 태그를 추가하려면 --tags AWS CLI 옵션 또는 Tags AWS API 파라미터를 사용합니다. GetFederationToken을 사용할 경우 세션 태그를 전이적으로 설정할 수 없습니다. 이는 임시 자격 증명을 사용하여 역할을 맡을 수 없기 때문입니다. 즉, 역할 체인이 불가능합니다.

다음 예제에서는 GetFederationToken을 사용하는 샘플 요청을 보여 줍니다. 이 예제에서는 토큰을 요청할 때 my-fed-user라는 세션을 생성합니다. 세션 태그 키-값 페어 Project = AutomationDepartment = Engineering을 추가합니다.

예 GetFederationToken CLI 요청

aws sts get-federation-token \ --name my-fed-user \ --tags key=Project,value=Automation key=Department,value=Engineering

GetFederationToken 작업에서 반환되는 임시 자격 증명을 사용하는 경우 세션의 보안 주체 태그에 사용자의 태그와 전달된 세션 태그가 포함됩니다.

세션 태그를 사용하는 역할 체인

한 역할을 맡은 다음 임시 자격 증명을 사용하여 다른 역할을 맡을 수 있습니다. 이러한 작업을 세션 간에 계속할 수 있습니다. 이를 역할 체인이라고 합니다. 역할을 맡는 동안 세션 태그를 전달하면 키를 전이적으로 설정할 수 있습니다. 이렇게 하면 해당 세션 태그가 역할 체인의 후속 세션에 전달됩니다. 역할 태그를 전이적으로 설정할 수 없습니다. 이러한 태그를 후속 세션에 전달하려면 세션 태그로 지정합니다.

다음 예제를 통해 세션 태그, 전이적 태그 및 역할 태그가 역할 체인의 후속 세션에 전달되는 방식을 이해할 수 있습니다.

다음 역할 체인 시나리오 예제에서는 AWS CLI에서 IAM 사용자의 액세스 키를 사용하여 Role1이라는 역할을 맡습니다. 그런 다음 결과 세션 자격 증명을 사용하여 Role2라는 두 번째 역할을 맡습니다. 그런 다음 두 번째 세션 자격 증명을 사용하여 Role3라는 세 번째 역할을 맡을 수 있습니다. 이러한 요청은 세 가지 개별 작업으로 발생합니다. IAM에서는 각 역할에 이미 태그가 지정되어 있습니다. 그리고 각 요청 중에 추가 세션 태그를 전달합니다.


        역할 함께 묶기

역할을 체인할 때 이전 세션의 태그가 이후 세션에서도 유지되도록 할 수 있습니다. assume-role CLI 명령을 사용하여 이 작업을 수행하려면 태그를 세션 태그로 전달하고 태그를 전이적으로 설정해야 합니다. 태그 Star = 1을 세션 태그로 전달합니다. 태그 Heart = 1은 역할에 연결되어 있으며 세션을 사용할 때 보안 주체 태그로 적용됩니다. 그러나 Heart = 1 태그가 두 번째 또는 세 번째 세션에 자동으로 전달되도록 할 수도 있습니다. 이를 수행하려면 수동으로 세션 태그로 포함합니다. 그렇게 하면 결과 세션의 보안 주체 태그가 이 두 태그를 포함하며 전이적으로 설정됩니다.


        역할 체인의 첫 번째 역할 맡기

다음 AWS CLI 명령을 사용하여 이 요청을 수행합니다.

예 AssumeRole CLI 요청

aws sts assume-role \ --role-arn arn:aws:iam::123456789012:role/Role1 \ --role-session-name Session1 \ --tags Key=Star,Value=1 Key=Heart,Value=1 \ --transitive-tag-keys Star Heart

그런 다음 해당 세션에 대한 자격 증명을 사용하여 Role2를 맡습니다. 태그 Sun = 2는 두 번째 역할에 연결되며 두 번째 세션을 사용할 때 보안 주체 태그로 적용됩니다. HeartStar 태그는 첫 번째 세션의 전이적 세션 태그에서 상속됩니다. 두 번째 세션의 결과 보안 주체 태그는 Heart = 1, Star = 1Sun = 2입니다. HeartStar는 계속 전이적으로 유지됩니다. Role2에 연결된 Sun 태그는 세션 태그가 아니므로 전이적으로 표시되지 않습니다. 이 태그는 향후 세션에 상속되지 않습니다.


        역할 체인의 두 번째 역할 맡기

다음 AWS CLI 명령을 사용하여 이 두 번째 요청을 수행합니다.

예 AssumeRole CLI 요청

aws sts assume-role \ --role-arn arn:aws:iam::123456789012:role/Role2 \ --role-session-name Session2

그런 다음 두 번째 세션 자격 증명을 사용하여 Role3를 맡습니다. 세 번째 세션의 보안 주체 태그는 새 세션 태그, 상속된 전이적 세션 태그 및 역할 태그에서 가져옵니다. 두 번째 세션의 Heart = 1Star = 1 태그는 첫 번째 세션의 전이적 세션 태그에서 상속되었습니다. Heart = 3 세션 태그를 전달하려고 하면 작업이 실패합니다. 상속된 Star = 1 세션 태그는 역할의 Star = 3 태그를 재정의합니다. 역할의 Lightning 태그는 세 번째 세션에도 적용되며 전이적으로 설정되지 않습니다.


        역할 체인의 세 번째 역할 맡기

다음 AWS CLI 명령을 사용하여 세 번째 요청을 수행합니다.

예 AssumeRole CLI 요청

aws sts assume-role \ --role-arn arn:aws:iam::123456789012:role/Role3 \ --role-session-name Session3

ABAC에 세션 태그 사용

ABAC(속성 기반 액세스 제어)는 태그 속성을 기반으로 권한을 정의하는 권한 부여 전략입니다.

회사에서 회사 사용자 자격 증명에 대해 SAML 기반 자격 증명 공급자(IdP)를 사용하는 경우 세션 태그를 AWS에 전달하도록 SAML 어설션을 구성할 수 있습니다. 직원이 AWS에 연동되면 해당 속성이 AWS의 결과 보안 주체에 적용됩니다. 그런 다음 ABAC를 사용하여 이러한 속성에 따라 권한을 허용하거나 거부할 수 있습니다. 세부 정보는 ABAC에 SAML 세션 태그 사용 단원을 참조하십시오.

CloudTrail에서 세션 태그 보기

AWS CloudTrail를 사용하여 역할을 맡거나 사용자를 연동하기 위한 요청을 볼 수 있습니다. CloudTrail 로그 파일에는 맡은 역할 또는 연동 사용자 세션의 보안 주체 태그에 대한 정보가 포함됩니다. 자세한 내용은 AWS CloudTrail을 사용하여 IAM 및 AWS STS API 호출 로깅 단원을 참조하십시오.

예를 들어, AWS STS AssumeRoleWithSAML 요청을 하고 세션 태그를 전달하고 해당 태그를 전이적으로 설정한다고 가정합니다. CloudTrail 로그에서 다음 정보를 찾을 수 있습니다.

예 AssumeRoleWithSAML CloudTrail 로그

"requestParameters": { "sAMLAssertionID": "_c0046cEXAMPLEb9d4b8eEXAMPLE2619aEXAMPLE", "roleSessionName": "MyRoleSessionName", "principalTags": { "CostCenter": "987654", "Project": "Unicorn" }, "transitiveTagKeys": [ "CostCenter", "Project" ], "durationSeconds": 3600, "roleArn": "arn:aws:iam::123456789012:role/SAMLTestRoleShibboleth", "principalArn": "arn:aws:iam::123456789012:saml-provider/Shibboleth" },

다음 CloudTrail 로그 예제에서 세션 태그를 사용하는 이벤트를 볼 수 있습니다.