Ошибка в командах Google Cloud Shell во время работы в лаборатории (защита Google Cloud с помощью CFT Scorecard) - PullRequest
0 голосов
/ 21 июня 2020

Я работаю в лаборатории GCP (Обеспечение безопасности Google Cloud с помощью CFT Scorecard). Даны все инструкции для лаборатории. Сначала мне нужно выполнить следующие две команды, чтобы установить переменные среды

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

Во второй приведенной выше команде я не знаю, что заменить моими собственными учетными данными? Может быть, поэтому я получаю ошибку.

Теперь мне нужно включить службу gcloud "cloudasset.googleapis.com". Для этого они дали следующую команду.

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

Ошибка для этого приведена в прилагаемом скришоте: Ошибка в серве iec Команда включения Следующий шаг - клонировать политику: данная команда для этого:

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

После этого они сказали: «Вы понимаете, что библиотека политик применяет политики, которые находятся в папке policy-library / policy / constraints, и в этом случае вы может скопировать образец политики из каталога образцов в каталог ограничений ». и дал эту команду:

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

При запуске этой команды я получил следующее: ошибка при запуске команды каталога

Наконец они сказали: «Создайте корзину, которая будет содержать данные, которые будет экспортировать Cloud Asset Inventory (CAI) "и дал следующую команду:

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

Я не понимаю, где заменить мои собственные учетные данные, например, вместо project_Id я написал свой собственный идентификатор проекта. Также я не знаю, что эти ошибки возникают. Пожалуйста, помогите мне.

Ответы [ 2 ]

0 голосов
/ 22 июня 2020

Согласно общей ошибке , похоже, это связано с тем, что ваша переменная env GOOGLE_PROJECT не установлена. Вы можете проверить это, набрав echo $GOOGLE_PROJECT и посмотрев, возвращает ли он идентификатор проекта или нет. Вы также можете использовать echo $DEVSHELL_PROJECT_ID. Если это возвращает идентификатор проекта, а первый - нет, это означает, что вы не экспортировали переменную, как указано в начале.

Если проблема в том, что GOOGLE_PROJECT не имеет значения, существуют разные подходы к решению этой проблемы.

  1. Установите переменную env, как вы объяснили в начале. Очевидно, это будет работать, только если также установлена ​​переменная DEVSHELL_PROJECT_ID.

    export GOOGLE_PROJECT=$DEVSHELL_PROJECT_ID
    
  2. Вручную установите идентификатор проекта в эту переменную. Это далеко не идеально, потому что в Qwiklabs они создают новый темпоральный проект для каждой лаборатории, так что это сработало бы, только если бы вы все еще работали над этим проектом. ID проекта можно увидеть на обоих ваших общих снимках экрана.

    export GOOGLE_PROJECT=qwiklabs-gcp-03-c6e1787dc09e
    
  3. Избегайте использования аргумента --project. Согласно документации , вышеупомянутый аргумент является необязательным, и если он не используется, команда будет принимать аргумент по умолчанию, который будет в настройках конфигурации. Вы можете получить текущий проект, используя это:

     gcloud config get-value project
    

    Если предыдущая команда соответствует идентификатору проекта, который вы хотите использовать, вы можете просто ввести следующую команду:

     gcloud services enable cloudasset.googleapis.com
    

    Notice что идентификатор проекта не упоминается явно с использованием --project.

Что касается вашей проблемы с файлом GitHub, я проверил репозиторий, и файл storage_blacklist_public.yaml, похоже, не находиться в каталоге policy-library/samples. Кажется, есть след , который когда-то был там, но его больше нет, вероятно, им стоит обновить лабораторию, поскольку его больше нет.

Что касается путаницы с вашими учетными данными, вы не обязательно использовать собственный идентификатор проекта, только тот, который указан в вашей лаборатории. Если я правильно помню, все необходимые данные должны быть в левой части лаборатории. Тем не менее, вам не нужно проходить аутентификацию в нормальной ситуации, поскольку вы уже вошли в свой временный проект, если вы обращаетесь к нему из Cloud Shell, где вы должны все это делать.

0 голосов
/ 21 июня 2020

Я не могу получить доступ к руководству.

Что произойдет, если вы запустите следующее:

echo ${DEVSHELL_PROJECT_ID}

Я подозреваю, что вы получите пустой результат, потому что я думаю, что эта переменная среды на самом деле не установлено.

Думаю, должно быть:

 echo ${DEVSHELL_GCLOUD_CONFIG}

Возвращает ли это результат?

Если да, возможно, попробуйте вместо этого использовать эту переменную:

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

Мне не совсем понятно, почему в этом руководстве используется этот подход, но, если все вышеперечисленное работает, вы можете продвинуться дальше.

Мы вас попросили создать Google Проект Cloud Platform?

...