10.4. 在 Red Hat OpenShift Service on AWS 上配置 Red Hat Quay 以使用 AWS STS
使用以下步骤将 Red Hat Quay 配置为在 Red Hat OpenShift Service on AWS 平台上使用 AWS STS。
先决条件
- 您已创建了 IAM 用户。
- 您已创建了 s3 角色 ARN。
- 您已创建了使用 Role ARN 的自定义 信任策略。
流程
输入以下命令来获取
serviceAccountIssuer
资源:oc get authentication.config.openshift.io cluster -o json | jq -r .spec.serviceAccountIssuer | sed -e "s/^https:\/\///"
$ oc get authentication.config.openshift.io cluster -o json | jq -r .spec.serviceAccountIssuer | sed -e "s/^https:\/\///"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
oidc.op1.openshiftapps.com/123456
oidc.op1.openshiftapps.com/123456
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Amazon Web Services (AWS)控制台的 Identity and Access Management (IAM)控制台中:
- 单击 Roles。
-
点要用于 AWS STS 的 Role 名称,如
example-role
。 单击 Trust relationships 选项卡,其中显示"创建 S3 角色"期间创建的 JSON 策略。更新 JSON 策略,如下所示:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 验证您的用户 ARN 是否已正确配置,然后点 Next。
- 在 Add permissions 页面中,选择 AmazonS3FullAccess,然后单击 Next。
- 在 Name, review, and create 页面上,为您的角色提供一个名称、描述、验证您的配置,添加任何可选标签。然后,单击 Create Role。
在 Roles 页面中,点新角色并存储
Role ARN
资源。例如:arn:aws:iam::123456:role/test_s3_access
arn:aws:iam::123456:role/test_s3_access
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Red Hat Quay web 控制台中:
-
点 Operators
Installed Operators。 - 点 Red Hat Quay。
- 单击 Quay Registry,然后单击 Red Hat Quay registry 的名称。
- 在 Config Bundle Secret 下,单击 registry 配置捆绑包的名称,例如 quay-registry-config-bundle-12345。
- 在配置捆绑包页面中,单击 Actions 以显示下拉菜单。然后点 Edit Secret。
使用以下信息更新
config.yaml
文件的DISTRIBUTED_STORAGE_CONFIG
字段:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
点 Operators
-
点击 Save。您的
QuayRegistry
自定义资源(CR)会自动重启。 注解执行使用 EKS 配置值的 pod 的服务帐户(SA)。例如:
oc annotate sa registry-quay-app "eks.amazonaws.com/role-arn"="arn:aws:iam::123456:role/test_s3_access" "eks.amazonaws.com/audience"="sts.amazonaws.com" "eks.amazonaws.com/sts-regional-endpoints"="true"
$ oc annotate sa registry-quay-app "eks.amazonaws.com/role-arn"="arn:aws:iam::123456:role/test_s3_access" "eks.amazonaws.com/audience"="sts.amazonaws.com" "eks.amazonaws.com/sts-regional-endpoints"="true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
标记示例镜像,如
busybox
,它将推送到存储库。例如:podman tag docker.io/library/busybox <quay-server.example.com>/<organization_name>/busybox:test
$ podman tag docker.io/library/busybox <quay-server.example.com>/<organization_name>/busybox:test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来推送示例镜像:
podman push <quay-server.example.com>/<organization_name>/busybox:test
$ podman push <quay-server.example.com>/<organization_name>/busybox:test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
导航到您在 Red Hat Quay registry
Tags 中将镜像推送到的 Organization,以验证推送是否成功。 - 进入到 Amazon Web Services (AWS)控制台,找到您的 s3 存储桶。
- 点 s3 存储桶的名称。
- 在 Objects 页面上,单击 datastorage/。
在 datastorage/ 页面中,应该看到以下资源:
- sha256/
上传/
这些资源表示推送成功,并且 AWS STS 已被正确配置。