我在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
没有任何价值,那么关于如何解决它有不同的方法。
-
按照开头的说明设置 env 变量。显然,这只有在也设置了变量
DEVSHELL_PROJECT_ID
时才有效。export GOOGLE_PROJECT=$DEVSHELL_PROJECT_ID
-
手动将项目 ID 设置为该变量。这远非理想,因为在Qwiklabs中,他们在每个实验室上创建一个新的临时项目,所以这只有在你还在那个项目上时才有效。可以在两个共享的屏幕截图上看到项目 ID。
export GOOGLE_PROJECT=qwiklabs-gcp-03-c6e1787dc09e
-
避免使用参数
--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}