×

要继续部署 ROSA 集群,帐户必须支持所需的角色和权限。AWS 服务控制策略 (SCP) 无法阻止安装程序或运营商角色发出的 API 调用。

有关启用 STS 的 ROSA 安装所需的 IAM 资源的详细信息,请参见此处:关于使用 STS 的 ROSA 集群的 IAM 资源

本指南已针对 ROSA v4.11.X 验证。

验证 ROSA 权限

要验证 ROSA 所需的权限,我们可以运行以下部分中包含的脚本,而无需创建任何 AWS 资源。

该脚本使用rosaawsjq CLI 命令在工作目录中创建文件,这些文件将用于验证连接到当前 AWS 配置的帐户中的权限。

AWS 策略模拟器用于根据jq提取的 API 调用验证每个角色策略的权限;然后将结果存储在附加有.results的文本文件中。

此脚本旨在验证当前帐户和区域的权限。

使用说明

  1. 要使用该脚本,请在bash终端中运行以下命令(-p 选项定义角色的前缀)

    $ mkdir scratch
    $ cd scratch
    $ cat << 'EOF' > verify-permissions.sh
    #!/bin/bash
    while getopts 'p:' OPTION; do
      case "$OPTION" in
        p)
          PREFIX="$OPTARG"
          ;;
        ?)
          echo "script usage: $(basename \$0) [-p PREFIX]" >&2
          exit 1
          ;;
      esac
    done
    shift "$(($OPTIND -1))"
    rosa create account-roles --mode manual --prefix $PREFIX
    INSTALLER_POLICY=$(cat sts_installer_permission_policy.json | jq )
    CONTROL_PLANE_POLICY=$(cat sts_instance_controlplane_permission_policy.json | jq)
    WORKER_POLICY=$(cat sts_instance_worker_permission_policy.json | jq)
    SUPPORT_POLICY=$(cat sts_support_permission_policy.json | jq)
    simulatePolicy () {
        outputFile="${2}.results"
        echo $2
        aws iam simulate-custom-policy --policy-input-list "$1" --action-names $(jq '.Statement | map(select(.Effect == "Allow"))[].Action | if type == "string" then . else .[] end' "$2" -r) --output text > $outputFile
    }
    simulatePolicy "$INSTALLER_POLICY" "sts_installer_permission_policy.json"
    simulatePolicy "$CONTROL_PLANE_POLICY" "sts_instance_controlplane_permission_policy.json"
    simulatePolicy "$WORKER_POLICY" "sts_instance_worker_permission_policy.json"
    simulatePolicy "$SUPPORT_POLICY" "sts_support_permission_policy.json"
    EOF
    $ chmod +x verify-permissions.sh
    $ ./verify-permissions.sh -p SimPolTest
  2. 脚本完成后,请查看每个结果文件,以确保没有阻止任何必需的 API 调用

    $ for file in $(ls *.results); do echo $file; cat $file; done

    输出将类似于以下内容

    sts_installer_permission_policy.json.results
    EVALUATIONRESULTS       autoscaling:DescribeAutoScalingGroups   allowed *
    MATCHEDSTATEMENTS       PolicyInputList.1       IAM Policy
    ENDPOSITION     6       195
    STARTPOSITION   17      3
    EVALUATIONRESULTS       ec2:AllocateAddress     allowed *
    MATCHEDSTATEMENTS       PolicyInputList.1       IAM Policy
    ENDPOSITION     6       195
    STARTPOSITION   17      3
    EVALUATIONRESULTS       ec2:AssociateAddress    allowed *
    MATCHEDSTATEMENTS       PolicyInputList.1       IAM Policy
    ...

    如果任何操作被阻止,请查看 AWS 提供的错误,并咨询您的管理员以确定 SCP 是否阻止了所需的 API 调用。