Score:1

บัญชีบริการไม่มี storage.buckets.get เข้าถึงที่ฝากข้อมูล Google Cloud Storage

ธง cn

ฉันกำลังใช้งาน Ansible ด้วยบริการการกำหนดค่าต่อไปนี้ซึ่งควรสร้างที่เก็บข้อมูลบน Google Cloud

- ชื่อ: "สร้าง {{ environ.name }}-cluster-backups"
  google.cloud.gcp_storage_bucket:
    ชื่อ: "zeipt-io-{{ environ.name }}-cluster-backups"
    ตำแหน่ง: "{{ google_cloud.region }}"
    storage_class: "ใกล้"
    วงจรชีวิต:
      กฎ:
        - เงื่อนไข:
            อายุ_วัน: 28
          หนังบู๊:
            ประเภท: "ลบ"
    โครงการ: "{{ google_cloud.project }}"
    auth_kind: "{{ google_cloud.auth_kind }}"
    service_account_file: "{{ google_cloud.service_account_file }}"
    สถานะ: ปัจจุบัน

ซึ่งให้ข้อผิดพลาด

ร้ายแรง: [localhost]: ล้มเหลว! => {"changed": false, "msg": "GCP ส่งคืนข้อผิดพลาด: {'error': {'code': 403, 'message': '[email protected] ไม่มีที่เก็บข้อมูล .buckets.get เข้าถึงที่เก็บข้อมูล Google Cloud Storage', 'ข้อผิดพลาด': [{'message': '[email protected] ไม่มี storage.buckets.get เข้าถึง Google Cloud Storage bucket.', 'domain': 'global', 'reason': 'forbidden'}]}}"}

ฉันเข้าใจข้อผิดพลาด แต่ฉันได้ตรวจสอบบทบาทที่กำหนดให้กับผู้ใช้รายนี้แล้ว

โครงการ gcloud get-iam-policy staging-environment --flatten="bindings[].members" --format='table(bindings.role)' --filter="bindings.members:[email protected] gserviceaccount.com"
บทบาท
บทบาท/เจ้าของ
บทบาท/storage.admin
บทบาท/storage.objectAdmin
บทบาท/storage.objectCreator
บทบาท/storage.objectViewer

บทบาท/storage.admin ควรตอบสนองความต้องการในขณะที่ฉันตรวจสอบ หน้าบทบาทของ Google Cloud IAM ซึ่งระบุว่าบทบาทนี้มี storage.buckets.* การอนุญาต.

ฉันไม่เข้าใจว่าทำไมฉันยังคงได้รับข้อผิดพลาดเดียวกัน?

John Hanley avatar
cn flag
คุณใช้งาน ansible (เดสก์ท็อป, Compute Engine, ...) ที่ไหน หากใช้บริการคอมพิวเตอร์ ให้ตรวจสอบขอบเขตที่เปิดใช้งานสำหรับ VM https://cloud.google.com/compute/docs/access/service-accounts#accesscopesiam
cn flag
@JohnHanley ฉันใช้มันในเครื่องบน mac ของฉัน ฉันสามารถสร้างเครือข่าย คลัสเตอร์ และอื่นๆ อีกมากมายได้ แต่สร้างบัคเก็ตไม่ได้
John Hanley avatar
cn flag
ในคำสั่ง **gcloud โปรเจ็กต์ get-iam-policy** เพิ่มตัวเลือกบรรทัดคำสั่ง **--project PROJECT_ID** ระบุโครงการเดียวกันกับที่คุณใช้กับ Ansible บางทีคุณอาจเพิ่มบทบาทที่ถูกต้องสำหรับโครงการที่ไม่ถูกต้อง
cn flag
การเพิ่ม `--project PROJECT_ID` และแทนที่ชื่อของโครงการเดียวกันที่ฉันได้กำหนดค่าไว้ใน ansible แสดงผลลัพธ์เดียวกัน ฉันเริ่มคิดว่าบทบาทถูกแคชไว้
John Hanley avatar
cn flag
บทบาทไม่ถูกแคชในเครื่อง ใน Google Cloud มีการเผยแพร่ทั่วโลก สร้างบัญชีบริการใหม่แล้วลองอีกครั้ง สิ่งง่ายๆ ที่ถูกมองข้าม
John Hanley avatar
cn flag
ถังอยู่ในโครงการเดียวกันหรือไม่? ชื่อถังสะกดผิด?
Priyashree Bhadra avatar
in flag
ปัญหาของคุณได้รับการแก้ไขแล้ว @MarkusTenghamn?
cn flag
@PriyashreeBhadra ไม่ ฉันไม่เคยแก้ไขปัญหานี้ ฉันต้องทำด้วยตนเองเพราะฉันยังไม่สามารถใช้บัญชีบริการได้
cn flag
@JohnHanley ขออภัยที่ไม่ได้ตอบคุณ ฉันกำลังพยายามสร้างบัคเก็ต ดังนั้นมันจึงไม่ควรเป็นปัญหา แต่ฉันได้ตรวจสอบอีกครั้งว่าบัญชีบริการอยู่ในโปรเจ็กต์ที่ถูกต้อง และเป็นโปรเจ็กต์ที่ฉันกำลังเรียกใช้อยู่
Priyashree Bhadra avatar
in flag
คุณสามารถตรวจสอบว่าชื่อบัคเก็ตที่คุณพยายามสร้างมีอยู่แล้วหรือไม่? คุณสามารถตรวจสอบได้ใน Google Cloud Console > Cloud Storage และป้อนชื่อบัคเก็ต หากแสดงข้อผิดพลาด ฉันเชื่อว่าปัญหาคือคุณกำลังพยายามสร้าง/อัปเดตที่เก็บข้อมูลของผู้ใช้รายอื่นที่อยู่ในโครงการอื่น ซึ่งบัญชีบริการของคุณไม่มีอำนาจ ดังนั้น โปรดลองปรับใช้อีกครั้งโดยเปลี่ยนชื่อที่ น่าจะเป็นเอกลักษณ์
Priyashree Bhadra avatar
in flag
นี่อาจเป็นปัญหาในบางสถานการณ์เนื่องจากคุณเลือกชื่อที่ยาวมากหรือไม่ซ้ำกัน ปฏิบัติตาม[หลักเกณฑ์]เหล่านี้(https://cloud.google.com/storage/docs/naming-buckets) หากเป็นปัญหา
Score:0

ฉันเข้าใจว่าสมาชิกบางคนของชุมชนได้เสนอวิธีแก้ไขปัญหาบางอย่างให้คุณ แต่เห็นได้ชัดว่าไม่มีวิธีใดที่เป็นประโยชน์สำหรับปัญหาของคุณเลยนอกจากนี้ ฉันเข้าใจว่าคุณกำลังใช้ GCP เพื่อสร้างบัญชีบริการและกำหนดบทบาท

บางทีคุณอาจลองสร้างบัญชีบริการและบทบาทสำหรับบัญชีบริการจาก ansible และตรวจสอบว่าใช้งานได้หรือไม่

คุณสามารถสร้างบัญชีบริการได้โดยใช้ปลั๊กอินนี้ google.cloud.gcp_iam_service_account â สร้างบัญชีบริการ GCP

ตัวอย่าง:

- ชื่อ: สร้างบัญชีบริการ
  google.cloud.gcp_iam_service_account:
    ชื่อ: sa-{{ resource_name.split("-")[-1] }}@graphite-playground.google.com.iam.gserviceaccount.com
    display_name: คีย์ทดสอบ Ansible ของฉัน
    โครงการ: test_project
    auth_kind: บัญชีบริการ
    service_account_file: "/tmp/auth.pem"
    สถานะ: ปัจจุบัน

และคุณสามารถกำหนดบทบาทได้โดยใช้ปลั๊กอิน google.cloud.gcp_iam_role â สร้างบทบาท GCP

ตัวอย่าง:

- ชื่อ: สร้างบทบาท
  google.cloud.gcp_iam_role:
    ชื่อ: myCustomRole2
    ชื่อเรื่อง: บทบาทที่กำหนดเองของฉัน
    คำอธิบาย: คำอธิบายบทบาทที่กำหนดเองของฉัน
    included_permissions:
    - iam.roles.list
    - iam.roles.create
    - iam.roles.delete
    โครงการ: test_project
    auth_kind: บัญชีบริการ
    service_account_file: "/tmp/auth.pem"
    สถานะ: ปัจจุบัน

โปรดจำไว้ว่าปลั๊กอินเหล่านี้เป็นส่วนหนึ่งของ คอลเลกชัน google.cloudซึ่งควรติดตั้งหากคุณใช้แพ็คเกจ ansible

Anton L avatar
us flag
@Markus Tengham คำตอบนี้ช่วยคุณได้หรือไม่ หากเป็นเช่นนี้ คุณช่วยโหวตหรือทำเครื่องหมายว่ายอมรับแล้วเพื่อช่วยเหลือชุมชนได้ไหม ขอบคุณ.

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา