AWS CLI操作:如何为Azure AD关联的AWS SSO角色附加IAM策略
用AWS CLI为Azure AD关联的AWS SSO角色附加DynamoDB权限策略
AWS SSO中,Azure AD用户关联的账户角色是由**权限集(Permission Set)**在目标账户中自动生成的托管角色,直接修改账户内的角色会被SSO覆盖,因此正确操作是将策略附加到对应的权限集。以下是具体步骤:
1. 获取AWS SSO实例ARN
先列出当前组织下的SSO实例,拿到目标实例的ARN:
aws sso-admin list-instances
输出中会包含类似 arn:aws:sso:::instance/ssoins-xxxxxx 的实例ARN,记下来备用。
2. 定位用户X关联的权限集
列出该SSO实例下的所有权限集,找到用户X被分配到的、对应AWS账户A的权限集ARN:
aws sso-admin list-permission-sets --instance-arn <你的SSO实例ARN>
如果知道权限集名称,也可以直接查询其ARN:
aws sso-admin describe-permission-set --instance-arn <你的SSO实例ARN> --permission-set-arn <权限集ARN>
3. 附加DynamoDB策略到权限集
如果是托管策略,用以下命令将账户A中已创建的DynamoDB策略ARN附加到目标权限集:
aws sso-admin attach-managed-policy-to-permission-set \ --instance-arn <你的SSO实例ARN> \ --permission-set-arn <目标权限集ARN> \ --managed-policy-arn <账户A的DynamoDB策略ARN>
如果是内联策略,替换为以下命令(注意替换JSON内容为实际权限规则):
aws sso-admin put-inline-policy-to-permission-set \ --instance-arn <你的SSO实例ARN> \ --permission-set-arn <目标权限集ARN> \ --inline-policy '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":"dynamodb:*","Resource":"*"}]}'
4. 验证策略附加结果
确认策略已成功添加到权限集:
aws sso-admin list-managed-policies-in-permission-set \ --instance-arn <你的SSO实例ARN> \ --permission-set-arn <目标权限集ARN>
关键注意点
- 权限集更新后,用户X需要重新登录AWS SSO才能获取新的权限,现有会话不会自动刷新
- 执行CLI命令的身份必须拥有
sso-admin:AttachManagedPolicyToPermissionSet或sso-admin:PutInlinePolicyToPermissionSet等对应权限 - 不要直接修改账户A内的SSO托管角色,否则后续SSO同步会覆盖你的修改
内容的提问来源于stack exchange,提问作者mon
相关产品推荐
相关产品推荐

