У меня есть настройка нескольких учетных записей в моей текущей компании. Я использую CodeBuild в учетной записи B, я запускаю buildspec, который загружает преобразованный шаблон sam в корзину s3 в учетной записи A. Таким образом, пакет Cloudformation загружает сборку кода sam в «account-a-bucket». Задание успешно загружает преобразованный шаблон, как определено в разделе артефактов, в корзину в учетной записи B. Проблема возникает при попытке развернуть шаблон в учетной записи C. Поскольку codebuild создает артефакт лямбда-кода на этапе сборки и записывает объект введро за пределами счета. Когда вы посмотрите на фактический лямбда-артефакт, хранящийся в корзине, так что s3 :: // account-a-bucket / e309uofijokasjdfokajsllsk, вы увидите в разрешении объекта, что он не принадлежит ни одной учетной записи. Поэтому никто не может получить к нему доступ. Как заставить codebuild создать объект в другом сегменте учетной записи, чтобы он принадлежал учетной записи?
Кроме того, я уже настроил политику Bucket, чтобы предоставить доступ к account-a-bucket всемучетные записи в моей организации, а также канонические идентификаторы учетных записей для разрешений. Так что я точно знаю, что лямбда-артефакт создан без владельца канонического аккаунта, однако загруженный артефакт (в разделе артефактов buildspec) создается под каноническим идентификатором аккаунта.
Я знаю, что вы можетеиспользуйте, если, например, я загружал в фазе сборки, используя
aws s3api copy-object --bucket destination_awsexammplebucket --key source_awsexamplebucket / myobject --acl bucket-owner-owner-full-control
Я мог бы использовать --acl bucket-owner-full-control, но это не поддерживаемый флаг с пакетом облачной информации aws.
env:
variables:
RELEASE_NUMBER: ""
MINOR_NUMBER: "value"
phases:
install:
runtime-versions:
docker: 18
build:
commands:
- echo Building Release Version $RELEASE_NUMBER
- pip install --user aws-sam-cli
- USER_BASE_PATH=$(python -m site --user-base)
- export PATH=$PATH:$USER_BASE_PATH/bin
- sam build -t template.yaml
- aws cloudformation package --template-file template.yaml --s3-bucket account-a-bucket --output-template-file TransformedTemplate.yaml
artifacts:
files:
- TransformedTemplate.yaml
discard-paths: yes