在实验室工作时 Google Cloud Shell 命令出错(使用 CFT 记分卡保护 Google Cloud)



我在GCP实验室工作(使用CFT记分卡保护Google Cloud(。给出了实验室的所有说明。 首先,我必须运行以下两个命令来设置环境变量

export GOOGLE_PROJECT=$DEVSHELL_PROJECT_ID
export CAI_BUCKET_NAME=cai-$GOOGLE_PROJECT

在上面给出的第二个命令中,我不知道用我自己的凭据替换什么?也许这就是我出错的原因。

现在我必须启用"cloudasset.googleapis.com"gcloud 服务。为此,他们给出了以下命令。

gcloud services enable cloudasset.googleapis.com 
--project $GOOGLE_PROJECT

此错误在随附的 screeshot 中给出: 服务启用命令中的错误 下一步是克隆策略:给定的命令是:

git clone https://github.com/forseti-security/policy-library.git

之后,他们说:"您意识到策略库强制执行位于策略库/策略/约束文件夹中的策略,在这种情况下,您可以将示例策略从示例目录复制到约束目录中"。 并下达了这个命令:

cp policy-library/samples/storage_blacklist_public.yaml policy-library/policies/constraints/

在运行此命令时,我收到了以下内容: 运行目录命令时出错

最后,他们说"创建将保存云资产清单(CAI(将导出的数据的存储桶",并给出了以下命令:

gsutil mb -l us-central1 -p $GOOGLE_PROJECT gs://$CAI_BUCKET_NAME

我对在哪里替换自己的凭据感到困惑,例如在我编写自己的项目 ID project_Id的位置。 我也不知道这些错误是否正在发生。请帮助我。

我无法访问本教程。

如果运行以下命令,会发生什么情况:

echo ${DEVSHELL_PROJECT_ID}

我怀疑你会得到一个空的结果,因为我认为这个环境变量实际上并没有设置。

我认为应该是:

echo ${DEVSHELL_GCLOUD_CONFIG}

这会返回结果吗?

如果是这样,也许可以尝试使用该变量:

export GOOGLE_PROJECT=${DEVSHELL_GCLOUD_CONFIG}
export CAI_BUCKET_NAME=cai-${GOOGLE_PROJECT}

我不完全清楚为什么本教程使用这种方法,但如果上述方法有效,它可能会让你走得更远。

您要求我们创建一个 Google Cloud Platform 项目?

根据共享错误,这似乎是因为您的 env 变量GOOGLE_PROJECT未设置。可以通过使用echo $GOOGLE_PROJECT并查看它是否返回项目 ID 来验证它。您也可以使用echo $DEVSHELL_PROJECT_ID.如果返回项目 ID 而前者没有,则表示您没有按照开头所述导出变量。

如果问题是GOOGLE_PROJECT没有任何价值,那么关于如何解决它有不同的方法。

  1. 按照开头的说明设置 env 变量。显然,这只有在也设置了变量DEVSHELL_PROJECT_ID时才有效。

    export GOOGLE_PROJECT=$DEVSHELL_PROJECT_ID
    
  2. 手动将项目 ID 设置为该变量。这远非理想,因为在Qwiklabs中,他们在每个实验室上创建一个新的临时项目,所以这只有在你还在那个项目上时才有效。可以在两个共享的屏幕截图上看到项目 ID。

    export GOOGLE_PROJECT=qwiklabs-gcp-03-c6e1787dc09e
    
  3. 避免使用参数--project。根据文档,上述参数是可选的,如果未使用任何参数,则默认情况下将采用该命令,该参数将在配置设置中。您可以使用以下命令获取当前项目:

    gcloud config get-value project
    

    如果上一个命令与要使用的项目 ID 匹配,则只需发出以下命令即可:

    gcloud services enable cloudasset.googleapis.com
    

    请注意,未使用--project显式提及项目 ID。

关于您对GitHub文件的问题,我已经检查了存储库,文件storage_blacklist_public.yaml似乎不在目录中policy-library/samples。似乎有痕迹表明它曾经在那里,但现在不是了,他们可能应该更新实验室,因为它不再是了。

关于凭据混淆,您不必使用自己的项目 ID,只需使用实验室中给出的项目 ID。如果我没记错的话,所有需要的数据都应该在实验室的左侧。不过,在正常情况下,您不需要进行身份验证,因为如果您从 Cloud Shell 访问临时项目,则您已经登录到临时项目中,这是您应该执行所有这些操作的地方。

为更高版本添加此内容

在 gCloud shell 中,您可以使用

PROJECT_ID="$(gcloud config get-value project)"

然后像

--project ${PROJECT_ID}

相关内容

  • 没有找到相关文章

最新更新