Question

Difficulty: Very hardMulti-Account Identity and Access Management Federation

An enterprise manages a multi-account AWS environment using AWS Organizations. The organization has set up AWS IAM Identity Center in a delegated administrator security account, integrated with Okta as the external identity provider (IdP) via SAML 2.0 and SCIM. The security team is implementing Attribute-Based Access Control (ABAC) to restrict access to sensitive Amazon S3 buckets located in a Shared Services account. Corporate users must only access buckets where the bucket's CostCenter tag matches their corporate cost center, which is stored in Okta as the costCenter profile attribute.

During testing, two issues are observed:
1. Users federated through AWS IAM Identity Center are denied access to the S3 buckets in the Shared Services account, despite having the correct costCenter value in Okta and matching tags on the S3 buckets.
2. A legacy third-party auditing tool that bypasses IAM Identity Center and federates directly via a custom IAM SAML identity provider in each member account fails to assume its target role, returning an 'Access Denied' error when attempting to pass the cost center as a session tag.

Which of the following actions must the Solutions Architect take to resolve these issues? (Select TWO.)

  1. Enable 'Attributes for access control' in AWS IAM Identity Center and map the SCIM attribute costCenter to the key CostCenter. Ensure the IAM policy attached to the permission sets in the member accounts explicitly grants permissions to the S3 buckets in the Shared Services account, rather than relying on Service Control Policies (SCPs) to grant the permissions.Answer
  2. In the member accounts, update the trust policy of the IAM role used by the auditing tool to include the sts:TagSession action in addition to sts:AssumeRoleWithSAML. Configure the Okta SAML assertion to include the cost center attribute under the https://aws.amazon.com/SAML/Attributes/PrincipalTag:CostCenter attribute namespace.Answer
  3. C
    Create a Service Control Policy (SCP) at the Root OU level that allows S3 actions with a condition matching aws:PrincipalTag/CostCenter and aws:ResourceTag/CostCenter. Detach all S3-related permissions from the IAM Identity Center permission sets in member accounts to ensure that access control is managed centrally by the organization's governance boundary.
  4. D
    In the member accounts, update the trust policy of the IAM role used by the auditing tool. Replace sts:AssumeRoleWithSAML with sts:AssumeRole and grant the Okta integration service account's IAM role the permission to assume the auditing role, using the aws:PrincipalTag/CostCenter condition in the trust policy.
  5. E
    Configure AWS IAM Identity Center to use an AWS-managed KMS key for the S3 buckets in the Shared Services account. Modify the default key policy to automatically propagate user attributes as session tags, ensuring that the aws:PrincipalTag/CostCenter condition can be evaluated by AWS KMS during cross-account access.

Answer

Enable 'Attributes for access control' in AWS IAM Identity Center, mapping Okta's costCenter to the key CostCenter, and ensure that local permission sets explicitly grant S3 access. In addition, update the auditing tool's IAM role trust policy in the member accounts to permit sts:TagSession alongside sts:AssumeRoleWithSAML, and format the SAML assertion with the PrincipalTag namespace.
To successfully implement ABAC across accounts with AWS IAM Identity Center, the 'Attributes for access control' feature must be enabled to map Okta's SCIM attribute to the AWS tag key. In addition, since Service Control Policies (SCPs) do not grant permissions, the permission sets must explicitly allow the S3 actions. For direct SAML federation, the role's trust policy must include the sts:TagSession action to authorize the IdP to send session tags, and the SAML assertion must format the attributes with the proper PrincipalTag namespace.

Step-by-Step Solution

1
Enable session tags in AWS IAM Identity Center.
Configured the 'Attributes for access control' feature and mapped the SCIM-synchronized costCenter attribute to the CostCenter tag key.
This allows IAM Identity Center to pass user attributes as session tags (aws:PrincipalTag/CostCenter) during federation.
2
Verify local permissions for the S3 bucket.
Added explicit S3 permissions (s3:GetObject, s3:PutObject) in the IAM Identity Center permission sets for the member accounts.
SCPs act as filters and do not grant permissions. Local IAM policies must grant the actual S3 access.
3
Configure SAML trust policy for session tagging.
Updated the custom IAM role trust policy in the member accounts to include the sts:TagSession action.
Without sts:TagSession in the trust policy, attempts to pass session tags during direct SAML federation will return an Access Denied error.
4
Configure SAML assertion attributes in Okta.
Configured Okta to send the cost center attribute under the 'https://aws.amazon.com/SAML/Attributes/PrincipalTag:CostCenter' namespace.
This matches the required namespace format for AWS to map SAML attributes directly into principal session tags.

Key Concept

Multi-Account Identity Federation and Session Tags
Rate this question